Software exhibits trends. Just as blue jeans have gone from dungarees/overalls to flares to straight cuts and skinny-style, software application development practices have moved through the decades as well. Where we once embraced waterfall development, we then moved to Agile. Where we once thought client-server architectures were the answer, we then moved to cloud. When we were told that the network is the computer, we then moved to embrace serverless computing.
Technologists will know that the last example is meaningless (both architectural approaches use servers, clearly), but the point is made – we change the way we approach enterprise software and the methodologies we extoll in this space at least once (and sometimes twice) a decade.
What is platform engineering?
Given the proliferation of cloud networks, our globalized approach to always-on continuous information feeds running in real-time and our proclivity for connecting every smart machine and device on the planet securely together inside the Internet of Things (IoT), it is perhaps no surprise to have witnessed the popularization of platform engineering.
With so many machines running concurrently, the capability to automate the way we provision and change the way base layer programmable infrastructure technologies work makes a lot of sense. As senior technology evangelist at CloudBees Logan Donley has explained, platform engineering alleviates this challenge of having to constantly maintaining the software development environment, minimizing the time spent on environment maintenance, freeing developers to focus on what they do best – create applications.
“At its core, platform engineering is about standardizing workflows and creating internal developer platforms to foster a consistent and predictable developer experience. This level of standardization eliminates guesswork, reduces errors and boosts overall productivity. It serves as a foundation for building a unified environment for building, testing and updating applications,” wrote Donley, on a company blog this year.
A keen proponent of platform engineering (CloudBees is known for its software delivery platform, a technology that falls comfortably in line with the core tenets and processes of platform-centric computing), the company suggests that (from analysis of its own research) that the majority of enterprise software teams these days have moved to the platform world.
Platforms, toolchains & and workflows
The key benefits of platform engineering are said to be the process streamlining developers benefit from, which in turn is agreed to help Developer eXperience (DevEx) ratings and their direct translation to better User eXperiences (UX) as well. With these technologies, organizations can analyze platform performance, create digital replicas of physical assets and use AI to make data-backed decisions.
Ultimately, it means IT teams can move towards a point where they can design and build internal developer platforms (IDPs i.e. technologies tools featuring sets of customized, reusable, secured and strengthened code blocks to make programming faster), toolchains (i.e. collections of individual software tools that have been orchestrated to function as one combined unit of functionality inside a consistent programming environment) and workflows (as they sound, work systems that flow sometimes in parallel and sometimes sequentially, often guided by formalized business rules) that enable self-service capabilities for software engineering teams.
According to various research studies, developers spend as little as a fifth of their time per week writing code. This is driving IT and DevOps leaders to find new ways to enhance developer productivity. CloudBees says that platform engineering has come to the forefront due to its ability to establish best practices for improving developer productivity and developer experience. Platform engineering practices have already demonstrated success in shifting significant workloads away from developers.
The top drivers of platform engineering include developer productivity, continuous integration and continuous delivery (CI/CD), pipeline implementation, standardization of tools and processes, plus security enhancements and the use of Infrastructure-as-Code.
“Far from replacing DevOps, platform engineering has gained its own focus and set of engineering disciplines that are complementary to DevOps,” said Sacha Labourey, chief strategy officer, CloudBees. “Platform engineering is being widely adopted and is seen by many organizations as a key element in efforts to maximize efficiencies for software development. Our recently announced DevSecOps platform was architected to help companies take advantage of the opportunities offered by platform engineering and enable them to bring their DevOps practices to the next level.”
Where is platform engineering?
Labourey and team suggest that platform engineering’s home within an organization varies, but it is most commonly placed within cloud engineering and infrastructure groups – operations functions and what are being called ‘shared services’ units also feature this approach to technology.
While we would normally end this kind of analysis by questioning whether platform engineering is just a buzzword and another blue jeans trend, CloudBees’ Donley got in first and said, “Ultimately, platform engineering is more than just a new buzzword. It’s a revolutionary approach that is set to redefine how organizations manage DevOps workflows.”
Apparently, the next denim trend is wide-leg, wear a pair to your next platform engineering and you’ll be double-hip.
Read the full article here