13 Managing tools

 

This chapter covers

  • Assessing the use of open source infrastructure modules and tools
  • Applying techniques to update or migrate IaC tools
  • Implementing module patterns for event-driven IaC

You’ve learned how to write infrastructure as code, update it with your team by using delivery pipelines and testing, and manage its security and cost within your organization. As you evolve your infrastructure system, you adapt these patterns and practices and adjust them to fit new workflows and use cases. Similarly, tools change but should not disrupt the patterns and practices to scale, collaborate, and operate your infrastructure.

Updating your tool can require several actions. You could upgrade to a new version, replace it with a new tool, or handle more dynamic use cases for IaC. This chapter discusses common patterns and practices to handle updates to IaC tools.

The patterns apply to any tools that cover provisioning, configuration management, and image building use cases. You’ll find they also apply to software development, although I adapted them in an opinionated way to infrastructure. Use these patterns and practices to mitigate the blast radius of an update, scale the new tool across teams, and continue evolving your system to support business requirements.

13.1 Using open source tools and modules

13.1.1 Functionality

13.1.2 Security

13.1.3 Life cycle

13.2 Upgrading tools

13.2.1 Pre-upgrade checklist

13.2.2 Backward compatibility

13.2.3 Breaking changes in upgrades

13.3 Replacing tools