Unleash the combination of Docker and Jenkins in order to enhance the DevOps workflow
About This Book
- Build reliable and secure applications using Docker containers.
- Create a complete Continuous Delivery pipeline using Docker, Jenkins, and Ansible.
- Deliver your applications directly on the Docker Swarm cluster.
- Create more complex solutions using multi-containers and database migrations.
Who This Book Is For
This book is indented to provide a full overview of deep learning. From the beginner in deep learning and artificial intelligence to the data scientist who wants to become familiar with Theano and its supporting libraries, or have an extended understanding of deep neural nets.
Some basic skills in Python programming and computer science will help, as well as skills in elementary algebra and calculus.
What You Will Learn
- Get to grips with docker fundamentals and how to dockerize an application for the Continuous Delivery process
- Configure Jenkins and scale it using Docker-based agents
- Understand the principles and the technical aspects of a successful Continuous Delivery pipeline
- Create a complete Continuous Delivery process using modern tools: Docker, Jenkins, and Ansible
- Write acceptance tests using Cucumber and run them in the Docker ecosystem using Jenkins
- Create multi-container applications using Docker Compose
- Managing database changes inside the Continuous Delivery process and understand effective frameworks such as Cucumber and Flyweight
- Build clustering applications with Jenkins using Docker Swarm
- Publish a built Docker image to a Docker Registry and deploy cycles of Jenkins pipelines using community best practices
The combination of Docker and Jenkins improves your Continuous Delivery pipeline using fewer resources. It also helps you scale up your builds, automate tasks and speed up Jenkins performance with the benefits of Docker containerization.
This book will explain the advantages of combining Jenkins and Docker to improve the continuous integration and delivery process of app development. It will start with setting up a Docker server and configuring Jenkins on it. It will then provide steps to build applications on Docker files and integrate them with Jenkins using continuous delivery processes such as continuous integration, automated acceptance testing, and configuration management.
Moving on you will learn how to ensure quick application deployment with Docker containers along with scaling Jenkins using Docker Swarm. Next, you will get to know how to deploy applications using Docker images and testing them with Jenkins.
By the end of the book, you will be enhancing the DevOps workflow by integrating the functionalities of Docker and Jenkins.
Style and approach
The book is aimed at DevOps Engineers, developers and IT Operations who want to enhance the DevOps culture using Docker and Jenkins.
Table of contents
Introducing Continuous Delivery
- What is Continuous Delivery?
- The automated deployment pipeline
- Prerequisites to Continuous Delivery
Building the Continuous Delivery process
- Introducing tools
- Creating a complete Continuous Delivery system
- What is Docker?
- Docker installation
- Running Docker hello world>
- Docker applications
- Building images
- Docker container states
- Docker networking
- Using Docker volumes
- Using names in Docker
- Docker cleanup
- Docker commands overview
- What is Jenkins?
- Jenkins installation
- Jenkins hello world
- Jenkins architecture
- Communication protocols
- Permanent agents
- Permanent Docker agents
- Jenkins Swarm agents
- Dynamically provisioned Docker agents
- Understanding dynamically provisioned Docker agents
- Testing agents
- Custom Jenkins images
- Configuration and management
Continuous Integration Pipeline
- Introducing pipelines
- Unit test
- Code quality stages
- Triggers and notifications
- Team development strategies
Automated Acceptance Testing
- Introducing acceptance testing
- Docker registry
- Acceptance test in pipeline
- Docker Compose
Acceptance testing with Docker Compose
- Using a multi-container environment
- Method 1 – Jenkins-first acceptance testing
- Method 2 – Docker-first acceptance testing
- Comparing method 1 and method 2
- Writing acceptance tests
Configuration Management with Ansible
- Introducing configuration management
- Installing Ansible
- Using Ansible
- Deployment with Ansible
- Ansible with Docker
Continuous Delivery Pipeline
- Environments and infrastructure
- Nonfunctional testing
- Application versioning
- Complete Continuous Delivery pipeline
Clustering with Docker Swarm
- Server clustering
- Docker Swarm in practice
- Advanced Docker Swarm
- Docker Compose with Docker Swarm
- Alternative cluster management systems
- Scaling Jenkins
Advanced Continuous Delivery
Managing database changes
- Understanding schema updates
- Changing database in Continuous Delivery
- Avoiding shared database
- Preparing test data
- Pipeline patterns
- Release patterns
- Working with legacy systems
- Practice 1 – own process within the team!
- Practice 2 – automate everything!
- Practice 3 – version everything!
- Practice 4 – use business language for acceptance tests!
- Practice 5 – be ready to roll back!
- Practice 6 – don't underestimate the impact of people
- Practice 7 – build in traceability!
- Practice 8 – integrate often!
- Practice 9 – build binaries only once!
- Practice 10 – release often!
- Managing database changes
- Title: Continuous Delivery with Docker and Jenkins
- Release date: August 2017
- Publisher(s): Packt Publishing
- ISBN: 9781787125230
You might also like
Learn Docker - Fundamentals of Docker 18.x
Enhance your software deployment workflow using containers About This Book Get up-and-running with basic to advanced …
40 Algorithms Every Programmer Should Know
Learn algorithms for solving classic computer science problems with this concise guide covering everything from fundamental …
Learning Continuous Integration with Jenkins - Second Edition
Speed up the software delivery process and software productivity using the latest features of Jenkins About …
Learn Docker - Fundamentals of Docker 19.x - Second Edition
Explore the core functionality of containerizing your applications and making them production-ready Key Features Grasp basic …