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.
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.
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.
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
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.
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.
For an optimal student experience, we recommend the following hardware configuration:
Processor: Intel Core i5 or equivalent
Memory: 4 GB of RAM or higher
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
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/.
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."
The pipeline examples used in this book are hosted on GitLab at:
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!