continuous_delivery_for_java_apps_-_build_a_cd_pipeline_step_by_step_using_kubernetes_docker_vagrant_jenkins_spring_maven_and_artifactory_by_jorge_acetozi

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.io
Apache 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 Variables
Docker 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 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

APPENDICES

Product Details

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.


continuous_delivery_for_java_apps_-_build_a_cd_pipeline_step_by_step_using_kubernetes_docker_vagrant_jenkins_spring_maven_and_artifactory_by_jorge_acetozi.txt · Last modified: 2024/04/28 03:36 (external edit)