Guest post originally published on the Elastisys blog
Cloud native technology: a new generation of software that enables a highly automated way of working with deployment and operations of services, specifically crafted around the possibilities offered by the cloud. At the epicenter of cloud native technology sits Kubernetes, an “orchestrator” of cloud native applications.
In this article, we will focus on the benefits cloud native technology brings, how it brings them, and also, the greatest pitfall. Because of course, there is no such thing as a free lunch.
The Benefits of Cloud Native
The benefits of cloud native technology, tools, and ways of working are:
- Reduced risk. A very high degree of standardization around the tools and technologies in the cloud native space reduces risk in several dimensions: organizationally (greater avenues for knowledge transfer and redundancy among engineers),
- Reduced maintenance burden. Cloud native technology highly favors automation and software-driven operations, which translates into a reduced need for maintenance to be carried out by engineers.
- Reduced cost in both CAPEX and OPEX. Both capital expenditures (upfront purchases needed to do business) and operational expenditures (on-going costs associated with doing business) are reduced considerably by adopting cloud native as a direct consequence of reduced risk and maintenance burden.
- Improved security. Adding security components to a cloud native Kubernetes-based platform brings several layers of perimeter defence to your applications without any code changes required to the application itself.
- Developer-friendly operational experience, enabling a DevOps way of working. This modern approach to development and operation of applications pushes operational responsibility to application developers, thereby removing inefficient inter-team communication bottlenecks.
Taken together, cloud native technology, tools, and the ways of working these enable you to increase development efforts without scaling up your team. Provided, of course, that you do not stretch your development team too thin by demanding they also perform platform operations.
Without getting too philosophical, cloud native means making use of the cloud the way it was always supposed to be used. Going with the grain, rather than against it. Hence the name.
There are other benefits, too. Vastly improved developer experience, ease of hiring and retaining talented developers that want to use the latest and greatest tools (who wouldn’t?), and being at the forefront of technological development. All those are great for the tech crowd, and indeed, it’s an attractive community to be part of. All major companies heavily lean on cloud native to stay competitive, both in terms of offering successful and scalable online services cost-effectively and in engineer mindshare.
How Does Cloud Native Provide these Benefits?
At the very core, cloud native relies on two foundations: standardization and automation.
- Standardization around how software gets deployed has ensured that technology and tools work equally well unrelated to underlying technology. Programming language, underlying operating system, cloud infrastructure… all these things used to have a large impact on how to deploy and operate software, but are now abstracted away, thanks to standardization.
- Automation has always been a desirable trait, but the high level of automation we see today is a direct consequence of the strict standardization cloud native embodies. Bespoke and brittle automation solutions are a thing of the past, and well-designed cloud native applications can enjoy a high degree of automation by adhering to standardized interfaces.
Thanks to standardization and automation, the task of operating software in production settings has been vastly simplified. Indeed, we have seen the rise of entirely automated software releases to a level that was previously only feasible and available to select few deep tech companies. Such processes and tool support has become a commodity and available to companies of all sizes.
What’s the Catch or Greatest Pitfall with Cloud Native?
The benefits sound great, but surely there has to be a catch somewhere?
None of the benefits of cloud native just appear out of thin air. Somebody still has to provide the platform upon which these technologies rest. Because while platform technology such as Kubernetes provides the developer-friendly abstractions that offer the attractive cloud native benefits, the cloud native platform itself has to be managed.
It is unreasonable to demand that application developers manage your Kubernetes-based platform, because the skill sets are completely different. The ability to make a user-friendly application or make efficient use of databases to the delight of end users overlaps in exactly no way with the ability to troubleshoot performance or memory leak issues deep within operating systems.
The more cost effective way of getting the cloud native benefits is to consume a working platform as a service. Beware, though, that the “shared responsibility model” of cloud providers means that most traditional managed Kubernetes services are limited in scope. With these, you are still on the hook for managing the platform and troubleshooting. Considering that Kubernetes really only forms the basis for a platform, your developers will spend an unknown amount of time they should have used for something more productive on frantically googling for troubleshooting advice to keep the platform running well.
In contrast, a fully-managed Kubernetes Platform as a Service (KPaaS) offering means you pay a predictable cost to have a fully-working and fully up to date Kubernetes platform available to you. You can further educate yourself about the differences here.
It’s like leasing a car, with service and guarantees included, rather than building one yourself and having to maintain it. The former is predictable and suits those that want to focus on the core task of having a car: driving to where you need to go. To those that love tinkering, it can feel more expensive than the do it yourself approach. But it also means standing there in the ditch with smoke coming out of the engine, watching the ones with working leased cars zoom by on the highway.
Cloud native technology, tools, and ways of working bring considerable benefits to companies that adopt them. Indeed, in 2022, major innovative and agile corporations already use them, so failure to do so needlessly grants them a competitive advantage. Standardization and automation both contribute to reduced risk, cost, and correctly configured Kubernetes-based platforms can add several layers of additional security to your applications.
The catch is that operating these platforms yourself means your team of engineers are on the hook to provide a safe, secure, and well-performing environment for your applications. If your organization is goal-oriented around delivering software services, the allure of the benefits do not outweigh the cost of the additional operational and maintenance burden in managing the underlying platform.
The most cost-effective way to get the benefits is to have a team of experienced experts administer the platform and cloud infrastructure, and provide a working cloud native Kubernetes platform as a service.