Continuous Delivery for Java Apps: Kubernetes and Jenkins in Practice
Continuous Delivery for Java Apps: Kubernetes and Jenkins in Practice
Build a CD Pipeline Step by Step Using Kubernetes, Docker, Vagrant, Jenkins, Spring, Maven and Artifactory
About the Book
Dear Reader,
Before getting this book, please click on Read Free Sample to download 110 pages for free; this should give you an idea whether you like the book's style, structure, and contents or not. Please let me know (https://www.jorgeacetozi.com/about) if you have any trouble throughout your Continuous Delivery journey! Thank you very much!
This book will guide you through the implementation of the real-world Continuous Delivery using top-notch technologies that are in high demand by the best companies around the world. Instead of finishing this book thinking "I know what Continuous Delivery is, but I have no idea how to implement it", you will end up with your machine set up with a Kubernetes cluster running Jenkins Pipelines in a distributed and scalable fashion (each Pipeline run on a new Jenkins slave dynamically allocated as a Kubernetes pod) to test (unit, integration, acceptance, performance and smoke tests), build (with Maven), release (to Artifactory), distribute (to Docker Hub) and deploy (on Kubernetes) a Spring Boot application to testing, staging and production environments implementing the Canary Release deployment pattern to mitigate risks.
This book is intended for Java Developers, SysAdmins or anyone interested in learning how to build a continuous delivery pipeline step by step using Kubernetes, Docker, Vagrant, Jenkins, Spring, Maven and Artifactory.
If you are a Java Developer, it's not required that you have prior knowledge with Kubernetes, Docker, Vagrant, Jenkins, etc. If you are a SysAdmin, it's not required that you know about Java, Spring, Maven, and so on. Although this is a hands-on book, all the theory needed to build the CD pipeline is provided step by step throughout the book.
I have worked as a Java Developer for many years and now I'm particularly interested in subjects such as these:
- Agile
- DevOps / Continuous Delivery
- NoSQL Databases (Cassandra, Redis, etc)
- Cloud Computing
- Containers
- Distributed Systems
- Linux / Infrastructure / Security
This is the book I wish I had found when I was learning how to implement Continuous Delivery in practice; that's why I wrote it. It will bring to you years of experience implementing Continuous Delivery in many different Java projects.
It's also worth to mention that this book is a forever edition, which means that no matter how fast the technologies used here evolve, this book will be always kept up to date and of course you will get notified and will pay nothing to take advantage of the updates.
I hope you buy this book and have a very pleasant reading. Thank you very much!
Subscribe to my website for news and updates: https://www.jorgeacetozi.com
Table of Contents
-
- Why You Should Read This Book
- About the Author
-
Introduction
- Agile
-
Scrum
- Scrum and Continuous Integration
- Deployed vs Released
- Scrum and Continuous Delivery
-
Extreme Programming and Continuous Delivery
- Automated Tests
- Continuous Integration
- Feature Branch
- Continuous Delivery
- Continuous Delivery Pipeline
- Continuous Delivery vs Continuous Deployment
- Canary Release
- A/B Tests
- Feature Flags
-
Notepad App: Automated Tests, Maven and Flyway
- Pre-Requisites
-
The Notepad Application
- The Note Model
- The Note Controller
-
Unit Tests
- NoteTest.java
-
Integration Tests
- NoteServiceTest.java
- NoteControllerTest.java
-
Acceptance Tests
- Page Object: NewNotePage.java
- CreateNoteTest.java
-
AcceptanceTestsConfiguration.java
- Distributed Acceptance Tests with Selenium-Grid
- Smoke Tests
-
Performance Tests
- Gatling
- HomeSimulation.scala
-
Apache Maven
- Maven Snapshot vs Release
- The Default Lifecycle and its Phases
- Maven Repositories
- Repository Manager
- Maven Plugins: Surefire and Failsafe
- Maven Profile
- Running Unit Tests
- Running Integration Tests
- Running Acceptance Tests
- Running Smoke Tests
- Running Performance Tests
-
Publish Artifacts to Artifactory with Maven
- Publish a Snapshot to Artifactory
- Publish a Release to Artifactory
- The release:prepare Goal
- The release:perform Goal
- Flyway
-
Docker
- Introduction to Docker
- Difference Between Container and Image
-
Docker Hub
- Create your Account
- Official Docker Repositories
- Image Tags
- Pulling Images From a Different Docker Registry
- Non-Official Docker Images
- Create a Repository, an Image and Push it to Docker Hub
-
Running Containers on Docker
- Running Containers as Daemons
- Container Clean Up
- Naming Containers
- Exposing Ports
- Persistent Data with Volumes
- Environment Variables
-
Docker Networking
-
Create a Bridge Network
- Container Static IP Address
- Linking Containers
-
Create a Bridge Network
-
Most Used Docker Commands
- Images
- Containers
- Misc
-
Building Docker Images
-
Dockerfile
- FROM
- ENV
- RUN
- WORKDIR
- COPY
- ADD
- EXPOSE
- ENTRYPOINT
- VOLUME
- USER
-
Dockerfile
-
Jenkins: Pipeline as Code and ChatOps
- Jenkins Overview
-
Jenkins Concepts
- Job (or Project)
- Build
- Artifact
- Workspace
- Executor
- Plugin
- Node, Master, and Agent (or Slave)
-
ChatOps
- Create a Slack Workspace
-
Integrate Slack with Jenkins
- Slack Notification Plugin
- Use Hubot to Interact with Jenkins
-
Jenkins Pipeline
- Declarative Pipeline vs Scripted Pipeline
- Scripted Pipeline
- Using Docker with Jenkins Pipelines
- Running Docker from Within the Jenkins Container
- Scaling Jenkins with Slaves
-
Kubernetes
- Why Kubernetes?
- Set up a Kubernetes Cluster using Vagrant
- Hands-on Introduction to Kubernetes
-
Kubernetes Concepts
- Namespaces
- Pods
- Labels
- Replica Sets
-
Services
-
Service Discovery using DNS
- Service Discovery using Namespaces
-
Service Discovery using DNS
- Volumes
-
Handling External Configurations
-
Config Maps
- Changing Logback Log Level at Runtime
-
Secrets
- Using Secrets as Environment Variables
- Using Secrets as Files from a Pod
-
Config Maps
- Deployments
- Readiness Probes
- Liveness Probes
- Canary Release
-
Kubernetes Architecture
-
Kubernetes Master Components
- Etcd
- API Server
- Controller Manager
- Scheduler
-
Kubernetes Master Components
-
Kubernetes Node Components
- Service Proxy
-
Kubelet
- cAdvisor
-
Kubernetes Add-ons
-
Web UI (Dashboard)
- Monitoring Kubernetes with Heapster, InfluxDB and Grafana
- Web UI Overview
- DNS
-
Web UI (Dashboard)
-
Hands-on Project: Continuous Delivery Pipeline
-
Configuration
- Kubernetes Cluster
- GitHub Repositories
- Docker Hub
- Artifactory
- MySQL
- Logback
-
Jenkins
- Kubernetes Plugin
- Pipeline Project: notepad-testing
- Pipeline Project: notepad-acceptance-test
- Pipeline Project: notepad-continuous-integration
- Pipeline Project: notepad-release
- Pipeline Project: notepad-staging
- Pipeline Project: notepad-performance-test
- Pipeline Project: notepad-production
- Pipeline Project: notepad-canary
- Pipeline Project: notepad-canary-scale-replicas
-
Usage
- New User Story Development Flow
- Preparation: Deploying Version 1.0.0
- Creating the Pull Request
- Testing Branch add-note-subtitle
- Generating Release Version 1.1.0
- Deploying Release Version 1.1.0 to Staging
- Deploying Release Version 1.1.0 to Production using Canary Release
-
Code
-
Testing Branch add-note-subtitle
- notepad-testing
- notepad-acceptance-test
-
Generating Release Version 1.1.0
- notepad-continuous-integration
- notepad-release
-
Deploying Release Version 1.1.0 to Staging
- notepad-staging
- notepad-performance-test
-
Deploying Release Version 1.1.0 to Production using Canary Release
- notepad-canary
-
notepad-canary-scale-replicas
- notepad-production
-
Testing Branch add-note-subtitle
-
Configuration
-
Appendices
- Notepad application.yml
- Notepad pom.xml
Other books by this author
Authors have earned$10,071,608writing, publishing and selling on Leanpub, earning 80% royalties while saving up to 25 million pounds of CO2 and up to 46,000 trees.
Learn more about writing on Leanpub
The Leanpub 45-day 100% Happiness Guarantee
Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
See full terms
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers), EPUB (for phones and tablets) and MOBI (for Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.
Learn more about Leanpub's ebook formats and where to read them
Top Books
C++ Best Practices
Jason TurnerLevel up your C++, get the tools working for you, eliminate common problems, and move on to more exciting things!
Digital-First Events
Joep Piscaer and Jana BorutaThe only resource you will ever need to launch your digital events program.
node-opcua by example
Etienne RossignonGet the best out of node-opcua through a set of documented examples by the author himself that will allow you to create stunning OPCUA Servers or Clients.
Cloud Strategy
Gregor Hohpe“Strategy is the difference between making a wish and making it come true.” A successful migration to the cloud can transform your organization, but it shouldn’t be driven by wishes. This book tells you how to develop a sound strategy guided by frameworks and decision models without being overly abstract nor getting lost in product details.
R Programming for Data Science
Roger D. PengThis book brings the fundamentals of R programming to you, using the same material developed as part of the industry-leading Johns Hopkins Data Science Specialization. The skills taught in this book will lay the foundation for you to begin your journey learning data science. Printed copies of this book are available through Lulu.
C++20
Rainer GrimmC++20 is the next big C++ standard after C++11. As C++11 did it, C++20 changes the way we program modern C++. This change is, in particular, due to the big four of C++20: ranges, coroutines, concepts, and modules.
The book is almost daily updated. These incremental updates ease my interaction with the proofreaders.
Sockets and Pipes
Type ClassesSockets and Pipes is not an introduction to Haskell; it is an introduction to writing software in Haskell. Using a handful of everyday Haskell libraries, this book walks through reading the HTTP specification and implementing it to create a web server.
Atomic Kotlin
Bruce Eckel and Svetlana IsakovaFor both beginning and experienced programmers! From the author of the multi-award-winning Thinking in C++ and Thinking in Java together with a member of the Kotlin language team comes a book that breaks the concepts into small, easy-to-digest "atoms," along with exercises supported by hints and solutions directly inside IntelliJ IDEA!
Ansible for DevOps
Jeff GeerlingAnsible is a simple, but powerful, server and configuration management tool. Learn to use Ansible effectively, whether you manage one server—or thousands.
Introducing EventStorming
Alberto BrandoliniThe deepest tutorial and explanation about EventStorming, straight from the inventor.
Top Bundles
- #1
Software Architecture for Developers: Volumes 1 & 2 - Technical leadership and communication
2 Books
"Software Architecture for Developers" is a practical and pragmatic guide to modern, lightweight software architecture, specifically aimed at developers. You'll learn:The essence of software architecture.Why the software architecture role should include coding, coaching and collaboration.The things that you really need to think about before... - #2
Django for Beginners/APIs/Professionals
3 Books
- #3
CCIE Service Provider Ultimate Study Bundle
2 Books
Piotr Jablonski, Lukasz Bromirski, and Nick Russo have joined forces to deliver the only CCIE Service Provider training resource you'll ever need. This bundle contains a detailed and challenging collection of workbook labs, plus an extensively detailed technical reference guide. All of us have earned the CCIE Service Provider certification... - #4
Cisco CCNA 200-301 Complet
4 Books
Ce lot comprend les quatre volumes du guide préparation à l'examen de certification Cisco CCNA 200-301. - #5
Modern Management Made Easy
3 Books
Read all three Modern Management Made Easy books. Learn to manage yourself, lead and serve others, and lead the organization. - #6
Linux Administration Complet
4 Books
Ce lot comprend les quatre volumes du Guide Linux Administration :Linux Administration, Volume 1, Administration fondamentale : Guide pratique de préparation aux examens de certification LPIC 1, Linux Essentials, RHCSA et LFCS. Administration fondamentale. Introduction à Linux. Le Shell. Traitement du texte. Arborescence de fichiers. Sécurité... - #7
CCDE Practical Studies (All labs)
3 Books
CCDE lab - #8
All the Books of The Medical Futurist
6 Books
We put together the most popular books from The Medical Futurist to provide a clear picture about the major trends shaping the future of medicine and healthcare. Digital health technologies, artificial intelligence, the future of 20 medical specialties, big pharma, data privacy, digital health investments and how technology giants such as Amazon... - #9
Cloud Architect: Transform Technology and Organization
2 Books
Architects don't just recite product names and features. They understand the options, decisions, and trade-offs behind them. They earn credibility and maintain authenticity by connecting the penthouse with the engine room. Get two essential books that redefine the role of the software and IT architect at one low price:37 Things One Architect... - #10
Mastering Containers
2 Books
Docker and Kubernetes are taking the world by storm! These books will get you up-to-speed fast! Docker Deep Dive is over 400 pages long, and covers all objectives on the Docker Certified Associate exam.The Kubernetes Book includes everything you need to get up and running with Kubernetes!