directory

The article directories

The origin of cloud native

Container technology, or OS virtualization, first appeared in 1979 as Chroot Jail and is still in use today.

In 2004, Google started using Container technology, and in 2006, Google released Process Container. The purpose of Process Container is to provide processes with operating system-level resource constraints, priority control, resource auditing capabilities, and Process control capabilities similar to virtualization technologies.

In 2007, Process Container technology was introduced into the Linux Kernel. Because the term Container has many different meanings in the Linux Kernel, Process Container is renamed to Control Groups (Cgroups for short) to avoid confusion.

Linux Container 2008 Linux Container, or LXC, combines the resource management capability of Cgroups with the view isolation capability of Namespace to achieve process-level isolation.

In 2013, dotCloud released Docker Container based on LXC (including CGroup, Namespace, and chroot).

In 2014, Kubernetes container Choreography platform was released. The Kubernetes project was designed to provide a Containers management platform that is convenient, fast and elegant.

In 2015, CNCF (Cloud Native Computing Foundation) was founded under the umbrella of the Linux Foundation, led by Google, Redhat, and Microsoft. Dedicated to fostering and maintaining a vendor-neutral open source ecosystem to promote cloud native technologies. Kubernetes was the first open source project hosted by CNCF.

A series of projects hosted in CNCF are dedicated to the management of the whole life cycle of cloud native applications, providing us with a complete set of solutions through open source software in various fields such as deployment platform, log collection, Service Mesh, Service discovery, distributed tracking, monitoring and security.

As of February 2020, CNCF has 433 members, including some leading enterprises in various industries in China.

How do you define cloud native

The concept of CloudNative was first proposed in 2013 by Matt Stine of Pivotal.

In his 2015 book Migrating to Cloud Native Architecture, Matt Stine defined several characteristics that fit cloud native architecture: 12 factors, microservices, self-agile architecture, API-based collaboration, and vulnerability.

In 2017, Matt Stine summarized the cloud native architecture as modular, observable, deployable, testable, replaceable, and processable. Matt Stine thinks that the cloud is a collection of ideas, Including DevOps, Continuous Delivery, MicroServices, Agile Infrastructure, Conways Law, etc.

Pivotal Outlines four key points about cloud native:

  1. The container
  2. Micro service
  3. Continuous delivery
  4. DevOps

CNCF defines cloud native as:

  • Cloud native technologies enable organizations to build and run applications that can scale flexibly in new dynamic environments such as public, private and hybrid clouds. Cloud native technologies include containers, service grids, microservices, immutable infrastructure, and declarative apis.
  • These technologies enable the construction of loosely-coupled systems that are fault-tolerant, easy to manage, and easy to observe. Combined with reliable automation, cloud native technology enables engineers to easily make frequent and predictable significant changes to systems.
  • The Cloud Native Computing Foundation (CNCF) is dedicated to fostering and maintaining a vendor-neutral open source ecosystem to promote cloud native technologies. We make these innovations available to the masses by democratizing the most cutting-edge models.

Different companies, different people have different definitions of cloud native, and the same company has different definitions at different times. Moore’s Law predicts that the definition of cloud native will continue to change in the future. But one thing is certain — Pivotal is the forerunner of Cloud Native concepts and methodologies, and CNCF is the best practitioner of Cloud Native.

  • Pivotal is positioned as an end-to-end solution and digital transformation of PaaS layer. It has a set of models from culture, process, methodology, blueprint planning, software development mode, etc. Its main users are ciOs of traditional large and medium-sized enterprises, and the overall strategy is top-down.
  • CNCF is based on the whole cloud computing ecosystem and technological innovation and change, and focuses on technology, tool chain and underlying infrastructure. Its main users are developers in the open source community, Internet and emerging enterprises. Its influence can be imagined, and the overall strategy is bottom-up.

In short, cloud native builds a set of working applications on the cloud based on a set of methodologies (Pivotal) and technology architecture (CNCF). The application system will break the traditional construction mode, make full use of the original ability of “cloud”, give full play to the maximum value of “cloud”, make it have the original characteristics, quickly empower business.

The author believes that to understand CloudNative, we only need to break it down:

  • Cloud: Indicates that the application resides in the Cloud, rather than a traditional data center;
  • Native: Indicates that the application is designed for the cloud and takes full advantage of the flexibility and distributed advantages of the cloud platform.

As you can see, cloud native is actually a best path or best practice. More specifically, cloud native provides the best path for users to maximize the power and value of the cloud in a low mental load, agile, scalable and replicable manner.

Therefore, cloud native is really a set of ideas to guide software architecture design. Software is designed with this in mind: first, nature “lives and grows on the cloud”; Second, to maximize the power of the cloud, so that the software we develop and the cloud can naturally integrate together to maximize the value of the cloud.

So the greatest value and vision of cloud native is that the software of the future will grow on the cloud from its birth and follow a new model of software development, distribution, and operation to maximize the capabilities of the cloud.

At this point, why is container technology revolutionary?

In fact, container technology is very similar to the container technology revolution, namely, container technology enables applications to have a “self-contained” definition. As a result, such applications can be delivered to the cloud in an agile, scalable and replicable way to leverage the capabilities of the cloud. This is where container technology has revolutionized the cloud, so container technology is the core chassis of cloud native technology.

Cloud native vs. cloud computing

Cloud computing is indispensable to talk about cloud native.

  • The traditional three-tier architecture of cloud computing, namely, Infrastructure as a service (IaaS), platform as a service (PaaS), and software as a service (SaaS), has reshaped the shape of IT infrastructure, saving IT costs and improving business agility. Later, it expanded to “Serverless computing” (where users can run applications without buying or paying attention to infrastructure, pay for what they need, and scale up flexibly, an “extreme” form of PaaS evolution).
  • The cloud native based on cloud computing reshapes the application program, abandons the traditional software architecture, and redesigns it based on the characteristics of cloud in various stages and aspects such as architecture design, development mode, deployment and maintenance, so as to build a new cloud application, namely, cloud native application.

In short, cloud computing is for IT assets, while cloud native is for business forms.

Cost-effectiveness of cloud native