Viewed by a VC investor: Cloud native (Part 1)
This article is an introduction to cloud native. It belongs to a two-article series on cloud native, where the following one will tackle the security part of it.
Hi guys, this is Maël from Orange Ventures. Startin’ is a newsletter that aims to share quality content useful for the startup ecosystem (VCs, startups, fundraisers, etc.) regarding new technologies, investments, financial models, etc.
Ever heard of cloud native? If not you are in the right place! I am here to tell you more about it and help you gain a good understanding of it!
First, cloud native is not just 2 words and 11 letters: today there is 6.5 million cloud native developers around the globe according to CNCF, which is 1.8 million more than in Q2 2019. Interesting, right? Yes, but now you might be wondering what cloud native is! So let’s move on and let me give you some more explanations.
☁️ What are cloud native apps?
To understand what cloud native apps are, it is crucial to understand the concept of monolithics apps. It is the traditional way of building apps where you have a single codebase where all different functionalities exist (e.g. messaging, marketplace, photos and all other services are meshed together as a single unit of application). Any change on such an app would require for the entire app to be deployed. On the contrary, cloud native apps modularizes each of those services. Instead of having all different functionalities of your app stuck to one another, you can have multiple micro-services (each micro-service representing a core business functionality of your application).
🤝 Cloud-native is not just a way of building apps, it is a large growing open-source community
CNCF (Cloud Native Computing Foundation), founded in 2015, is an open-source community whose objective is to nurture the cloud native ecosystem, through projects, conferences, etc. It all started with Kubernetes that was open-sourced by Google in 2015. CNCF founding members include Google, CoreOS, RedHat, Twitter, Huawei, Intel, Cisco, IBM, Docker, Univa and VMware. CNCF now gathers 97 000+ contributors coming from 177 countries, 550+ members and 50+ projects which approximately represents 1.3 Billion lines of code that have been written across those projects.
Let me guess, you are now wondering how cloud native really works! Well, let me get you through some concepts that will help you understand what it is and how this works.
👨💻 Cloud native main concepts
How cloud native apps works?
First of all, in order to understand all concepts related to cloud-native, it is important to capture how the cloud native typical stack is. The table below sums it up.
What are micro-services?
It is a code architecture where each micro-service runs a specific and unique part of the application. Each micro-service runs independantly from one-another which allows faster deployment and smaller teams in charge of specific micro-services. Each micro-services can be accessed via the API of the corresponding microservice.
What is service mesh?
It allows micro-services to communicate between each other, without needing any developer to code this communication logic within the micro-service. As described on the chart below, sidecar proxies, attached to microservices, manage all calls coming in and going out from microservices. All together, these sidecar proxies route the communications between microservices.
Service mesh is also composed of a central brick (in green on chart below) that:
Collects data on what happens between the sidecar proxies;
Allow to set up policies to know which microservice can contact which microservice;
Allows to configure the sidecar proxies.
What are containers?
It is a standard unit of software that packages up code and all its dependencies, so the application runs quickly and reliably from one computing environment to another. Each container contains a micro-service. With VM, an entire OS is virtualized for each new apps. Instead, containers are atop of this, as they use the API of a computer OS. VMs allow to have only one computer for multiple isolated apps, whereas containers allow to have one computer and one OS for multiple isolated apps. Hence, containers are lighter and more scalable than VM. All these concepts are summed up in the chart below.
When there is a peak in the demand, you just have to create more containers hosting the affected micro-service (aka Docker swarm).
What is Kubernetes?
It is an open-source container-orchestration system for automating deployment, scaling, and operations of application containers across clusters of hosts. It runs above the OS and manages all layers of infrastructure, so the developer doesn’t need to know where the applications are running.
It is composed of 4 main elements:
Kubernetes master = System that will tell which nodes and pods will run based on the availability of resources to ensure that the workload is not in excess.
Nodes = Slave nodes, that run at least Kubelet and a container runtime (like Docker).
Pods = Runtime environment with one or more containers, and storage space. Containers needing to share the same local resources will be placed on the same pods, as containers on a pod share the same IP address, network ports, etc.
Kubelet = Component running on the nodes that ensures that the containers are running as instructed. If a nodes falls, the kubelet will report it to the Kubernetes master.
What is a cluster?
It is group of servers, based on the redundancy principle to ensure service continuity and protect against failures. There are 2 types of clusters:
Active/passive cluster: It consists in duplicating the content of a server on a similar one. Both servers will be on, but only the active server will process the requests. The passive server will be in sleep mode. The second cluster is here to ensure continuity in case of an issue.
Active/active cluster: It consists in duplicating the active server with other similar servers. All servers are active at the same time and the goal is to distribute the workload between all servers, thus to support increase in demand.
Still reading? Congrats, you’ve made it! Now you should have a good understanding of what is cloud native and how it works. You should be feeling this way now:
I swear, no more technical stuffs from now on! Let me just explain you why cloud native is becoming so famous and why so many Tier-1 VCs invest in it.
🦄 Why is cloud native so famous?
First, it is important to mention that cloud native appeared in order for developers to be able to manage the whole supply chain, from developing the application to releasing it to production.
However, this is not the only reason. Below are the four main reasons why cloud native applications are rising:
No more dependencies between micro-services;
Quicker and safer delivery as you just deploy the functionality you have changed and not the entire app. This allows shorter time-to-market which is required to collect market feedbacks and fasten iteration cycles;
Smaller teams in charge of smaller services, so the productivity is higher;
Commoditization thanks to standardization.
🗺️ Cloud native mapping
Now that you know what is cloud native and why it is famous, it is time to understand who the players on this market are. Here, the mapping offered by the CNCF is great. Just click here and you will be able to access it.
About Orange Ventures
Orange Ventures is a venture fund investing in areas of Orange expertise and beyond: we invest in startups with ambition to imagine, design and develop innovative solutions, disruptive technologies and business models of tomorrow.
With 350m€ assets under management Orange Ventures is in the top 10 corporate ventures in Europe with the investment strategy focused on helping future global tech champions, fostering innovation in the Middle East & Africa and supporting new sustainable and responsible business models.
The fund has set financial objectives in line with VC industry standards, leveraging proximity to the Orange Group as a main differentiator in its proposition to startups