Chapter 3. Infrastructure Definition Tools

The previous chapter described virtualization and cloud platforms that provide dynamic infrastructure resources, including compute, networking, and storage. This chapter discusses tools that teams can use to manage those resources following the principles of infrastructure as code.

An infrastructure definition tool, such Cloud Formation, Terraform, or OpenStack Heat, allows people to specify what infrastructure resources they want to allocate and how they should be configured. The tool then uses the dynamic infrastructure platform to implement the specification.

Of course, people can simply use the platform’s user interface to create and manage resources. There are also third-party products that provide a graphical user interface (GUI) to interactively manage virtual and cloud infrastructure. But to gain the benefits of infrastructure as code, infrastructure needs to be managed in a way that is repeatable, testable, reusable, and self-documenting.

The first half of this chapter will offer guidelines for selecting and using tools to support this way of working. These guidelines are not specific to infrastructure definition tools; they also apply to server configuration tools and other infrastructure services.

The second half of this chapter is specifically about infrastructure definition files and tools. It gives examples of types and ways of defining infrastructure resources. It also looks at the use of configuration registries to support ...

Get Infrastructure as Code now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.