What is platform engineering? What is platform as a product? What is a platform? What is PaaS?
Well, that’s a good question… Here’s a brief explanation:
A platform is the gooey layer of frameworks, middleware, tools and practices that developers use to build and then run their applications. Thoughtworks’ Evan Bottcher defined that gooey layer more precisely back in 2018:
A digital platform is a foundation of self-service APIs, tools, services, knowledge and support which are arranged as a compelling internal product. Autonomous delivery teams can make use of the platform to deliver product features at a higher pace, with reduced coordination.
You can think of it as everything above the infrastructure layer, whether that infrastructure is Infrastructure as a Service (IaaS), bare metal, virtualization or Kubernetes. In cloud native shops, Kubernetes provides the blinking cursor, sometimes referred to as the “dial tone,” and the platform is all the stuff you pile on top of it so developers can start coding and you can start running their applications in production.
In the past year , internal developer portals (IDPs) have been added to the components of what is considered a “platform.” What an IDP is varies (Gartner has a good go at defining it, you can read it for free), but we think of it as all the old-school application life cycle management stuff that’s been missing for many years.
It’s the intranet that developers use to support inner sourcing, discovering other available teams and APIs, tracking their own apps, documentation and, as the name implies, a portal framework for all the information radiators and single-pane-of-glass needs that organizations have.
There’s the technology of a platform, such as the the two found in the VMware Tanzu portfolio, here’s one of them:
And then there’s the new practices that infrastructure and operations staff start doing to not only run the platform, but support developers - to start treating developers as their customers:
For a more detailed overview and recommendations on how to make it work, check out my recent talk on this topic here.
At VMware, we have two platforms:
More links on the topic: