Continuous Delivery Using Docker And Ansible
Learn how to fast-track applications from development to production by automating various application tasks with Docker and Ansible. You'll learn how to create a continuous delivery workflow that delivers a sample Python Web application to AWS.
What you'll learn
Continuous delivery is fast becoming an indispensable practice for organizations that want to develop and deploy applications to production at speed with improved reliability.
This course, Continuous Delivery Using Docker and Ansible, will teach you how to create a robust, production-class continuous delivery workflow that will test, build, release, and continuously deploy your applications in Docker containers.
You'll learn how to create a portable workflow locally on your machine that you can invoke with a handful of simple commands, and then learn how to run your workflow in the popular Jenkins continuous delivery system using the new Jenkins pipeline plugin.
Along the way, you will learn how to:
- Compose multi-container environments using Docker Compose
- Publish test reports
- Set up integration with GitHub and Docker Hub
By the end of this course, you'll have a better understanding of continuous delivery and how you can use Docker and Ansible to develop and produce better applications more efficiently than ever.
Table of contents
- Introduction 4m
- Course Audience and Prerequisites 4m
- Course Tour 6m
- Continuous Delivery Overview 3m
- How to Achieve Continuous Delivery 3m
- Why Docker? 2m
- Continuous Delivery Architecture 4m
- Demo - Preparing Your Environment 3m
- Installing Docker 1m
- Installing Ansible 1m
- Installing Other Tools 2m
- Creating a Docker Virtual Machine 3m
- Summary 2m
- Introduction 2m
- Continuous Delivery Workflow 2m
- Docker Image Hierachy 4m
- Demo - Creating the Base Image 6m
- Establishing the Virtual Environment 6m
- Building the Base Image 2m
- Demo - Creating the Development Image 5m
- Creating Application Requirements Files 2m
- Development Image Review 2m
- Testing the Development Image 8m
- Demo - Creating a Docker Compose Environment 5m
- Running Tests using Docker Compose 4m
- Waiting for a Dependent Service to Initialize 4m
- Docker Compose Test Environment Review 1m
- Summary 1m
- Introduction 3m
- Serving the Application 6m
- Demo - Creating the Release Environment 4m
- Creating the Release Image 2m
- Describing the Release Image Part 1 2m
- Describing the Release Image Part 2 7m
- Testing the Release Image 4m
- Demo - Bootstrapping the Application 8m
- Bootstrapping the Application Review 1m
- Demo - Acceptance Testing 4m
- Running Acceptance Tests 2m
- Continuous Delivery Workflow Review 4m
- Summary 1m
- Introduction 2m
- Dangling Images and Volumes 5m
- Improving User Feedback 4m
- Self Containment 6m
- Ensuring Self Containment 5m
- Producing Test Reports 2m
- Handling Failures and Errors 8m
- Ensuring Consistency 8m
- Configuring Consistency 3m
- Tagging the Release Image 8m
- Publishing the Release Image 3m
- Docker Compose v2 Specification 9m
- Summary 2m
- Introduction 1m
- Demo - Setting up Jenkins Locally 7m
- Configuring the Workflow in Jenkins 4m
- Testing the Workflow 1m
- Creating a Self Defined Workflow 3m
- Test Failures 1m
- Publishing the Jenkins Image 1m
- Demo - Publishing Jenkins to AWS 4m
- Initial AWS Setup 3m
- AWS VPC Infrastructure 3m
- Creating a CloudFormation Template 2m
- Defining an EC2 Instance 6m
- Defining Security Groups and Roles 3m
- Defining Elastic Load Balancers 1m
- Configuring the EC2 Container Service 3m
- Configuring Stack Outputs 1m
- Creating the Stack 4m
- Demo - Integrating Jenkins with GitHub and Docker Hub 2m
- Testing the Workflow 2m
- Configuring GitHub Integration 4m
- Configuring Docker Hub Integration 2m
- Summary 2m
- Introduction 1m
- Demo - Creating the Application Stack 3m
- Configuring Autoscaling 4m
- Configuring the Relational Database Service 3m
- Configuring the Elastic Load Balancer and EC2 Container Service 6m
- Demo - Creating an Ansible Deployment Playbook 2m
- Deployment Walkthrough 3m
- Configuring Access to AWS 2m
- Creating the Playbook 3m
- Creating the Stack Task 4m
- Installing Custom Ansible Modules 4m
- Deploying the Application 5m
- Testing the Playbook 5m
- Demo - Continuously Deploying the Application using Jenkins 3m
- Creating the Jenkins Deployment Job 4m
- Continuously Deploying New Releases 4m
- Summary 2m
Course FAQ
Docker does many things, but one component of it is continuous integration and continuous delivery (CI/CD), which allows you to run tests and deploy code through automation and collaboration.
Continuous delivery is a critical practice for businesses to incorporate because it allows them to develop and deploy applications and software to production faster, and with improved reliability.
Docker is a container engine for creating containers and automating application deployment. Ansible can automate complex multi-tier IT application environments. It allows you to automate Docker in your environment for things that are otherwise being done manually.
Ultimately you will learn how to create a powerful and efficient continuous delivery workflow that will test, build, release, and continuously deploy your applications in Docker containers.
Before taking this course you should have a basic understanding of Docker and Ansible or some other configuration management tool. However, this course was designed so you can follow along regardless.