7 Things You Ought to Know about Platform Engineering
The rise of Cloud Computing, and the desire of many organisations to move to a Cloud-Based platform, often in a hurry, has created the concept of platform engineering. It is particularly relevant when an organisation needs to migrate legacy systems to a cloud platform.
The obvious follow-up question is do we need Platform Engineering? Here are seven things you need to know before coming to a decision.
What is Platform Engineering?
Basically, Platform Engineering is a new name for the activities involved in bridging the gap between hardware and software and could be put simply as easing the process of bringing software solutions to the user. Most disciplines already exist and calling it Platform Engineering just ties up the concept in a neat bundle.
A fuller and less digestible definition is that it concerns the pulling together of design, build, Implementation and maintenance into a framework that makes the various platform components manageable.
Why Do We Need it?
The ability of Cloud Platforms to support applications based in different operating environments and their packaging as microservices has established the container concept, where each application runs in its own micro-environment. New development, implementation and operational challenges have arisen as a result, which does cause a shift in those traditional responsibilities.
These new responsibilities include the growing popularity of Kubernetes as the container environment, the Cloud itself and SaaS.
If an organisation is contemplating migrating their existing systems to the Cloud, then they will see a need for expertise in managing the process and setting up a Platform Engineering team to do that is a natural response.
If however, there are no systems to migrate, or the decision is to replace legacy systems with new cloud-based systems then there may be a lesser need for Platform Engineering.
What does a Platform Engineering Team Do?
A Platform Engineering team is often considered to have the same responsibilities as that of a DevOps team. That is not strictly true. Adopting a Platform Engineering approach is more than that.
As an example, Platform Engineering means using standard environments where possible. This means defining standards for container deployment, perhaps automating them where possible. Monitoring and auditing the overall infrastructure will be necessary, and it may therefore be necessary to document standards for applications developers.
As with many things in IT, many activities were originally pretty much ad hoc with teams coming together as and when required. Most had an applications development group and an infrastructure group who worked pretty much independently. However, with the development of web-based systems, the Platform Engineers can manage the interface between the two groups.
This can be summarised as:
- Separation of Concerns. This helps with the concept of SAAS by platform engineers creating APIs that lets developers create and consume services without consideration for the underlying technologies. For example, an API can allow a service to interact with any database, SQL or not, or with any search engine.
- Standardisation. Having Platform Engineers define the tools and techniques to be used in DevOps enhances collaborative working, reduces confusion and misunderstanding and should reduce the time taken to resolve issues.
- A Technology Curtain. It is much easier to bring non-technical people, for example, users into the development cycle, thereby creating more effective and user-friendly systems.
When does an Organisation Need One?
As systems complexity increases, it becomes increasingly difficult, resource-intensive, and costly to keep the ship afloat. At that point, the formal adoption of Platform Engineering might reduce the pain.
As always, some trade-offs need to be considered when looking at establishing a Platform Engineering team. It diverts resources from existing tasks, for example, BI and DevOps. Second, it might be happening anyway as some engineers have independently started the process, leading to organisational confusion, reducing effectiveness and productivity, and potentially increasing expense.
Some organisations have expressed it as the process of balancing short-term and long-term gains.
What are the problems with Platform Engineering?
To some, Platform Engineering is a solution looking for a problem. It is not easy to implement, difficult choices will need to be made and sacred cows may need to be sacrificed. One particular issue is that of lock-in.
Choosing a specific container system, for example, Kubernetes and what it runs on, say VMWare, can make a transition to a different platform difficult, time-consuming and expensive if it should be necessary in the future. Some users going down this path have found themselves learning skills they will never use again, or hiring expensive contractors to provide specific infrastructure skills.
One specific issue is that of moving from a legacy environment to the Cloud, or between Cloud models, say from a public to a hybrid cloud.
Platform Engineering is not something to just jump into.
What are the solutions?
Looking around, there are the usual group of consultants, service providers, and vendors who claim to be able to offer the ultimate solution. To be sure, there are many solutions out there, but not all will meet specific requirements.
Organisations need to be wary of technology solutions that promise technology Nirvana but fall short in providing measurable business benefits or require lock-in to current technologies. Others might want you to migrate to their premises and infrastructure.
The real need is to see if the vendor jas already delivered what they promise and it is what you need.
Before concluding that you need a Platform Engineering team, you need much more information. Modernising your IT culture should be part of the organisations normal activities, not just a reaction to current trends.
As with most technology questions, it depends.