Start your platform engineering journey

Platform engineering is a way for organizations to optimize their software development lifecycle through a focus on the developer experience. Developer experience refers to the lived experience of developers and the points of friction they encounter in their everyday work. Platform engineering is a set of patterns and practices (not an off-the-shelf product) that help modernize enterprise software delivery.

For example, a multinational tech company used platform engineering to increase standardization and eliminate duplication across divisional boundaries. The company started by establishing an everything as code-based way for teams to onboard. Then, they started associating applications deployed into Kubernetes in a way that made sense to developers with this same experience to further aid discovery. This has then put them in a position to begin assembling application templates that encourage best practices. Their development teams can now pick-and-choose existing building blocks rather than creating them from scratch.

Learn how to identify your organization's biggest issues with the Platform Engineering Capability Model so that you can figure out what patterns and practices to implement. Then, use building blocks from Microsoft and other open source projects or vendors to create a personalized, optimized, and secure internal developer platform.

Plot your journey with the Platform Engineering Capability Model

To get started, you'll first want to assess where your organization is today with the Platform Engineering Capability Model. Then, you'll use the capability model to chart where your organization is across six capabilities - investment, adoption, governance, provisioning and mangement, interfaces, and measurement and feedback - and set goals for future growth. For example, you may find that your organization is at the early stages when it comes to investment but further along for adoption. To chart your organization's current platform engineering practices, take this survey or start a manual assessment.

You don't need to make progress on each capability at the same time. Instead, chart a course that makes sense for your organization. All organizations will be more advanced in some capabilities than in others. For example, in this map, the organization plans to focus on making progress on adoption, governance, and provisioning and management.

Graphic of financial institution constellation map for platform engineering.

Implementation

For your each of the capabilities you've identitied as areas of improvement, you'll set goals on how to advance. These goals will involve learning how to use templates and other solutions to improve your engineering systems and alleviate developer friction.

  • Apply software engineering systems: Learn some tips to help you think through how you can reuse and refine your engineering systems to improve self-service to solve problems you identify. Learn how to use centrally managed infrastructure as code (IaC) or other everything as code (EaC) artifacts as building blocks in start right templates.
  • Refine your application platform: Learn how you can solve problems you've identified by refining your application platform. These changes can be more costly but can also provide significant benefits, particularly if you can find an off-the-shelf product to meet your needs. For example, would improving the use of (or moving to different) observability or logging tools help? If you're starting from scratch, the Azure Architecture Center can help you identify concepts from the ground up.
  • Design a developer self-service foundation- Learn about an architecture for a more sophisticated developer self-service foundation. This is an evolution that steps you into streamlining the multiple automation systems and aggregating data. You’ll be doing more software development here, so step in this direction over time rather than starting here.