2023 Marks the Rise of Cloud-Native Platforms
Modern software continues to evolve toward cloud-native. In other words, new software is being built explicitly for the cloud computing paradigm. In contrast to legacy technology bred for traditional deployment styles, cloud-native infrastructure is designed to reap the benefits of the cloud like elasticity, scalability, high fault tolerance and availability.
To construct cloud-native platforms, common cloud-native technologies include things like serverless functions, microservices, containers and container orchestration and scheduling tools. For example, a CNCF survey found that 96% of organizations were either using or evaluating Kubernetes, arguably the most popular cloud-native framework. And analysts continue to forecast explosive cloud-native growth. According to Gartner, over 95% of new digital workloads will be deployed on cloud-native platforms, up from 30% in 2021.
Cloud-native is quickly becoming a defacto standard for software deployment models. But what should we expect in the coming years? Below, we’ll examine the state of modern cloud-native platforms and the current trends. We’ll consider some of the challenges around cloud-native technologies as it is today and see what tools and groups will be moving the needle forward.
Cloud-Native For the Win
As briefly mentioned, there are many key benefits to going cloud-native. The first is to modernize legacy infrastructure, like virtual machines, which weren’t necessarily designed for the nuances of the cloud. With cloud-native platforms, workloads are better optimized to scale to new demands, helping to increase reliability and avoid outages. This optimization capability could be leveraged to maintain a leaner, more cost-effective IT footprint. Also, unlike waterfall monolithic deployment modalities, cloud-native approaches enable more agility and a more frequent release cadence of microservices.
So what does the cloud-native stack look like in 2023? Well, there are now many mature cloud-native components, and most are free, open source software (FOSS). For example, Kubernetes is the ubiquitous container scheduler. Many mature cloud-native observability tools exist, like Prometheus, Jaeger and Fluentd. Similar headway has been made in service mesh, security and compliance, CI/CD and many other areas.
In recent years, we’ve witnessed a lot of collaboration and industry consolidation around key cloud-native projects, with backing from some major technology companies. Groups like the Cloud Native Computing Foundation (CNCF) continue to lead the charge to set standards and mature the cloud-native space. Other Linux Foundation bodies continue to make great strides in ancillary areas, like OpenSSF for open source security and the CD Foundation for CI/CD.
Ongoing Cloud-Native Challenges
Although the cloud-native ecosystem is bright and active, new challenges have arisen. One key roadblock to wider adoption of cloud-native platforms is the usability hurdles associated with their inherent complexity. This has influenced a newfound emphasis on developer experience and abstraction layers that wrap complex technologies. Some other challenges in the cloud-native world include the following:
Fine-tuning cost optimizations. Cloud costs are still elusive. It’s estimated that 30% of cloud spending is wasted yearly. It can be challenging to wrangle cloud-native costs and have transparency into cloud billing.
Edge computing for Kubernetes. Many organizations are seeking to run Kubernetes on edge environments. This may be done to put computation closer to the data and avoid costly cloud ingress/egress fees. As a result, several unique approaches have been created to port Kubernetes to edge and bare metal instances.
Increased management strain. Common pitfalls around Kubernetes usage include things like not sizing clusters properly, having too many different types of node pool configurations, and a lack of governance. And recently, organizations are managing more and more Kubernetes clusters. Without shared configuration templates and better governance, multi-cluster adoption could place an added strain on maintenance and bring inconsistencies across environments.
Stateful container-based deployments. It’s somewhat of an oxymoron, but organizations are attempting to run stateful deployments using containers. Although containers are intended to be stateless, developers often need end applications to interact with a stateful database. Figuring out the process to enable this (as well as data backup and recovery) while retaining the nature of a decoupled system can be a complex undertaking.
Tooling sprawl and maintenance concerns. Whether we turn to APIs, observability tools or multi-cluster preferences, there’s a preponderance of tools in use. Unmitigated cloud-native tooling sprawl could increase technical debt and potentially lead to shadow IT. To help govern surging tooling adoption, some have turned to platform engineering to centralize tools and standardize developer workflows.
Cloud-native threats. Lastly, certain threats are unique to cloud-native development. For example, insecure defaults in public clouds and OSS may make software ecosystems prone to abuse. Kubernetes has suffered cryptojacking attacks, largely due to cloud-native misconfigurations. Other cloud-native threats include leaked credentials and software supply chain disruptions.
The Future Looks Cloud-Native (and Less DIY?)
This is only the tip of the iceberg regarding the ongoing efforts in the cloud-native space. There are many exciting developments in play, yet simultaneously, many areas of tension persist when implementing cloud-native technology in practice. And some teams are finding cloud-native platforms too tricky to manage themselves.
As a result, many organizations are moving away from self-managed Kubernetes to embrace managed services from public clouds, like AKS or EKS. In fact, the State of Kubernetes 2023 survey found that 84% of companies prefer to let vendors handle Kubernetes. Furthermore, it’s essential to gauge whether or not Kubernetes actually makes sense for the particular deployment pattern at hand.
Regardless of the exact usage model, the fact remains that cloud-native components are primed to make up the foundation of future software designs. Getting a leg up on the cloud-native style now is thus vitally important for organizations hoping to remain modern, agile and in tune with the latest development trends.