Azure Platform Engineering Introduction & Overview
Stephen Tulp
December 2, 2024
6 minutes to read
With the rise and adoption of cloud computing and microservices, DevOps practices have matured across People, Process and Technology. However, as these practices continue to evolve and grow in complexity, scaling has become more challenging, leading to some common issues.
- Organisational Culture: DevOps requires a significant change in how an organisation works and experiments with innovation.
- Resistance to Change: People are generally resistant to change, and the complexity of transitioning to DevOps can be off-putting.
- Managing Multiple Environments: Managing multiple environments can be complex and doesn’t take long to get out of control.
- Security Concerns: Rapid deployments and automation can expose vulnerabilities and risk data breaches.
- Dev and Ops Toolsets Conflicts: DevOps must integrate development and operations tools, which can be problematic due to differences in the tools and how they function within an organisation.
To add to the above, if you look at the projects and products in the Cloud Native Computing Foundation Landscape you can see how complex this space has become.
Platform engineering has emerged as a pivotal discipline within the tech industry, evolving from the need to streamline and optimise the development and deployment of software. Its roots can be traced to the early days of software engineering when the complexity of managing infrastructure and applications began to outpace traditional methods.
As organisations grew and their technological needs became more sophisticated, the demand for a more structured and efficient approach to managing development environments led to the birth of platform engineering.
What is Platform Engineering
Platform engineering is a discipline within software engineering focused on designing, building, and maintaining the foundational infrastructure and tools that support the development, deployment, and operation of software applications. It involves creating a standardised, reusable set of tools, processes, and environments that developers can use to build and deploy applications efficiently and reliably.
When someone asks me what Platform Engineering is, my crafted view is “Platform engineering enables self-service and promotes golden paths with recommended toolsets and patterns using security & governance best practices built-in, thus helping reduce cognitive load for developers in the cloud native era”.
The diagram below from Microsoft visualises their platform engineering approach across the key capability areas.
Platform Engineering Benefits
Platform engineering offers several benefits for an organisation, especially in streamlining and enhancing software development processes. Some of these include:
- Accelerated Development: By providing automated processes and self-service infrastructure, platform engineering helps developers stay productive and reduces time to market for new features.
- Improved Developer Experience (DevEx): Developers can focus on coding and building new features without worrying about underlying infrastructure complexities. This leads to lower cognitive load and being more productive.
- Enhanced Scalability: Platform engineering ensures that infrastructure and applications can scale efficiently to meet growing demands of the business.
- Increased Reliability and Performance: Standardised and automated processes reduce the likelihood of errors and improve performance and reliability of applications.
- Cost Reduction: By optimising resource usage and automating repetitive tasks, platform engineering can lower operational costs.
- Better Collaboration: It fosters better collaboration between development, operations, and other teams by providing a unified platform that everyone can use.
- Continuous Improvement: Platform engineering supports the continuous evolution of development processes and tools, ensuring that they keep pace with changing requirements and technologies.
Platform engineering helps create a more efficient, scalable, and developer-friendly environment, which can lead to faster innovation and better software quality.
Are we doing this already?
In recent years, Platform Engineering has undergone significant evolution. Although some organisations have integrated certain elements, there remains considerable potential for improvement. Frequently, these services fall short in scalability or suitability, posing challenges for application teams aiming to expand them. Nonetheless, two primary objectives have surfaced as essential for the effective implementation of Platform Engineering:
- Cultural shift: Treat the Platform as a Product designed to empower its consumers (developers).
- Self-service with guardrails: Enable consumers to move quickly while maintaining necessary safeguards.
Although not entirely new, Platform Engineering can greatly enhance the software delivery process when executed well. By adopting a data-driven approach to measure its impact, you can observe the positive changes it brings and help to iterate and improve across the differenct functional areas.
Many organisations have a platform team that “Does Stuff”, they are generally more reactive and monitor new requests rather than being proactive. The following statement from Juan Orlandini, Insight Distinguished Engineer & NA CTO is a common trait that I see when you dont get the Platform Engineering team and Developers together.
Conclusion
Platform engineering is a critical discipline that addresses the growing complexity of software development and deployment. By standardising and automating infrastructure management, it enhances efficiency, scalability, and security. As the tech industry continues to evolve, the importance of platform engineering will continue to grow, making it an indispensable part of modern software development.
I hope this blog post gives you a taste of platform engineering and whats to come across the month! Next up we look at some of the core principles of Platform Engineering.
Some links for further reading and watching on Platform Engineering:
- What is Platform Engineering? - Microsoft Learn documentation.
- Platform Engineering An Introduction - Microsoft Ebook on Platform Engineering.
- Latency2024 - Platform Eng – Building the Future Brick by Brick by Stephen Tulp and Trent Steenholdt - A presentation on Platform Engineering that i did at the Latency 2024 Conference.
- Platform Engineering Blog - A non Microsoft view on Platform Engineering.