Chapter 5. General Infrastructure Services
The previous chapters described tools to provide, provision, and configure core infrastructure resources: compute, networking, and storage. These provide the basic building blocks for infrastructure as code. However, most infrastructures will need a variety of other supporting services and tools.
A comprehensive list of these services and tools would be ridiculously large and would probably go out of date before I could finish typing it. Some are needed for the infrastructure itself to function—for example, DNS and monitoring. Others, such as message queues and databases, are required for at least some applications.
The purpose of this chapter isn’t to list or explain these services and tools. Instead, it is intended to explain how they should work in the context of a dynamic infrastructure managed as code. This is the subject of the first section of this chapter.
Four key services are then used to illustrate these considerations and because they are particularly valuable in this kind of environment. The services and tools addressed are monitoring, service discovery, distributed process management, and software deployment.
Considerations for Infrastructure Services and Tools
The goals for any service or system that is involved in managing infrastructure are the same as those described for the infrastructure platform, definition tool, and server configuration tool in previous chapters.
The principles of infrastructure as code for services ...