Skip to content

Finding your way into Cloud Native

Posted on:June 5, 2022 at 08:00 AM

Originally published by me on the Liquid Reply Blog

I presume you already have heard about Cloud Native before but if not certainly about Cloud Computing at some point. In a nutshell, Cloud Computing is the usage of a distributed computer network that consists of servers, network components and storage. Everybody uses services hosted on “the cloud” day by day (This website is also hosted in the cloud). Maybe you or your team have also configured a system using a Cloud Provider AWS, Azure, GCP or planning so. From here on out we are on a good path to getting into the Cloud Native topic. Let me say right now, Cloud Native is not another Cloud Provider, it adds to it.

You can expect of this article to get an introduction to Cloud Native. We will not dive into details that much though. I am planning a couple of follow-up articles that talk about Cloud Native topics in more detail.

Hello, Cloud Native

With Cloud Native you will encounter the Cloud Native Computing Foundation (CNCF) that hosts some of the biggest Cloud Native projects. That is right, only some – Cloud Native is not a brand, it is a term to describe a certain kind of service. These Cloud Native Applications (CNA) have common attributes that make an application Cloud Native. Let’s walk over those and then look into the CNCF and its Projects.

Attributes of Cloud Native Applications

The CNA attributes are all familiar to Software Engineers and lay the ground for well-designed software. Let me just mention these briefly.

Any application running in the cloud should strive to meet these CNA attributes. Just as an aside, these attributes do not describe platform requirements. These are generic design concepts that can be applied to any IT infrastructure, like your own data center or any public cloud. For example, AWS Lambda is also a Cloud Native Application by definition. The fact that it is provided only on AWS does not eliminate the service from being cloud native. It is possible to create a Cloud Native system in a public cloud environment using only the public cloud services.

Context of Cloud Native Applications

To build a system which incorporates these Cloud Native attributes you committed to build a microservice or service-oriented system that uses containers to ship the software. Just by running a container on a VM you cannot reach those goals of scalability, resilience, manageability, observability and loose coupling we talked about before. The surrounding infrastructure allows that, which can be provided by public cloud services or container orchestrators like Kubernetes. Kubernetes will be introduced briefly later in this article. To better follow these thoughts, you can consider the following diagram.

consider-docker-alternatives

As said, the services around your application turn the application into a Cloud Native Application. All these services can be self-managed or managed by someone else. Let’s return to the initial introduction of CNCF and the role it is playing in the Cloud Native world.

Cloud Native Computing Foundation (CNCF)

The Cloud Native Computing Foundation (CNCF) is an open-source software foundation that hosts some of the largest and most prominent cloud native projects. The CNCF, a subsidiary of the Linux Foundation founded in 2015, aims to build a vendor-neutral community of developers, end users, and IT technology and service providers to collaborate on open projects. With the donation of the Kubernetes project from Google, the CNCF was founded and has grown rapidly since then. The CNCF hosts events such as KubeCon and other gatherings. The CNCF is mainly funded by donations from large IT companies.

Why does the CNCF exist?

We’ve already talked about the CNCF’s mission and its role in the cloud native landscape. One question you might be asking yourself now is why it exists at all. Why do you give your project to CNCF and not just keep it in your organization? I think clarifying that question explains why CNCF was created and exists. From my perspective, it’s about adapting to new projects. The CNCF and similar organizations have (not so) secret superpowers in terms of project adaptation.

Let’s look at some projects!

CNCF Projects

The CNCF has three categories to develop projects first a project is in the Sandbox stage then it moves to the incubation stage and finally reaches the graduation stage (you can find more information about this here). Note that there is no guarantee when or if a project will move to the next phase. In the following image you can see all graduated projects as of March 2022. For a more complete picture you can check out the Cloud Native landscape (don’t let it scare you :D).

consider-docker-alternatives

Let’s introduce a few of these projects briefly.

You can find an overview of all these projects on the CNCF website.

Why does Cloud Native matter

I assume you have already found reasons why Cloud Native is a thing, but let’s conclude anyway. I think you can also break this question down into smaller „why does it matter“ questions, such as why it matters to develop open source, why it matters to develop Cloud Native applications, or as we have already discussed, why the CNCF matters. All of these come together and conclude into Cloud Native matters.

Open-source matters because it is a transparent, free, open, and community-driven way to develop software. Cloud Native Applications matter because they are the result of developing good software in the cloud. Cloud Native matters because it gives you the tools to build well architected systems in the cloud.

That wraps it up. Questions, feedback, anything is always very welcome! You can reach me on Slack on the Kubernetes server or on Twitter.