#F#, Farmer, Pulumi, PowerShell and Azure CLI

1 messages · Page 1 of 1 (latest)

kindred isle
#

Hi everyone. This is a question to get a sense of the landscape of how and what degree these technologies are used together as a go to toolset.

My sense is that F# use in Azure IaC deployment is growing amongst DevOps.

I'm not a programmer and come from a traditional SysOps background in physical server and network hardware deployment and configuration.

I have explored the web development landscape and dabbled with JS and Elm Lang. I fell in love with the type system of Elm and learned about DDD and Type driven design.

A friend said I should focus on Azure in which he is an Architect.

In looking at my learning and certification path it seems like DevOps IaC with Architecture is where my interest lies.

PowerShell and Azure CLI with their .Net seem to be a part of the F# picture but it is not clear. PowerShell does appear to lend itself to functional methods.

Any thoughts on the combining of the scripting CLI world with F#, Farmer and Pulumi would be most appreciated. Thank you 🙏

digital blade
#

I have been interested in using pulumi with f# as an alternative to terraform at my current job.
I personally use f# (.fsx files) quite a lot for scripting tasks, I have used some of the existing cli calling libs eg: https://github.com/CaptnCodr/Fli and dabbled in making my own.
I have found it very ergonomic for most tasks and at this point i reach for it whenever I'm doing something that would be more than a few lines of bash or powershell.

GitHub

Execute CLI commands from your F# code in F# style! - GitHub - CaptnCodr/Fli: Execute CLI commands from your F# code in F# style!

sullen sapphire
#

I did some work on F# with Farmer that was quick & easy to set up, and easy to make PRs to get stuff added that I needed. That effort died from bad management so I didn't experience long-term maintenance but I was able to do build out everything we needed in 2 weeks.

quaint stone
#

I used farmer recently to be able to stand up dedicated CI machines and works rather well.

Github action calls this fsi script to create VM
run CI job as normal
Shutdown the vm


That being said, farmer doesn't do everything but it's a good starting point and the things it doesn't do, you can typically implement on top of or become inspired by. The azure-cli tool can output json so it's easy to interop with it in an F# script.