The cloud-native world has significantly flourished over the years. This growth has been responsible for the birth of platform engineering. The new discipline has garnered great momentum today. With great advances in the cloud-native tooling landscape, platform engineering is understandably here to stay.
Although platform engineering is widely discussed, it is a relatively new trend with a lot of unanswered questions. What exactly is platform engineering? Is a platform engineer just a software engineer? How do I become a great platform engineer? This article is aimed at answering these questions.
Platform engineering 101
Gone are the days of running single scripts to deploy applications. In the current microservices era, you need to master 20 different tools and learn 30 different processes just to deploy a simple code change. The foundation of true DevOps, “You build it, you run it,” has become unrealistic and ends up birthing antipatterns. Developers are now tasked with managing infrastructure and similar parallel operations, which takes their focus away from valuable work. This is where platform engineering comes in.
Platform engineering is the discipline of building toolchains and workflows that enable developers to self-serve their infrastructure needs. It paves golden roads that fit the abstraction level of individual platform engineers. It combines all the aspects of a CI/CD setup into these paved paths, thus making the whole process consistent and self-serviceable.
Platform engineering provides better visibility into the relationship between service, documentation, and those who manage it. This is done by creating an easy-to-use abstraction layer known as the internal developer platform (IDP) that helps standardize all the services and decrease infrastructural complexity. Platform engineering offers a neat catalog that contains documentation and its metadata. It provisions infrastructure according to the guidelines set by the platform engineering team. It focuses on regulating autonomy rather than on forcing standards.
What makes a great platform engineer?
Platform engineers write code or configuration for infrastructure-related items instead of for applications as a software engineer does. Simply put, a platform engineer builds the platform, while a software engineer consumes this platform composed of automated infrastructure. This critical function helps deploy and test code and subsequently helps the application reach customers.
1. Refine your human language skills
To be a sound platform engineer, you need to create a better, more efficient way to do something. You also need to know how to articulate your ideas to your team clearly thus making human language skills a significant aspect.
2. Create a product loved by all
You need to look at the platform you’re building as a product you’re looking to sell. Your product should have an intuitive user interface (UI) that provides observability and guides new users. And it should be possible to do everything in code.
As a platform engineer, your internal customer or end user will be developers. Therefore, your product should focus on serving the developers more than the operations teams. The platform should have easy-to-apply changes so that the developers can easily follow a GitOps workflow to apply the required changes via their integrated development environment (IDE).
3. Focus on centralized infrastructure management and prioritize security
Do away with rigid processes to decrease operational complexity and increase efficiency and collaboration between various teams. Centralizing standards, templates, and documentation in one place makes it easier to maintain infrastructure.
Also, it is imperative to look at security as an afterthought. Implementing robust security measures and ensuring your platform complies with the latest standards should be a priority.
4. Don’t neglect common issues
Looking at only complex issues and catering to them through your platform is not enough. As a platform engineer, you must consider common problems the user will face and how to solve them. Qualitative and quantitative analysis should be applied to understand various pain points and friction areas the developers will endure.
5. Take everything into account
You need to know what business needs your platform is going to support, what the expected traffic is going to be like, and what kind of applications will run on it. Once you have figured out the purpose, you need to examine the market to see the current infrastructure and tools. This step is important to figure out how to seamlessly leverage existing tools and integrate them with your product. This avoids disruption and chaos in the existing market.
After examining everything, the next step is to pick the right tech stack with a suitable framework and tools. You will also need to analyze the resources available and ensure they are ample for the development of your platform.
6. Consider customization
Great platforms do not need to be built from scratch. You don’t have to dedicate all your resources, time, and energy to building a product from scratch every time. You can and should tailor off-the-shelf solutions if and when possible, as this can save time and be highly efficient, thus adding significant value.
It also helps avoid falling into the trap of reinventing the wheel and motivates creative solutions to tinker with existing solutions to advance them. This can become the thing that differentiates you from commercial vendors who optimize for generic needs instead of targeting specific issues.
Platform engineering has come a long way and plays a significant role in maintaining infrastructure. As the tooling landscape expands, platform engineering is here to stay. With a bright future and no shortage of resources, you should start your journey to becoming a platform engineer today!