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 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.
Here are some different possible starting points for your organization depending on your needs.
Plot your journey
Build a diverse team of platform engineers, define the problem space for platform engineering challenges, and create solutions using a product mindset.
- Build the team: Understand how executive support, a proactive culture, and a hiring a diverse team help platform engineering teams adapt to evolving business needs and user demands.
- Define the problem space: Understand how to break down platform engineering challenges into understandable areas and progressively step into creating your internal developer platform.
- Plan and prioritize: Chart your own journey through platform engineering. Learn about how to apply a product mindset to your planning process. Get tips for identifying the biggest problem your organization faces and prioritizing concepts to solve those issues.
Start tackling the problems you identify
Learn how to use templates to improve your engineering systems and alleviate developer friction. Then, refine your platform to solve identified issues, potentially using off-the-shelf products.
- 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.
Evolve your platform
Implement a gradual approach to improving your developer self-service platform.
- 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.