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)

Preface

Note

About

This section briefly introduces the author, the coverage of this book, the technical skills you'll need to get started, and the hardware and software required to complete all of the included activities and exercises.

About the Book

When several developers work on the same code and do not merge their changes, the end result is a sure disaster. Cloud-native software development is a powerful tool to avoid this occurrence. However, cloud-native software development requires new ways of building and delivering applications. Specifically, operating in a continuous integration (CI) and continuous delivery (CD) environment is essential.

This book teaches you the skills you need to create a CI and CD environment for your applications, and deploy them using tools such as Kubernetes and Docker. By the end of this book, you’ll be able to design professional and enterprise-ready CI/CD pipelines.

About the Author

Onur Yilmaz is a software engineer at a multinational enterprise software company. He is a Certified Kubernetes Administrator (CKA) and works on Kubernetes and cloud management systems. He is a keen supporter of cutting-edge technologies including Docker, Kubernetes, and cloud-native applications.

Objectives

  • Learn the basics of DevOps patterns for cloud-native architectures

  • Learn the cloud-native way of designing CI/CD systems

  • Create multi-stage builds and tests for Docker

  • Apply the best practices for Docker container images

  • Build and test applications on the cloud

  • Learn how to continuously deliver to the Docker registry

  • Learn how to continuously deploy to Kubernetes

  • Configure and deploy software to Kubernetes using Helm

Audience

This book is ideal for professionals who are interested in cloud-native software development. To benefit the most from this book, you should be familiar with developing, building, testing, integrating, and deploying containerized microservices on cloud systems. Basic proficiency in Git, Go, and Docker is required.

Approach

This book delivers its content through hands-on exercises. Throughout the book, you will learn about the required toolset by using on-premise, open source, and hosted cloud solutions. You'll find checklists, best practices, and critical points mentioned throughout the chapters, making things more interesting.

Hardware Requirements

For an optimal student experience, we recommend the following hardware configuration:

  • Processor: Intel Core i5 or equivalent

  • Memory: 4 GB of RAM or higher

Software Requirements

You'll also need the following software installed in advance:

  • Sublime Text (latest version), Atom IDE (latest version), or another similar text editor application

  • Docker

  • Git

Installation and Setup

Before you start this book, we'll install Docker and Git, which are the tools used throughout this book. You will find the steps to install them here:

Installing Docker

Run the following commands on your system to install Docker.

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

Installing Git

Please follow the steps for your operating system to install Git: https://docs.gitlab.com/ee/topics/git/how_to_install_git/.

Installing the Code Bundle

Copy the code bundle for the class to the C:/Code folder.

Conventions

Code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles are shown as follows: "Create a build-push stage using the docker build and push commands using the $CI_COMMIT_SHA as commit-ID."

A block of code is set as follows:

FROM golang:1.11.2-alpine3.8 as builder
ADD . /go/src/gitlab.com/onuryilmaz/book-server-cd
WORKDIR /go/src/gitlab.com/onuryilmaz/book-server-cd/cmd
ARG VERSION
RUN go build -ldflags "-X main.version=$VERSION" -o book-server
FROM alpine:3.8 as production

New terms and important words are shown in bold. Words that you see on the screen, for example, in menus or dialog boxes, appear in the text like this: "Open the GitLab interface and click the CI/CD tab and then click the Run Pipeline tab."

Additional Resources

The pipeline examples used in this book are hosted on GitLab at:

  • https://gitlab.com/TrainingByPackt/blog-pipeline-example

  • https://gitlab.com/TrainingByPackt/book-server

  • https://gitlab.com/TrainingByPackt/book-server-cd

Additionally, the code bundle for this book is hosted on GitHub at https://github.com/TrainingByPackt/Cloud-Native-Continuous-Integration-and-Delivery.

We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!