134 lines
7.0 KiB
Markdown
134 lines
7.0 KiB
Markdown
---
|
||
type: "blog-post"
|
||
coverImage: "https://images.unsplash.com/photo-1512187849-463fdb898f21?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1932&q=80"
|
||
title: "Platform Engineering: The next era of ops"
|
||
description: "Platform engineering is a new methodology that takes a user-centered approach and treats developers as stakeholders, ultimately leading to improved software quality and time-to-market. Platform engineering provides an opinionated and curated view of the platform, benefiting feature squads by streamlining development and improving collaboration between teams."
|
||
draft: false
|
||
authors:
|
||
- "kjuulh"
|
||
date: "2023-04-05"
|
||
updates:
|
||
- time: "2023-04-05"
|
||
description: "first iteration"
|
||
tags:
|
||
- '#blog'
|
||
---
|
||
|
||
# Introduction
|
||
|
||
In recent years, the field of software development has witnessed the emergence
|
||
of several new trends and methodologies. DevOps, which combines operations with
|
||
software development, was one of the first such trends to gain widespread
|
||
popularity. While it brought about significant improvements in the development
|
||
process, it ultimately reached a point of stagnation, leaving room for further
|
||
innovation.
|
||
|
||
One of the newer trends that has emerged is platform engineering. This approach
|
||
builds upon the foundations laid by DevOps but takes a more product-oriented
|
||
mindset to delivering value. Platform engineering involves creating and managing
|
||
the technology infrastructure that supports an organization's applications and
|
||
services. It combines operations with systems development, with the aim of
|
||
improving efficiency, reducing downtime, increasing scalability, and enhancing
|
||
security.
|
||
|
||
The key goal of platform engineering is to bring value to engineers and treat
|
||
them as stakeholders. This means taking a user-centered approach to building and
|
||
maintaining the technology infrastructure that supports the development process.
|
||
By doing so, organizations can increase developer productivity and job
|
||
satisfaction, ultimately leading to improved software quality and faster
|
||
time-to-market.
|
||
|
||
## Why platform engineering
|
||
|
||
Adopting a new methodology requires a reason. Platform engineering may not be
|
||
suitable for every company, but it is ideal for medium-sized companies with a
|
||
sizable engineering team. It's worth noting that platform engineering isn't
|
||
solely for operations; it can be used for any type of platform, not just
|
||
infrastructure services.
|
||
|
||
The primary motivation for implementing platform engineering is to serve a large
|
||
number of developers who rely on a relatively uniform tech stack. When starting
|
||
from scratch, platform engineering allows teams to collaborate with
|
||
stakeholders, such as developers, to define the product – the platform itself.
|
||
|
||
However, platform engineering can also be adopted or evolved from existing
|
||
DevOps or SRE teams, or it may grow from an enabler squad if their product is
|
||
beginning to see significant usage within the company.
|
||
|
||
Several principles guide platform engineering
|
||
|
||
- The platform must be under control and in service of its stakeholders.
|
||
- The platform should bring value to the business through its developers.
|
||
- If its services are needed beyond the company, the platform must evolve into a
|
||
feature squad while maintaining its previous connections. Maintaining a direct
|
||
and stable connection to developers is critical to keeping the platform
|
||
focused.
|
||
|
||
## Differences to existing methodologies
|
||
|
||
Platform engineering operates at a higher level of abstraction than SRE or
|
||
DevOps. While SRE oversees infrastructure or direct services for the business,
|
||
and DevOps aims to bring together developers and operations, platform
|
||
engineering provides an opinionated and curated platform to feature squads. This
|
||
can take various forms depending on the company, ranging from CLI tools or
|
||
Jenkins plugins to overseeing the entire development journey, from project
|
||
creation to day-2 operations.
|
||
|
||
Platform engineering can enhance feature squads to the extent necessary, without
|
||
ever interfering with the actual business domain. A platform engineering team
|
||
can collaborate with a feature squad to develop a business feature, as long as
|
||
the feature squad retains ownership and the platform engineer is there to gain
|
||
experience in using the product they build. However, this should not be the
|
||
first option, as it can be a costly exercise.
|
||
|
||
Overall, platform engineering provides a valuable perspective that can benefit
|
||
feature squads. Its focus on providing an opinionated and curated view of the
|
||
platform can help streamline development and improve collaboration between
|
||
teams. By working together, feature squads and platform engineering can create a
|
||
more efficient and effective development process while maintaining clear
|
||
ownership of each project.
|
||
|
||
## Modes of Operation in Platform Engineering
|
||
|
||
Platform engineering has two primary modes of operation, which in some ways
|
||
mirrors how a business serves another business (B2B):
|
||
|
||
- Product discovery
|
||
- Product maintenance and evaluation
|
||
|
||
This is a continuous cycle of discovering, building, maintaining, and evaluating
|
||
products to ensure that they meet their intended goals and remain relevant. The
|
||
key difference between B2B and platform engineering is that the latter is far
|
||
more opinionated and direct, building opinionated tools rather than generalized
|
||
products to serve the needs of developers and business services.
|
||
|
||
It's important that platform engineering teams operate independently rather than
|
||
being embedded within business teams, although they should have reasonable
|
||
feedback mechanisms in place. This can include joining guilds to participate in
|
||
general discussions with business teams, spending time with business teams to
|
||
collaborate on development, or providing outreach through talks and training
|
||
sessions. This two-way exchange provides an opportunity for platform engineers
|
||
to receive feedback on their products while also enabling business teams to
|
||
learn how to use them effectively.
|
||
|
||
By maintaining this feedback loop and focusing on opinionated tools that meet
|
||
the needs of developers and business services, platform engineering teams can
|
||
ensure that they provide a valuable service to the organization as a whole.
|
||
|
||
# Conclusion
|
||
|
||
Platform engineering is a methodology that combines operations with systems
|
||
development to create and manage the technology infrastructure that supports an
|
||
organization's applications and services. By taking a user-centered approach and
|
||
treating developers as stakeholders, platform engineering aims to increase
|
||
efficiency, reduce downtime, enhance security, and ultimately improve software
|
||
quality and time-to-market. It provides an opinionated and curated view of the
|
||
platform, which can benefit feature squads by streamlining development and
|
||
improving collaboration between teams.
|
||
|
||
Platform engineering operates in two primary modes of operation: product
|
||
discovery and product maintenance and evaluation, and it's essential that
|
||
platform engineering teams operate independently but maintain feedback
|
||
mechanisms to receive feedback on their products while also enabling business
|
||
teams to learn how to use them effectively. i
|