Chapter 9. The Infrastructure Aspect

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.

Considerations for Architects

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

  • Capacity planning

  • Patching

  • Disaster recovery

  • Monitoring 

  • Logging and auditing

  • Roles and responsibilities definitions for DBAs, DevOps, architects, and application owners and/or system owners ...

Get Semantic Software Design now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.