DevOps Stage speaker · 2019 and 2020

Anton Babenko

CEO, Betajob

  • Norway
  • Talk language: Russian

Anton Babenko (CEO, Betajob) gave two sessions at DevOps Stage 2019 and 2020, on infrastructure as code.

About Anton Babenko

Anton is a long time developer, CTO, and tech-lead who is spending a large amount of his time as an open-source contributor to various Terraform & AWS projects, terraform-aws-modules, modules.tf and a few others. The most popular one is where he manages a collection of verified Terraform AWS modules (terraform-aws-modules on GitHub) downloaded more than 2 million times. The newest one is where he describes Terraform best practices learned during several years of working with Terraform and established within the community (www.terraform-best-practices.com). He also leads AWS, DevOps and HashiCorp User Groups in Norway, organizes DevOpsDays Oslo, and often speaks at various technical meetups and conferences. He is passionate about all-things-cloud and solution architecture combined with automation and scripting.

Talks

Talk · DevOps Stage 2020 · online · Stream B · 11:00 - 11:45

How to build, scale, and maintain 20 public Terraform modules with over 7 million provisions

Copy and paste of Terraform reduce reusability, maintainability, and scalability of our configuration. In an effort not to repeat ourselves, we might start moving our configuration into modules and run into new scaling and collaboration challenges! In this talk, I will describe some of the challenges and lessons learned in building, scaling, and maintaining the public Terraform modules for AWS components and how to apply them to your modules.

I defined an initial goal for those modules to provide a powerful and flexible way to manage infrastructure on AWS but with more than a couple thousand issues and pull-requests opened since the beginning, the goal had to change. What started as an initial set of basic Terraform AWS modules for common architectural patterns on AWS soon became a base for many customers using Terraform and required radical changes and improvements.

I will describe some of the challenges along the way and lessons learned when building entirely open-source Terraform modules used by thousands of developers. Some problems are technical such as versioning, quality assurance, documentation, compatibility promises, and upgrading. Other problems are around collaboration and software design principles, such as how to reason about feature-requests or how small should a module be. I will also examine the testing strategy for terraform-aws-modules and discuss the reasoning for not having tests!

I will provide a list of dos and don’ts for Terraform modules that highlight the critical features (e.g., documentation, feature-rich, sane defaults, examples, etc.), which make terraform-aws-modules scalable in collaboration and use.

By the end of the talk, attendees will understand proven practices around building useful, maintainable, and scalable modules, learn about public modules available to them, and how they can participate in making those open-source projects better.

Talk · DevOps Stage 2019 · Kyiv · Stream D · Day 1, 12:00 - 12:45

Hacking Terraform for fun and profit

Using Terraform is often simple, extending it to do what YOU want, can be challenging (or “impossible”). Want to manage unsupported resources? Maintain lots of resources? Integrate non-integrable? The talk is an advanced guide about HOW to extend, integrate and execute Terraform to get things DONE.

If you’ve been using Terraform just by following the official documentation, you are not getting all from it.

As soon as one cloud provider announces a new service or a feature, you dream that Terraform has zero-day support for it. Well, it is not always like this, and I will show what we can do about it.

Are you using Terraform and keep asking yourself why I should copy-paste so much? What if you need to manage more than a dozen resources with Terraform (e.g., hundreds of GitHub repositories with permissions, or hundreds of IAM users and their permissions)? How can I use Terraform with GitHub Actions to act as an onboarding tool? What is beyond Terraform modules? What is a really dynamic module and what Terraform 0.12 will help us with?

Let's see the advanced solutions of how Terraform can be extended, integrated, executed, or merely hacked to get the job done with the help of external open-source services and integrations.

From the DevOps Stage conference archive (2019 and 2020). This site is not connected to that conference or its organizer — see our disclaimer. Speakers can ask for changes or removal via hello@devopsstage.com.