Cloud native adoption
Digital is a business imperative. Even before the pandemic, cloud had become an ideal way to rapidly scale compute, storage, and network infrastructure, and business leaders had acquainted themselves with the relevant cloud terms—public cloud, service provider, hyperscaler, cloud cost, storage, and more.
Then the global pandemic took hold, and the world experienced a surprise: cloud-native adoption took off like a rocket, and its top-of-mind relevance ushered in a whole new vocabulary – terms like containers, microservices, service mesh, and observability are all part of the new cloud-native dictionary.
If you’re not familiar, fear not. In a recent report, Raising a toast to cloud native: A primer on the cloud-native paradigm, 451 Research, part of S&P Global Market Intelligence, breaks it all down for people still getting familiar with the cloud-native paradigm. The report, which is summarized below, uses a goods-manufacturing analogy – specifically toaster building – to define key cloud-native terms.
“Cloud-native appears to be on everyone’s mind right now,” says 451 Research. “But it can be easy to get lost in its new vocabulary — from microservices to service mesh.”
The toaster take
Setting up its toaster-making analogy, 451 Research starts off with a summary of cloud-native principles.
- The fundamental benefit of cloud is rapid scalability of infrastructure – being able to deploy compute, storage, and network in minutes without advance reservation.
- Just because an application has access to more resources doesn’t mean it can scale efficiently.
- Just because a goods manufacturer builds a bigger factory doesn’t mean its supply chain grows also.
“Cloud-native is a set of architectural principles that allow applications to be managed efficiently at scale. The key principle is that the application is broken into components that are discrete independent functions called ‘microservices.’ Containers are the technology by which these microservices are packaged. These microservices can be updated, scaled up, and managed simply and independently, without needing to rebuild the whole application.” All with a single goal: “To allow applications composed of hundreds or even thousands of components to evolve, and to evolve quickly,” 451 Research asserts.
Ultimately, this benefits user experience, the analysts believe, such as these gains:
- New features can be added more quickly.
- Performance can be improved by scaling more rapidly.
- Bugs can be resolved swiftly.
Monolithic toaster
The toaster comparison is an ideal starting point for getting familiar with the new vocabulary that comes with cloud-native. “Just like a toaster, an application has many components—there are functions that perform specific tasks,” says 451 Research. “In our monolithic toaster, each component is part of the whole and can’t easily be separated from the others.”
- If a resistor (a small electronic component that dissipates energy) becomes obsolete, the manufacturer must retool the whole factory to make new resistors and redesign the toaster.
- If there is a shortage of silicon for the circuit board, for example, the manufacturer must build a new mine to extract it.
- If there is a surge in demand for toasters, the manufacturer must scale its whole operation to deliver.
If demand goes up, explains 451 Research, the manufacturer could build a bigger factory – but that would mean scaling every single aspect of its operation, which leads to vulnerabilities such as supply chain shortages. The monolithic toaster manufacturer is limited.
Applications and toasters
Just like a toaster, an application has many components – there are functions that perform specific tasks. In our monolithic model:
- The developer builds this application as an integrated whole.
- If a part of the application needs to be changed or updated, the whole application must be changed or updated.
- If demand is putting a strain on database transactions, the whole application must scale rather than just the database.
We’ve now come full circle to the issue of scale. Like a factory, an application can be made bigger to meet increased demand, but as with the toaster factory analogy, vulnerabilities arise: “Scalable access to infrastructure through the cloud has made this feasible – we could put it on a bigger cloud instance or across virtual machines,” states 451 Research in its report.
However, “If a part of the application needs to be changed or updated, the whole application must be changed or updated… Because the system is structured as a tightly integrated monolith, bottlenecks in any part of the code can bring down the whole application.”
Cloud-native toaster
A supply chain exists to help the toaster, and other manufacturers, scale production. Should one component become unavailable (or should there be a sudden spike in demand for more), the manufacturer can swap in another vendor’s component (or buy more components from a different vendor).
Similarly, “In a cloud-native model, components of the application are separated and self-supporting—these components are called microservices. Each is a distinct function with a specific purpose that doesn’t rely on any other component,” writes 451 Research.
- Microservices — Different components perform interactions with other components via APIs (application programming interfaces). These are a standard format for making a request to the microservice, analysts write. “If one service needs to be updated, it can be done independently of the rest of the application. If there is a boom in demand, microservices can be scaled independently based on what is required at the time.”
- Containers – Applications, like toasters, have lots of components that all work together to make it possible for people everywhere to have a nicely browned piece of bread with their morning coffee or tea. “Containers are the technology by which these microservices are packaged,” the report authors explain. They’re “self-reliant parcels of code and libraries… that can be updated, scaled up, and managed simply and independently, without needing to rebuild the whole application.”
Business professionals still learning about cloud also need to understand how one or many clouds work with microservices, enabling the microservices to scale by providing a robust and flexible infrastructure. Containers are often the technology that is used to package these microservices as self-reliant parcels of code and libraries. “Serverless is a model whereby microservice code can be executed without the developer being concerned about the underlying infrastructure,” the report notes.
- Observability – Organizations embracing cloud-native are striving for higher SLAs as they rapidly roll out new applications and features. Applying the three phases of observability will help achieve better outcomes for organizations embracing cloud-native:
- Know about the problem: How quickly am I notified when something is wrong?
- Triage the problem: How easily can I find out the impact and scope of the issue?
- Understand the problem: How do I discover the underlying cause so I can fix the problem?
Toaster Supply Chain
Every manufacturer also has to track what suppliers provide which components as well as how many supplies they’ve ordered and received. Software development needs to do this kind of tracing, too.
- Container Orchestration – In the cloud-native world, “this is the role of container orchestration, such as Kubernetes—to keep track of containers (and the microservices contained within them) so they can be scaled up or down,” explains 451 Research analysts.
- Service Mesh – On-demand manufacturing (even for toasters) is more fast paced than ever, requiring suppliers to be in continuous communication to fill orders properly and efficiently. Central authority can not only inhibit direct contact but slow down production. “The job of communicating among the suppliers in service of the manufacturer’s needs is the role of the service mesh… to regulate and direct communication between microservices,” according to 451 Research. “As the number of microservices increases, the service mesh keeps messages flowing between new containers being implemented by the container orchestration platform. If a new microservice is added, service discovery tools can help this location be identified and tracked.”
- Continuous Integration/Continuous Delivery (CI/CD) – Nearly every business, including a toaster manufacturer, has standards for its components. You can’t just substitute one for one and hope the appliance will keep operating the way it’s always worked. There are also a high number of requirements for applications. “CI takes the code that we want to update a microservice with, and it packages it with other libraries to make an image that can be used to replace the component like-for-like,” explains 451 Research. These images are stored in a registry and are provisioned to the application via CD, which swaps the old code for the new code. The image provides a unit of code that can be provisioned repeatedly to make the component scale to changing demands.
Rapid adoption by the numbers
It’s no wonder a primer is needed to explain today’s cloud-native vocabulary. Organizations are increasingly incorporating cloud-native technologies into their environments, according to 451 Research’s semiannual Voice of the Enterprise: DevOps survey.
The data reveals a steady shift toward cloud-native, from organizations planning to adopt it, to those building proofs of concept for it, to those who have achieved team-level and then full adoption of it. This transition will only accelerate as more teams recognize the value of cloud-native architectural principles, which enable applications to be rapidly rolled out and efficiently managed at scale.
Adoption Status for Cloud-Native Technologies, 2H 2020
The simpler we make complex technical terms for business owners, the better understood their benefits can be to the whole organization. The task is ongoing as the Cloud Native Computing Foundation (CNCF)’s recently published interactive map of the cloud-native computing landscape currently shows more than 1,000 parts, with its estimate of a combined market cap of about $15 trillion and funding over $25 billion.
For both building and running applications, cloud-native takes full advantage of the cloud computing delivery model. It speeds time to market for new products and services while helping to ensure consistency in how applications are developed and deployed. Access the full report ≠ Raising a toast to cloud native: A primer on the cloud-native paradigm – to help your executives understand the practicality of going all-in on cloud-native.