Continuous Delivery for Java Apps: Kubernetes and Jenkins in Practice
Continuous Delivery for Java Apps: Kubernetes and Jenkins in Practice
$19.99
Minimum price
$29.99
Suggested price
Continuous Delivery for Java Apps: Kubernetes and Jenkins in Practice

This book is 100% complete

Completed on 2018-07-06

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

About the Author

Jorge Acetozi
Jorge Acetozi

Jorge Acetozi is a senior software engineer and technical writer who spends almost his whole day having fun with things such as AWS, Kubernetes, Docker, Terraform, Ansible, Cassandra, Redis, Elasticsearch, Graylog, Sensu, Fluentd, RabbitMQ, Kafka, Java, Python, Spring, and much more! He loves deploying applications in production while thousands of users are online, monitoring the infrastructure, and acting quickly when monitoring tools decide to challenge his heart's health! Check out my newest articles:

Bundles that include this book

Continuous Delivery for Java Apps: Kubernetes and Jenkins in Practice
Graylog
2 Books
$39.98
Suggested Price
$21.99
Bundle Price

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
    • Most Used Docker Commands
      • Images
      • Containers
      • Misc
    • Building Docker Images
      • Dockerfile
        • FROM
        • ENV
        • RUN
        • WORKDIR
        • COPY
        • ADD
        • EXPOSE
        • ENTRYPOINT
        • VOLUME
        • USER
  • 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
      • 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
      • Deployments
      • Readiness Probes
      • Liveness Probes
      • Canary Release
    • Kubernetes Architecture
      • Kubernetes Master Components
        • Etcd
        • API Server
        • Controller Manager
        • Scheduler
    • Kubernetes Node Components
      • Service Proxy
      • Kubelet
        • cAdvisor
    • Kubernetes Add-ons
      • Web UI (Dashboard)
        • Monitoring Kubernetes with Heapster, InfluxDB and Grafana
        • Web UI Overview
      • DNS
  • 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
  • Appendices
    • Notepad application.yml
    • Notepad pom.xml

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...

Write and Publish on Leanpub

Authors, publishers and universities use Leanpub to publish amazing in-progress and completed books and courses, just like this one. You can use Leanpub to write, publish and sell your book or course as well! Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks. Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. It really is that easy.

Learn more about writing on Leanpub