Server Side Chat: Be happy with IaC. Say goodbye to YAML

At WAES, we are committed to driving innovation in software engineering, DevOps, and digital transformation. Our Server Side Chats bring our community of experts together to share knowledge and discuss the latest industry trends. In a recent edition, Daniel delivered an insightful talk titled "Be Happy with Infrastructure as Code (IaC): Say Goodbye to YAML." Here’s a recap of the key takeaways from his presentation.

The challenge with YAML and Terraform

Infrastructure as Code (IaC) has transformed the way we manage cloud infrastructure, providing a consistent, repeatable, and automated way to provision resources. However, many developers are frustrated with languages like YAML, JSON, and even Terraform when writing IaC. These languages, while powerful, often lack the flexibility and familiarity that developers need, particularly when dealing with complex infrastructure.

In his Server Side Chat, Daniel discussed the specific challenges that YAML presents:

  • Limited Control Structures: YAML lacks intuitive constructs like if statements, making it difficult to handle conditional logic.

  • Complexity in Multi-Region Deployments: Managing infrastructure across multiple regions using Terraform or YAML can result in convoluted scripts, especially when permissions or configurations differ across environments.

While tools like Terraform provide great capabilities for managing infrastructure, they aren't always developer-friendly. Developers often face a steep learning curve, and switching context between application development and writing infrastructure code can lead to inefficiency and frustration.

Take a look at the recording of Daniel's Server Side Chat below 👇

AWS CDK: A developer-friendly solution

Daniel’s solution? AWS CDK (Cloud Development Kit). AWS CDK allows developers to write infrastructure code using familiar programming languages like TypeScript, JavaScript, Python, and even Java. By leveraging AWS CDK, developers can reduce complexity, speed up development, and improve overall productivity.

Key advantages of AWS CDK:

  1. Use of familiar languages: Developers can write infrastructure code in languages they already know, eliminating the need to learn new DSLs (Domain-Specific Languages) like YAML or JSON.

  2. Simplified logic: AWS CDK allows developers to use programming constructs like loops and conditional statements (if/else), making it easier to manage complex infrastructure setups.

  3. Pre-built constructs: CDK provides high-level constructs for common AWS services (e.g., Lambda functions, API Gateway), which significantly reduces the amount of manual coding required.

  4. Local and Unit Testing: With AWS CDK, developers can unit test their infrastructure code locally, catching potential issues before deploying to production. This shortens the feedback cycle and improves reliability.

"Developer happiness should be a priority when choosing tools for infrastructure management. With AWS CDK, we can simplify complex code, reduce errors, and allow developers to focus on what they do best... building great software."
– Daniel Bojczuk

Real-world application: Simplifying complex infrastructure

During the session, Daniel showcased a real-world example using AWS CDK to deploy a multi-region API gateway setup, which included SQS queues and Lambda functions. Traditionally, managing this type of infrastructure across regions would require complex YAML scripts and multiple Terraform templates. With AWS CDK, Daniel demonstrated how to simplify this process, using clear, readable code that developers could easily understand and modify.

One of the standout features he highlighted was CDK’s ability to handle conditional deployments, such as only deploying certain resources in production environments. This level of control, combined with the ability to unit test the infrastructure code, offers significant improvements over traditional IaC approaches.

The future of Infrastructure as Code

Daniel emphasized that AWS CDK, and similar tools like Pulumi, represent the future of Infrastructure as Code. By bridging the gap between application development and infrastructure management, these tools empower developers to take full ownership of their infrastructure, enhancing both productivity and satisfaction.

While YAML and Terraform have been useful in the evolution of IaC, tools like AWS CDK provide a more streamlined and intuitive way to manage complex cloud environments. Daniel encourages developers to explore CDK or Pulumi if they seek to improve their development workflows and embrace a modern approach to IaC.

Join us in building the Server Side Chat community

Our Service Side Chats are more than just presentations; they are an opportunity to connect with like-minded professionals, share experiences, and learn from each other. We look forward to seeing you at our next meetup on November 21.

Our goal with the Service Side Chat community is to create a vibrant community where professionals can share knowledge, discuss innovative ideas, and collaborate on projects related to server-side technologies. We encourage anyone to join our community on Meetup.

Thanks for reading.
Now let's get to know each other.

What we do

WAES supports organizations with various solutions at every stage of their digital transformation.

Discover solutions

Work at WAES

Are you ready to start your relocation to the Netherlands? Have a look at our jobs.

Discover jobs

Let's shape our future

Work at WAES

Start a new chapter. Join our team of Modern Day Spartans.

Discover jobs

Work with WAES

Camilo Parra Gonzalez

Camilo Parra Gonzalez

Account Manager