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
Bundles that include this book
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
The Leanpub 60 Day 100% Happiness Guarantee
Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.
You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!
So, there's no reason not to click the Add to Cart button, is there?
See full terms...
Earn $8 on a $10 Purchase, and $16 on a $20 Purchase
We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.
(Yes, some authors have already earned much more than that on Leanpub.)
In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.
Learn more about writing on Leanpub
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) and EPUB (for phones, tablets and 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