Oct 8, 2018 - Aricka Flowers    

What is cloud native?

If you’re a little fuzzy on what makes an application cloud native, this explainer will help you get up to speed.

Learn more about GitLab + Cloud Native!

The term cloud native has been bandied about in the tech world a lot over the last few years, but it's still often misunderstood. Although it's an important part, simply being run in the cloud does not make an application cloud native; it must also be built in the cloud. One of the first and currently largest cloud computing providers, Amazon Web Services paved the way for cloud native app development, a now more than $20 billion market as of this year. With its growing popularity, organizations like the Cloud Native Computing Foundation (CNCF) have sprouted to help foster the growth of cloud native app development.

CNCF, an open source software organization focused on promoting the cloud-based app building and deployment approach, defines it as the following:

Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds.

Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach. These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.

To break it down even further: For an application to be cloud native, it must be built and run in the cloud. This requires multiple tools that allow app developers to make use of the architectural advantages of cloud infrastructure.

There are three main building blocks of cloud native architecture

Containers

Containers replace physical servers and hold a cloud native application’s libraries and processes. They run inside of a virtual machine on a server and share one operating system. Containers are lightweight, so fewer servers are needed to build and deploy applications.

Orchestrators

Once the containers are set, an orchestrator is needed to get them running. Container orchestrators direct how and where containers run, fix any that go down and determine if more are needed. When it comes to container orchestrators, also known as schedulers, Kubernetes is the clear cut market winner.

Microservices

The last main component of cloud native computing is microservices. In order to make apps run more smoothly, they can be broken down into smaller parts, or microservices, to make them easier to scale based on load. Microservices infrastructure also makes it easier – and faster – for engineers to develop an app. Smaller teams can be formed and assigned to take ownership of individual components of the app’s development, allowing engineers to code without potentially impacting another part of the project.

While public cloud services like AWS offer the opportunity to build and deploy applications easily, there are times when it makes sense to build your own infrastructure. A private or hybrid cloud solution is generally needed when sensitive data is processed within an application or industry regulations call for increased controls and security.

How to streamline cloud native development

As you can see, cloud native app development requires the incorporation of several tools for a successful deployment. It begs for a DevOps approach to efficiently streamline the multiple elements needed to get an app up and running in the cloud. This is where GitLab comes in.

We're aiming to make GitLab the best place to build cloud native apps. With built-in registry and Kubernetes integrations we're always working to offer new ways to simplify toolchains and speed up cycle times, making it easier to transition to a cloud native environment.

For a deeper dive into cloud native, check out our training video by GitLab Product Marketing Manager William Chia:

Cover photo by Sam Schooler on Unsplash

Install GitLab in 2 minutes

With Ubuntu, Debian, CentOS, openSUSE, and Raspbian packages or from source

Install GitLab Now

Try GitLab Ultimate risk-free for 30 days.

No credit card required. Have questions? Contact us.