2018-10-08-what-is-cloud-native.html.md.erb 5.1 KB
Newer Older
1 2
title: "What is cloud native?"
3 4 5
author: Aricka Flowers
author_gitlab: atflowers
author_twitter: arickaflowers
Rebecca Dodd's avatar
Rebecca Dodd committed
categories: insights
image_title: '/images/blogimages/daytime-clouds.jpg'
description: "If you’re a little fuzzy on what makes an application cloud native, this explainer will help you get up to speed."
Rebecca Dodd's avatar
Rebecca Dodd committed
tags: cloud native, kubernetes
ee_cta: true
11 12
just_commit_button_text: 'Join us for a <strong>GitLab + Cloud Native</strong> webcast!'
just_commit_button_link: '/webcast/cloud-native-transformation/'
twitter_text: "Not exactly sure what makes an app cloud native? @gitlab can help you get up to speed"
postType: content marketing
15 16

Rebecca Dodd's avatar
Rebecca Dodd committed
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](https://www.canalys.com/newsroom/cloud-infrastructure-spend-reaches-us%2420-billion-in-q2-2018-with-hybrid-it-approach-dominant) 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.
18 19 20

[CNCF](https://www.cncf.io/), an open source software organization focused on promoting the cloud-based app building and deployment approach, [defines it](https://github.com/cncf/toc/blob/master/DEFINITION.md) as the following:

Rebecca Dodd's avatar
Rebecca Dodd committed
>Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds.
22 23 24
>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.

Rebecca Dodd's avatar
Rebecca Dodd committed
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.

Rebecca Dodd's avatar
Rebecca Dodd committed
27 28 29 30 31 32 33
## There are three main building blocks of cloud native architecture

### Containers

[Containers](/2017/11/30/containers-kubernetes-basics/) 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
34 35 36

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](/2018/08/02/top-five-cloud-trends/).

Rebecca Dodd's avatar
Rebecca Dodd committed
37 38
### Microservices

39 40
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.

Rebecca Dodd's avatar
Rebecca Dodd committed
41 42 43
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

Rebecca Dodd's avatar
Rebecca Dodd committed
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](https://docs.gitlab.com/ee/user/project/container_registry.html) and [Kubernetes integrations](https://docs.gitlab.com/ee/user/project/clusters/index.html) 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](/company/team/#thewilliamchia):
50 51 52

<!-- blank line -->
<figure class="video_container">
Rebecca Dodd's avatar
Rebecca Dodd committed
  <iframe src="https://www.youtube.com/embed/jc5cY3LoOOI?start=90" frameborder="0" allowfullscreen="true"> </iframe>
54 55 56 57 58
<!-- blank line -->

Cover photo by [Sam Schooler](https://unsplash.com/photos/E9aetBe2w40) on [Unsplash](https://unsplash.com/)
{: .note}