In this chapter, we take a look at the kinds of services to create at the infrastructure layer. We explore a variety of infrastructure-related concepts that are important within the universe of deconstructed design, including Infrastructure as Code (IaC), Pipelines for Machine Learning, Chaos, and many more tools and methods.
Sometimes, architects are viewed as only a part of the application development or product development team. They limit their specifications to only the software and services layer. Just as we saw that the effective architect’s purview also includes the business view, this individual also must contemplate the infrastructure, seeing all the aspects of business, application/services, data, and infrastructure working together.
As you consider how to design your infrastructure, the following are critical issues to address:
Definition of approach to infrastructure creation in support of your project, including containerization and IaC
Toolsets in support of these
Release engineering and management
Process definition for Continuous Delivery, Continuous Deployment, and Continuous Integration
Process definition for change control
Budgeting and financial management of the infrastructure
Logging and auditing
Roles and responsibilities definitions for DBAs, DevOps, architects, and application owners and/or system owners ...