Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Docker over AWS with ECS. Implementing IaaS, CI and CD
Rating: 3.6 out of 5(126 ratings)
917 students

Docker over AWS with ECS. Implementing IaaS, CI and CD

Develop High availability architecture apps for million users. Using Docker, Cloudformation, CodePipeline, ECS Cluster
Created byAlberto Eduardo
Last updated 6/2017
English
English [Auto],

What you'll learn

  • Students will be able to learn to setup a Infrastructure as a Code Architecture using Amazon Cloudformation
  • Students will be able to learn to setup, use and monitor an automated Software Pipeline with Codepipeline
  • Students will be able to learn how to setup use and monitor an ECS Cluster with Docker all over the place
  • Students will be able to setup a Elastic Load Balancer version 2 (Application Load Balancer) with high security and redundancy
  • Students will be able to learn how to implement and monitor a scalable and high available architecture based on Docker
  • Students will be able to learn to setup and monitor an Aurora Database Cluster with Primary server and replicas
  • Students will be able to learn to setup and use and CodeCommit and Container repository in AWS
  • Students will be able to learn how to implement Build and Deploy to production stage in an Automated Pipeline using CodeBuild and CodeDeploy in a Codepipeline pipeline defined in a Cloudformation template

Course content

6 sections22 lectures2h 33m total length
  • Introduction to the Course1:27

    Introduction to the Course

    Master AWS CI & CD. Scalable Architecture & Automated Pipeline. Using Cloudformation, CodeCommit, CodePipeline, EC2 Container Service (ECS) over Docker, CodeDeploy, CodeBuild, ECR and more.

    Transcript

    Hello everybody and welcome to the Course:

    Master AWS CI & CD. Scalable Architecture & Automated Pipeline.

    My name is Alberto Eduardo and I’m currently the CTO of Elab Innovation a Boston based Startup dedicated to the first non-profit social sharing platform.

    The idea of this course is to master a really cool way to implement a scalable and highly available base architecture supported by an automated development pipeline.

    During the course we are going to be using all this AWS services:

    - Cloudformation,

    - CodeCommit,

    - CodePipeline,

    - EC2 Container Service (ECS) over Docker,

    - CodeDeploy and

    - CodeBuild between other Amazon web services like...

    This course is totally practical: You will code some shell scripts, build Cloudformation templates from scratch, create and edit Dockerfiles, monitor containers execution over ECS and many more.

    All the files used are available in my github account github.com/elpasticho and I hope you enjoy and learn a lot from this course.

    Thanks

  • What you should Know?1:18

    What You Should Know

    In our first lecture we talk about the AWS services we are going to be using in this course: Cloudformation, EC2 Container Service, EC2 Container Respository, Codebuild & VPC between others. In this lecture we are going to see what prior knowledge you should have in order to get the best from this course.

    Transcript.

    In our first lecture we talk about the AWS services we are going to be using in this course: Cloudformation, EC2 Container Service, EC2 Container Respository, Codebuild & VPC between others. In this lecture we are going to see what prior knowledge you should have in order to get the best from this course.

    Lets check this list

    - Network & Basic Cloud security: In this point will be nice to know whats an Elastic Load Balancer, whats a Security Group, and Whats a EC2 Cluster.

    - At least Basic AWS Knowledge or some interaction experience with theAmazon Web Services Console will be excellent for this course because we are going to be using the AWS conle.

    - Basic git version control system knowledge

    - Some exposure to a Relational Database engine, for example: MySQL, PostgreSQL, etc

    - For this course you are going to need at least a free AWS account.

  • Basic Concepts and some Technologies involved2:27

    Basic Concepts and some technologies involved.

    This Lecture explore and explain all the basic concepts and technologies involved in the course. Benefits and more.

    Transcript.

    Whats AWS?

    - AWS or Amazon Web Service have been around since 2006 and offers a reliable, scalable, and inexpensive cloud computing services. Free to join for the first year and payable on demand service. There is a huge clients list or how aws call it, “study case”: Netflix, Kellogs, GE, Adobe, Coinbase and many more.

    Whats CI & CD? & Why?
    - Continuous integration (CI) is the practice of merging all developer working copies to a shared mainline several times a day.
    - Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time.

    Benefits of using CI & CD.
    - Errors introduced can be detected and fixed earlier
    - Developers tend to be more cautious whenever they push their code to the repository
    - When developers are more cautious, they tend to commit more often and in smaller units
    - When you commit in smaller units, you're able to revert modifications more easily
    The errors are detected earlier and the errors can be fixed earlier
    - Developer confidence levels tend to grow during development: "If it didn't fail, it's ok"

    Lets talk about Whats Docker?
    Docker containers wrap up a piece of software in a complete filesystem that contains
    everything to run code Using containers everything required to make a piece of software runs, its packaged into isolated containers.
    Unlike Virtual Machines, Containers do not bundle a full operating system Only libraries
    and settings required to make the software works are needed.
    Its make for an efficient and lightweight self contained systems and guarantees that software will always run the same regardless of where its deployed.

  • Course Structure1:19

    Course Structure.

    Get to know how is this course organized.

    Transcript.

    This course is divided in 2 main parts, the first part explores an scalable and highly available architecture based on EC2 container services cluster with Docker, Application Load Balancer, VPC, Aurora DB Cluster, all generated in Cloudformation Templates in Yaml format.

    The second part deeps dive into a CodePipeline template, implementing CI/CD to be able to automate the deploy to the Architecture explained in the first part of the course.

    This pipeline model is composed with 3 stages: Source provided by CodeCommit, In the Build stage we are gonna be using CodeBuild & CodeBuildspec and in our last stage we are going to be able to deploy everything to our production architecture.

    This Pipeline will be also cloduformation template in a yaml format.

  • Architecture Overview: ELB, AZs, VPC, S3, Autoscaling ECS Cluster & RDS Cluster1:53

    Architecture Overview.

    Before going into the code, lets talk a little about  our Architecture. This base architecture is applicable to a wide variety of different scenarios where you expect to have a highly available system over a scalable platform, of course,  with docker all over the production environment.

    Transcript.

    Before going into the code, lets talk a little about  our Architecture. This base architecture is applicable to a wide variety of different scenarios where you expect to have a highly available system over a scalable platform, of course,  with docker all over the production environment.

    - At the top of this architecture we will have a couple of AWS service: Route53 for domain/host zone... and Cloudfront for the static caching....

    - Then we have a S3 Bucket to keep all our static files (images, videos, js, htmls)

    - Next we have our compute layer, composed by an ECS cluster with Docker images running inside a VPC and Multiple Avazilability Zones. We also include autoscaling configuration for the EC2 instance inside the cluster.

    - For our database will be using an Aurora Cluster, with a master and a replication server, also configured in a cross AZ replication environment.

    All this base architecture will be generated with a nested Cloudformation template, ideally we are going to be able to use this template to generates our microservices or replicate our monolitic architecture in different regions or scenarios.

    In the next video we are going to check the CodePipeline stages to deploy all our code and changes to this architeture.


  • Development Pipeline Overview: CodePipeline, CodeBuild, CodeDeploy0:51

    CodePipeline Model overview

    This lecture explores the 3 stages we are going to use in our Development Pipeline.


    Transcript.

    This codepipeline specifies 3 different stages from the repo until the deploy to the ECS cluster:

    - The Source will be provided by CodeCommit.

    - The build stage will be a CodeBuild project and will built the dockerfile and push it to the ECR

    - The Deploy stage will deploy the Docker image to the ECS cluster.

    Of course we want to have all this template automated, thats why we will have a cloudformation template to generate all this pipeline ready to automate.

  • Cloudformation and Infrastructure as a Code (IaaS)1:46

    Cloudformation and IAAS (IaaS)

    - AWS Cloudformation: gives developers and systems administrators an easy way to create and manage a collection of related AWS resources, provisioning and updating them in an orderly and predictable fashion.

    Transcript.

    - AWS Cloudformation: gives developers and systems administrators an easy way to create and manage a collection of related AWS resources, provisioning and updating them in an orderly and predictable fashion.

    You can use AWS CloudFormation to describe the AWS resources, and any associated dependencies or runtime parameters, required to run your application. You don’t need to figure out the order for provisioning AWS services or the subtleties of making those dependencies work.

    After the AWS resources are deployed, you can modify and update them in a controlled and predictable way, in effect applying version control to your AWS infrastructure the same way you do with your software. You can also visualize your templates as diagrams and edit them using a drag-and-drop interface with the AWS CloudFormation Designer.

    We are going to using a nested cloudformation structure, for good understanding and readability we are going to have all our services templates in a modular way and using the yaml format. Remember that json format is also supported for this CFN templates.

Requirements

  • Network & Basic Cloud security
  • At least Basic AWS Knowledge or some interaction experience with theAmazon Web Services Console
  • Basic git version control system knowledge
  • Some exposure to a Relational Database engine
  • AWS account for practices

Description

The idea of this course is to master a really cool way to implement a scalable and highly available base architecture supported by an automated development pipeline.

In this course, you will learn how to set up a continuous integration and continuous delivery (CI/CD) pipeline on AWS. A pipeline helps you automate steps in your software delivery process, such as initiating automatic builds and then deploying to Amazon EC2 instances. You will use AWS CodePipeline, a service that builds, tests, and deploys your code every time there is a code change, based on the release process models you define. Use CodePipeline to orchestrate each step in your release process. As part of your setup, you will plug other AWS services into CodePipeline to complete your software delivery pipeline. This guide will show you how to create a very simple pipeline that pulls code from a source repository and automatically deploys it to an Amazon EC2 instance.

During the course we are going to be using all this AWS services: Cloudformation, CodeCommit, CodePipeline, EC2 Container Service (ECS) over Docker, CodeDeploy and CodeBuild between other Amazon web services like...

This course is totally practical: You will code some shell scripts, build Cloudformation templates from scratch, create and edit Dockerfiles, monitor containers execution over ECS and many more.

Who this course is for:

  • Anyone who wants to learn how to implement a Continuous Delivery and Continuous Integration over AWS using Docker and Cloudformation.
  • Anyone in the IT field interested in learning IAAS (Infrastructure as a code) for a high available and autoscalable architecture
  • Anyone interested in learning to setup and use an automated Software pipeline, from code push to production
  • Anyone interested to use docker in a development and production environment over EC2 Container Service
  • Anyone interested in how to setup and monitor Container Cluster and Database Cluster with multi Availability zones and redundancy