Inside Platform Engineering
This article is the follow-up to the previous article on Platform Engineering, let's continue to learn more about this buzzword from the viewpoint of a solution architect.
Bài viết này có phiên bản Tiếng Việt
Definition of Platform
To begin with, the keyword 'platform' is not a hype word, it depends on the company; if you ask people about the definition of platform, you will get many different answers, though most will agree with the platforms that have been very successful, such as Amazon, Alibaba, Spotify, Netflix, etc. Even in 2015, when the World Economic Organization (WEF) launched the chain activities in the Digital Transformation Initiatives event, a related keyword quickly emerged: digital platform. In recent years, the keyword data platform has continued to dominate the search queries in company with data mesh and data fabric.
So, what is the accurate definition of a platform?
In my opinion, it can be easily understood as follows:
Platform is the technological foundation upon which companies may swiftly provide value to their clients. Platform is an outcome of Platform Thinking, not a one-shot product
Aspects of Platform Engineering
Depending on the particular situation, we portray the customer, technology, and value to define the platform. This method makes it simple to clarify the features of Platform Engineering:
- Technology: All kinds of technologies assist programmers in their work process.
- Customers: Programmers.
- Value provided: Joy (be more lazy, less mistaken, and less cursing...).
Elements of Platform Engineering
In regard to the modern circumstances, we can provisionally break down the Platform Engineering architecture into the following elements:
1. Dev Portal (The Engineering Way)
The platform obviously needs a user interface, so what else may be in it than a menu to access the specific services?
The answers are:
- Profile Gamification: How to attract devs to use, contribute as well as continue to develop rank climbing? Definitely a game.
- Quick Tools: It should have a few simple tools that are often used for drawing, architecture communication and tool setup for ease of use.
- Community Discussion: In order to ask and answer questions freely, the internal version of Stackoverflow is inevitable.
2. Infrastructure GPT (Self-Services)
It is apparent that our Platform Engineering must have one-click automated infrastructure and DevOps CI/CD pipelines with the aim of lowering cognitive load. Many teams have used paved roads in the form of golden virtual images that already have everything available to save time installing and reconfiguring from scratch (which is easy to make mistakes and run into several minor issues). Nowadays, we can't just log an infrastructure ticket and wait for the environment; the GPT keyword in this component's name alludes to giving this task to a more intelligent, superior automated bot.
3. Knowledge Hub (Re-useable)
A growing number of frameworks and libraries to solve challenges are being created today due to the diversity of the tech stack. However, it is this diversity that leads to yet another issue, namely the tedious process of framing the project and buying the library's license during the early stages of the project. Besides, the need to exchange and discuss common issues is also one of valuable insights for any engineering team. As a result, we require a location where we can organize the so-called "golden stack" of frameworks and maintain version upgrades in the most straightforward manner, thereby relieving the projects' concerns.
4. Services Hub (X as a service)
As the platform develops, some services will be available as APIs or services that may be used by any team. For instance, the requirements for load testing, accessibility testing, security testing, or even the requirement to measure DORA metrics can also be given as a service, which development teams can easily use under the Pay As You Go model and concentrate more on their core product.
The elements listed above are what I believe platform engineering should include. Each company will have a different path to build it, but when the platform is designed with the spirit of a real product and executed with performance tracking and measurement, it will undoubtedly deliver remarkable expected value. These ideal values, which include improving the quality of life for programmers, are today's core competitive advantages.