Getting Started
  • Welcome!
  • How is the course structured?
Introduction to Continuous Integration & Continuous Deployment
  • Section overview
  • What is Continuous Integration?
  • What is Continuous Delivery/Deployment?
  • What is a CI/CD Pipeline?
  • Why use CI & CD?
  • Achieving Full Automation
  • Section Summary
  • Quiz: Basic CI/CD concepts
CI/CD for Web Applications
  • Section Overview
  • Anatomy of a basic web application
  • Designing a continuous deployment pipeline for a web application
  • Managing Relational Database Changes and Deployments
  • Deployments & Actions
  • Monitoring
  • Common Challenges
  • Summary
  • CI/CD Checklist
  • Assignment: Design a pipeline
  • Quiz: Assignment Checkpoint
  • Assignment: Example solution
Setup Project: Let's setup a basic PHP web application
  • Section Overview
  • Quick Cloud9 IDE Overview
  • Changes in Cloud9 IDE after AWS acquisition
  • Building Fuzzy Telegram PHP Web Application
  • Using Environment Variables in Applications
  • Configuring MySQL Database using Environment Variables
  • Writing Database Migration Scripts (Database Change Management Scripts for CD)
  • Unit tests using PHPUnit
  • Checking in to code repository (Github)
Deploy Project: Setting up AWS Elastic Beanstalk & RDS
  • Section Overview
  • Setting up Elastic Beanstalk - Part 1
  • Setting up Elastic Beanstalk - Part 2
  • Elastic Beanstalk Dashboard Walkthrough
  • Manually Deploying Application on Elastic Beanstalk
  • Manual RDS / Database Deployment on Elastic Beanstalk
  • Intro to Elastic Beanstalk Extensions (.ebextensions)
  • Workshop: Creating .ebextension to run Database migration scripts
  • Creating a new environment for "Production"
  • Application Versions
Setting up a CI/CD pipeline using AWS CodePipeline
  • Section Overview
  • First, let's commit everything in Github
  • Creating a new pipeline on AWS CodePipeline
  • AWS CodePipeline in Action
  • Editing AWS CodePipeline and adding a new Stage
  • Manually release a change in AWS CodePipeline
  • Stage Transitions in AWS CodePipeline
Adding actions in AWS CodePipeline
  • Sequential and Parallel Actions
  • Types of actions in AWS CodePipeline
  • Input & Output Artifacts
  • Four methods to run custom builds/actions in AWS CodePipeline
Method # 1: Adding a custom deployment action to run unit tests
  • Part 1 - Setting up a new stage and environment for unit testing
  • Part 2 - Adding script to run unit tests in Elastic Beanstalk
Method # 2: Invoking Lambda Functions in your AWS CodePipeline
  • Part 1 - Create S3 Bucket for your assets
  • Part 2 - Create Lambda Function to upload assets to S3
  • Part 3 - Adding Lambda Function in AWS CodePipeline
Method # 3: 3rd party integrations in AWS CodePipeline
  • Workshop: Integrating GhostInspector for UI testing
Real-life scenarios
  • Adding a manual approval step in AWS CodePipeline
  • Manually rolling back changes in AWS CodePipeline
Monitoring your fully automated AWS CodePipeline
  • Section Overview
  • Workshop: Lambda Function to health check your web application
  • Creating Alarms using CloudWatch
Wrap-up
  • Summary & Thank you!