This is the second article in the series, Udacity: SUSE Cloud Native Foundations. Here I'll be going through the fundamentals of Cloud Native, what is CNCF, and the keypoints to consider when adopting Cloud-Native practices.
This section briefly discuss what cloud native means. It is expected that readers must have an understanding of the following concepts which will be used throughout the entire 6-part series.
- web application development, specifically Python
- running commands in the CLI or command-line interface
- using git commands
- a DockerHub account
In its simplest terms, Cloud native refers to building and managing applications at scale using either private, public, or hybrid cloud platforms.
The first two key things to know is this focuses on speed and agility - how quickly anorganization can response and adapt to change.
The third key thing: containers.
You might have heard of this buzzword being thrown around in technology nowadays.
Containers are simply processes but are treated as the smallest unit of an application. They are closely associated with cloud native applications as containers are a great way to deploy applications quickly and resiliently given their lightweight feature.
Now, when you hear containers, it is also often followed by another buzzword: microservices.
This will have its own section in the succeeding notes but for now, just know that microservices are a collection of small, independent, and containerized applications.
With the advent of containers, the need for tools to manage and maintain them also arise. Some of the container orchestrator tools that are being used is the market are Kubernetes, Apache Mesos, and Docker Swarm, with Kubernetes being the leading tool in deploying containerized workloads.
It was a project inside Google and was released in 2014 and is currently being maintained by CNCF or Cloud Native Computing Foundation, a vendor-agnostic organization that manages open-source projects. The main features of Kubernetes are the automation of:
Over time, Kubernetes was developed to include more than just automation but also other functionalities:
- Service Mesh
- Logs and metrics
Adoption cloud-native practices means consideration alot of factors, specifically business and technical keypoints, which would need to be assessed by all the stakeholders.
From a business perspective, the adoption of cloud-native tooling represents:
- Agility - perform strategic transformations
- Growth - quickly iterate on customer feedback
- Service availability - ensures the product is available to - customers 24/7
From a technical perspective, the adoption of cloud-native tooling represents:
- Automation - release a service without human intervention
- Orchestration - introduce a container orchestrator to manage thousands of services with minimal effort
- Observability - ability to independently troubleshoot and debug each component
Now that you have an overview of what Cloud-Native is, you're ready to dive in to the architecture consideration, which you can read in the succeeding article.
If you enjoy this write-up and would like to learn more, make sure to hit the Follow just below and bookmark the series. I'll also be glad to connect with you on Twitter.
See you there! 😃