Alright #DevOps tonight I'm starting a thread about trying out #Pulumi for the first time. This is an Infrastructure as Code tool with the pitch that you can write the code in the language of your choice ( https://www.pulumi.com/ ). I'll be comparing it to #Ansible which I have more experience with. I'll try porting a server I've defined with Ansible to Pulumi and see what my first impression is. First, I need to get installed and choose a language to code in. 🧵
Infrastructure as Code Platform with Agentic AI – Pulumi

Pulumi is an infrastructure management platform to automate through infrastructure as code, secure with secrets management, and manage infrastructure with AI.

pulumi
Looks like my language choices for #Pulumi are limited to TypeScript, Python, Go, C#, or Java. I know TypeScript better, but I'm interested in learning more #Python so I'll choose that. Time to get Pulumi installed! 🧵

I quickly checked out pulumictl but looks like I don't need it to get started with#pulumi

https://github.com/pulumi/pulumictl 🧵

GitHub - pulumi/pulumictl: A swiss army knife for Pulumi development

A swiss army knife for Pulumi development. Contribute to pulumi/pulumictl development by creating an account on GitHub.

GitHub
My first impression is that #Pulumi is a good fit for provisioning cloud-based resources via API, but it doesn't really compete with #Ansible in terms of getting into the details of setting up Linux servers. 🧵
It seems like a tool like #Pulumi or TerraForm that focuses on provisioning via Cloud APIs often paired with something these that's focused on server definitions like Ansible or NixOS. 🧵
The key philosophical difference between Pulumi and Terraform is the language: Terraform uses HCL (a declarative DSL), while Pulumi uses actual general-purpose languages (Python, TypeScript, Go, etc.). That gives Pulumi real loops, conditionals, functions, and type systems — so that's appealing. 🧵
The truly cloud-native way to use #Pulumi would to talk to a managed kubernetes cluster rented from a Big Cloud provider. From there, containers are pushed up and there are is no Linux OS to manage, thus something like #Ansible or #NixOS is not needed. 🧵
On the smaller end of the cluster size spectrum, looks #Ansible or #NixOS is the way to go, and other hyperscale end, Pure Kubernetes is the way to go and there's some awkward in between stage where #Pulumi might be combined with a server definition tool like #Ansible or #NixOS
@markstos you could imagine Kubernetes + Nix though
@markstos there's that, but you could also use Talos, which is a kubernetes distribution that uses APIs to also manage that bit of system it has to run on
@markstos if you want a bit of 🤯 then check out pulumi's integration with CUElang ;)
@viq That does sound interesting!

@markstos
For a server as cattle approach you have cloud-init;
For a pet approach there's @pulumi/command , but it's a bit outside pulumi philosophy.

If only nixos used a normal programming language