Book Image

Cloud-Native Continuous Integration and Delivery

By : Onur Yılmaz
Book Image

Cloud-Native Continuous Integration and Delivery

By: Onur Yılmaz

Overview of this book

<p>Cloud-native software development is based on developing distributed applications focusing on speed, stability, and high availability. With this paradigm shift, software development has changed substantially and converted into a more agile environment where distributed teams develop distributed applications. In addition, the environment where the software is built, tested and deployed has changed from bare-metal servers to cloud systems. In this course, the new concepts of cloud-native Continuous Integration and Delivery are discussed in depth. Cloud-native tooling and services such as cloud providers (AWS, Google Cloud) containerization with Docker, container-orchestrators such as Kubernetes will be a part of this course to teach how to analyze and design modern software delivery pipelines.</p>
Table of Contents (6 chapters)

Continuous Delivery of Containers


Cloud-native continuous delivery focuses on releasing microservices to customers, packaged as lightweight containers. In this chapter, first, the best practices for versioning containers are explained. Following that, the options to deliver containers are discussed. These two main stages ensure that the output of the continuous integration is labeled and versioned in an appropriate way and made available for customers.

Versioning Container Images

The lightweight containers of microservices are designed to be portable so that they can run on any server in the data center in a fast way. Container orchestrator systems such as Kubernetes or Docker Swarm require a container image name and tag to start microservices. As expected, the name is static and does not change, whereas a tag is used for versioning of the container images. For instance, we can run an ubuntu instance by using ubuntu:16.04 or ubuntu:18.04 based on our requirements for the ubuntu version. There...