6 Building a Software-Defined Engineering Platform

 

This chapter covers

  • Starting to build our own Example Engineering Platform
  • Infrastructure Pipeline Orchestration Practices
  • Bootstrapping Software-Defined Infrastructure Automation
  • Managing Cloud Account Automation Identities and Permissions

In this part of the book, we’ll start building the initial Epetech engineering platform. Along the way, we’ll put a lot of what we’ve talked about so far into practice and also take a deeper look at some of the architectural approaches that’ll help us succeed.

Earlier in the book, we talked about the challenges Epetech is facing. They're focusing on building their business services as APIs, using these capabilities themselves as well as selling them as a service to other companies. But without a clear strategy beyond a mix of tech silos and a DevOps team, developers at Epetech are now spending half their time on lead-time planning, coordinating with other teams to get DNS entries, firewall rules, storage, compute capacity, monitors, alerts, pipeline changes, and everything else needed to build, deploy, and operate their software, often under tight deadlines. Maintenance and operational issues are a constant headache and aren’t seen as adding much value. Unsurprisingly, product incidents are rising, leading to frustrated customers and higher support costs.

We are a team within Epetech tasked with creating a better solution to these challenges.

6.1 Start Building Our Own Example Engineering Platform

6.2 Prerequisites to Getting Started

6.2.1 Developer Tools Selection Criteria

6.3 Infrastructure Pipeline Orchestration Practices

6.3.1 Test-Driven Development of Infrastructure Code

6.3.2 Static Code Analysis

6.3.3 Reusable Pipeline Code

6.3.4 Private Executors (Runners)

6.4 Cloud Administrative Identity

6.4.1 Service Accounts and Permissions

6.5 Summary