Table of Contents
Continuous Delivery for Java Apps - Build a CD Pipeline Step by Step Using Kubernetes, Docker, Vagrant, Jenkins, Spring, Maven and Artifactory by Jorge Acetozi
Book Summary
This book will guide you through the implementation of the real-world Continuous Delivery using top-notch technologies. 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 app to testing, staging and production environments implementing the Canary Release deployment pattern.
This book is for sale at https://leanpub.com/continuous-delivery-for-java-apps
This version was published on 2018-02-07
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:
INTRODUCTION Agile Scrum Scrum and Continuous Integration Deployed vs Released Scrum and Continuous Delivery XP 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 Automated Tests Unit Tests Integration Tests
Acceptance Tests Page Object Distributed Acceptance Tests with Selenium-Grid Smoke Tests Performance Tests with Gatling.ioApache Maven Maven Snapshot vs Release The Default Lifecycle and its Phases Maven Repositories Repository Manager (Artifactory) 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 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 VariablesDocker Networking
Create a Bridge Network Container Static IP Address Linking Containers Most Used Docker Commands Images Containers Misc Building Docker Images: 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 ContainerScaling 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 ReleaseKubernetes 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
APPENDICES
Product Details
- Publication date: December 14, 2017
- Paperback: 586 pages
Research It More
Fair Use Sources
© 1994 - 2024 Cloud Monk Losang Jinpa or Fair Use. Disclaimers
SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.