Moving from traditional infrastructure management to true cloud-native operations isn't just about switching tools—it's about finding the right approach that can scale with an organization's needs. Nexxiot, a Swiss-based IoT company, faced this challenge head-on during their journey from Ansible to modern infrastructure as code.
Working extensively with AWS infrastructure services, particularly EC2, VPCs, and EKS clusters, they discovered that declarative tools like Terraform weren't flexible enough for their needs. While these tools worked for simple cases, they found themselves building complex workarounds with Python scripts and Jinja templates just to handle basic tasks like loops and existing resource integration. This complexity was unsustainable and prone to errors.
Their breakthrough came when they discovered Pulumi. As an imperative infrastructure as code platform with strong typing through TypeScript, it gave them the flexibility they needed while maintaining safety through compiler checks. Unlike AWS CDK with CloudFormation, Pulumi's state management lets them extract, modify, and reimport state files—crucial for managing production infrastructure without downtime.
The impact has been transformative. Since adopting Pulumi, they have had zero infrastructure-related outages. The ability to write both infrastructure code and configuration management in TypeScript has simplified their toolchain, while Pulumi's automation API has enabled them to build sophisticated deployment workflows.
Key lessons from their journey:
- Start with clear design decisions upfront
- Take time to understand Pulumi's concepts rather than applying patterns from other tools
- Consider the total cost of ownership, not just licensing fees
- Embrace incremental migration for existing infrastructure
Guest: Alexander Berger - Principle Site Reliability Engineer
📒 Chapters 📒
00:07 - Introduction to Nexot and AWS Infrastructure
00:32 - Overview of AWS Services Used at Nexot
01:32 - Infrastructure as Code History at Nexot
02:32 - Challenges with Terraform Implementation
03:56 - Discovering Pulumi as a Solution
04:41 - Pain Points with Ansible for Infrastructure
05:54 - Limitations of Terraform's Declarative Approach
07:09 - Cloud Formation State Management Problems
08:19 - Adopting Pulumi: Initial Experience
08:49 - Day Two Operations Challenges
10:42 - Benefits of TypeScript for Configuration Management
11:30 - Team Collaboration and State Management
12:20 - Incremental Migration Approach
13:27 - Cost Comparison: Pulumi vs. Custom Solutions
14:05 - Future Interest in Pulumi Kubernetes Operator
14:22 - Recommendations for Using Pulumi
▬▬▬▬▬▬ Want to learn more? ▬▬▬▬▬▬
🚀 Get Started with Pulumi: https://pulumip.us/Get-Started
🤖 Case Study: https://pulumi.com/case-studies/nexxiot/
💬 Talk with us: https://slack.pulumi.com/