An introduction to cloud native for commons
This file is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported license.

An introduction to cloud native for commons

When I was writing this article, movie buffs all over in India are eagerly waiting for the release of the sequel of a popular blockbuster movie Drishyam over Amazon Prime Video. Over the past one year, the disruption caused by Covid-19 has changed the way we live our day to day life including how we consume entertainment. During the lockdown, watching movies over Netflix or Amazon Prime Video was the only mode of entertainment some of us had. Ever wondered how these streaming platforms are able to handle such huge volume of traffic while available 24*7 with zero or minimal downtime. Here, what is working behind the scenes is the cloud native architecture which is a way of building and deploying software applications with speed, agility, and efficiency. In this article I will briefly touch upon what is cloud native architecture and different components.

Let us look at Netflix for example. Netflix is a service that has viewers from about 190 countries and streams around 250 million hours of video per day for almost 1 billion paid subscribers. What we see as Netflix service is an application composed of several hundreds of independent small programs known as micro services. There are micro services for each of the functionalities of Netflix. For example, there are micro services to keep track of payments, to store our watch history, to show video in the right format for the device we are using, a micro service to suggest movies based on our interests or geographical location and so on. Each micro service is independent of each other and talk to each other using APIs. Each micro service can be modified, deployed, updated, rolled back, scaled independently. When a blockbuster movie is getting released on the online streaming platform, there will be huge incoming traffic to the platform compared to normal days. Hence, some of the micro services need to be scaled up to handle the traffic and they need to be scaled down once the traffic gets reduced.

How do we deploy the micro services so that they are independent. Here, containers come to our rescue. Containers allow us to package the binaries and all the dependencies of a micro service together. You can run containers in any computing environment where there is a container run time engine like Docker is installed.

Managing containers would have been easier if there are only few containers. However, in real time applications, there may be hundreds or thousands of micro services with several instances of them running at the same time. Deploying, scaling up, scaling down, upgrading such large number of containers is a Himalayan task. It leads to the evolution of container management systems and Google came up with Kubernetes which became the most popular container management system. By automating the tedious job of deploying, scaling, updating, monitoring containers, Kubernetes made the tedious task of managing containers easier.

For applications like Netflix you need to build, test, and release the software rapidly, frequently, and more consistently. Traditional approaches of software delivery was not sufficient to address those challenges and newer approaches to application delivery were needed. Using DevOPs practices where software developers and IT operations collaborate with each other and continuous delivery mechanism where you can move incremental software changes into production constantly through automation, organizations were able to address this challenge. Using these practices organizations were able to roll out the software changes and new features rapidly on a regular basis.

Since we have covered all the components of the cloud native approach, let us look at the cloud native definition:

Cloud native is a software development approach that relies on the micro services architecture for building and deploying applications with the following key attributes:

  • Deploy applications as independent micro services or containers
  • Involve a very high degree of automation
  • Centers around APIs for interaction and collaboration
  • Implements agile DevOps processes and continuous delivery workflows

Hope, I was able to provide you a fair idea of what is the cloud native approach. Not only while watching movies on online streaming platforms, you see a lot of cloud native in action in your day to day life. When you book a cab using Uber or purchase over the Amazon flash sale it is the cloud native architecture which is silently working behind the scenes.

#cloudnative #cloudnativearchitecture #drushyam2

Great read. Do add details about high availability, scalability, etc. too to this article.

To view or add a comment, sign in

More articles by Sreejith GS

Others also viewed

Explore content categories