2 Foundational Platform Engineering Practices

 

This chapter covers

  • Delivering a platform using the principles of product management
  • Cloud-Native Technologies and how they impact platform engineering
  • Software Defined Platform and its relevance
  • Evolutionary Platform Architecture
  • Domain-Driven Platform Design

Building an engineering platform without changing organizational structures, decision-making habits, and engineering culture is a strategy destined for failure. However, simultaneously shifting an entire organization’s mindset, structures, and culture is a complex and challenging task that requires careful planning.

As your team is forming and defining the goals of your platform, you will start to think about how you can enable yourselves to build a successful engineering platform in an efficient and well-designed way. Some of your teammates may wonder if there should be certain linters - a set of tools required to improve the quality of the code - in place for the infrastructure-as-code you will write. Others argue about using Git as a truth source for deployments, or if some form of artifact registry is needed. In another meeting, you debate the merits of CI/CD systems, with some preferring a more traditional system like Jenkins, with others who want to go full cloud-native with modern Kubernetes-enabled delivery tools. Your team starts to wonder if you’ll ever get started on doing any actual work because you’re too busy arguing about the semantics of how to do the job.

2.1 Product Delivery Model

 
 
 

2.1.1 Technical Product Ownership

 
 

2.1.2 Customers vs Stakeholders

 
 
 
 

2.1.3 Exercise 2.1 Build a Stakeholder Map for Your Organization

 
 

2.1.4 Optimize for a Product

 
 

2.1.5 The Importance of a Minimal Valuable Product and Early Adopters

 
 
 

2.1.6 Exercise 2.2: Define the feature set of an MVP engineering platform

 
 

2.2 Cloud Native Technologies

 
 

2.2.1 How Do Cloud Native Technologies Help PE?

 
 

2.2.2 Cloud Native Technologies

 
 
 
 

2.2.3 Build vs Buy in Cloud Native

 
 

2.2.4 Exercise 2.3: Evaluate the vendor market

 
 
 

2.3 Software-Defined Platform

 
 
 

2.3.1 Development Practices

 

2.3.2 The Platform SDLC

 

2.3.3 Observability-Driven Development

 
 

2.3.4 Exercise 2.4: Observability-Driven Design Requirements

 

2.4 Evolutionary Platform Architecture

 
 
 

2.4.1 Backlog Management for Incremental Design

 
 
 

2.4.2 Capturing User Interactions and Feedback

 
 
 

2.4.3 Architectural Fitness Functions for an Engineering Platform

 
 
 

2.4.4 Exercise 2.5: Fitness Functions

 
 

2.5 Domain Driven Platform Design

 

2.5.1 Exercise 2.6: Writing a Domain-specific ADR

 
 
 

2.6 Summary

 
 
 

2.6.1 Chapter Footnotes

 
 
sitemap

Unable to load book!

The book could not be loaded.

(try again in a couple of minutes)

manning.com homepage