We may earn an affiliate commission when you visit our partners.
Mark Winterbottom and Brooke Rutherford

Welcome to the advanced course on how to setup a deployment automation that's capable of scaling to handle millions of users.

In this course you will learn some of the most in-demand skills in the marketplace today by creating automated workflows to deploy and manage a scalable and secure infrastructure.

Read more

Welcome to the advanced course on how to setup a deployment automation that's capable of scaling to handle millions of users.

In this course you will learn some of the most in-demand skills in the marketplace today by creating automated workflows to deploy and manage a scalable and secure infrastructure.

The demand for DevOps engineers is skyrocketing because few people have these skills and the value they add to a business’s bottom line is so high. Software development is expensive, and DevOps saves money by automating and streamlining the process. It also makes it easier to deploy more frequently, so you can catch issues early and improve the reliability of your product or service. Not to mention it saves hundreds of hours of manually administering servers and running deployments (like the good old days).

People in DevOps roles are some of the highest earners in the industry, are looking for work the least, and are the most sought after by companies. (Source: Stack Overflow Developer Survey 2019 and Indeed).

Needless to say, mastering the technologies and skills used for DevOps is a great return on investment.

Whether you’re a developer, system administrator, or tech entrepreneur - this course will give you the tools to advance your skills in some of the most in-demand DevOps technologies in the marketplace today.

In this course, you’ll be deploying a sample Django

In this course, you will learn how to:

  • Define your infrastructure as code so you can easily create and destroy environments as you need them, keeping AWS costs low

  • Design an architecture that is scalable, secure, resilient and facilitates zero downtime deployments

  • Setup professional development workflows based on GitLab Flow to automate processes and speed up deployments

  • Properly manage and administer an AWS account in accordance with best practices to mitigate the risk of it getting compromised (and preventing AWS bill shock)

By the end of the course you will have implemented a fully functioning deployment process, comparable to what you might find at any major tech company.

This is an advanced course that requires previous experience with Django and Docker, and familiarity with AWS. It requires you to have a budget for AWS fees and an acceptable payment method. You must also have a computer that can run Docker desktop (sorry Windows Home users).

This is a high-stakes course, so we encourage you to check out our full Requirements video before enrolling. This video and many others are free to preview, so make sure you check them out to make sure this course is right for you.

This is a hands-on course, with a bit of theory and lots of opportunities to test your knowledge. The content is challenging but rewarding. Ready for it? Let’s dive in.

Enroll now

What's inside

Syllabus

Introduction
Course Introduction
Course Requirements
How to Get Help
Read more
What is DevOps Automation?
Technologies
Architecture Overview
What is the Recipe API?
AWS Cost Calculation
Course Update
Disclaimer
Software Requirements
Introduction to Software Requirements
Required Dependencies
Required Accounts
Create Docker Hub Token
Checking Each Dependency
Setup AWS Account
Introduction to AWS Setup
Give IAM Users Access to Billing Information
Setup IAM Identity Center
Setup aws-vault
Create Budget

Test your knowledge on the AWS account setup.

Prepare Project
Introduction to Preparing the Project
Clone and Create Repo
Project Overview
Run Project Locally
Overview of Design Changes
Update Static and Media Files
Switch uWSGI to Gunicorn
Test Project Locally
Prepare Project Quiz
Configure Terraform
Introduction to Terraform Setup
Create Backend Resources in AWS
Terraform Structure
Add Docker Compose Config
Configure Setup Terraform
Initialise Setup Terraform
Configure Deploy Terraform
Configure Terraform Quiz
AWS Setup Terraform
Intro to AWS Setup Terraform
Create IAM User for CD
Create ECR Repos
Add IAM Permissions for ECR Repos
AWS Setup Terraform Quiz
CI/CD
Introduction to CI/CD
Workflow Design
GitHub vs GitLab
CI/CD Quiz
GitHub Actions
Intro to GitHub Actions
Overview of Workflow Design
Set GitHub Actions Variables
Add Python Checks
Create Public Subnets
Add Terraform Checks
Build and Push Docker Images
Create Private Subnets
Add Terraform Apply Job
Add Terraform Destroy Jobs
Test Configured Workflow
Create Endpoints
Summary of GitHub Actions Setup
GitHub Actions Quiz
GitLab CI/CD
GitLab CI/CD Introduction
Set GitLab CI/CD Variables
Test Housekeeping Checks
Add Terraform Destroy Job
Summary of GitLab CI/CD Setup
GitLab CI/CD Quiz
Configure Network
Network Overview
Add Network IAM Permissions
Create VPC
Summary of Configure Network
Network Quiz
Create Database
Introduction to Creating a Database
Add RDS IAM Permissions
Add RDS Instance
Deploy RDS Instance Change
Summary of Create Database
Create Database Quiz
Setup ECS
Introduction to Setup ECS
Add ECS Permissions to CD User
Create Cluster

Save this course

Save DevOps Deployment Automation with Terraform, AWS and Docker to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in DevOps Deployment Automation with Terraform, AWS and Docker with these activities:
Review Docker Fundamentals
Solidify your understanding of Docker fundamentals to ensure a smooth learning experience in the course.
Show steps
  • Review Docker images and containers.
  • Practice building and running Dockerfiles.
  • Familiarize yourself with Docker Compose.
Brush Up on AWS Basics
Strengthen your knowledge of AWS core services to better understand the deployment automation concepts covered in the course.
Show steps
  • Review IAM roles and policies.
  • Understand VPCs and networking concepts.
  • Familiarize yourself with EC2 and S3.
Read 'Terraform: Up & Running'
Deepen your understanding of Terraform concepts and best practices by reading this comprehensive guide.
Show steps
  • Read the chapters on Terraform modules and state management.
  • Experiment with the examples provided in the book.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Automate a Simple Web App Deployment
Apply the concepts learned in the course by automating the deployment of a simple web application using Terraform, AWS, and Docker.
Show steps
  • Create a Terraform configuration to provision AWS resources.
  • Containerize the web application using Docker.
  • Automate the deployment process using a CI/CD pipeline.
Write a Blog Post on DevOps Automation
Solidify your understanding of DevOps automation by writing a blog post explaining the key concepts and benefits.
Show steps
  • Research different aspects of DevOps automation.
  • Outline the structure of the blog post.
  • Write the blog post and include relevant examples.
Contribute to a Terraform Module
Enhance your Terraform skills by contributing to an open-source Terraform module on GitHub.
Show steps
  • Find a Terraform module on GitHub that needs improvement.
  • Fork the repository and make the necessary changes.
  • Submit a pull request with your changes.
Read 'The Phoenix Project'
Gain a deeper understanding of the cultural and organizational aspects of DevOps by reading this engaging novel.
Show steps
  • Read the book and reflect on the challenges faced by the characters.
  • Identify the DevOps principles illustrated in the story.

Career center

Learners who complete DevOps Deployment Automation with Terraform, AWS and Docker will develop knowledge and skills that may be useful to these careers:
DevOps Engineer
As a DevOps Engineer, you will be bridging the gap between software development and IT operations. This course will provide a great foundation for developing automated workflows to deploy and manage scalable and secure infrastructure, key responsibilities of a DevOps Engineer. This advanced course teaches in-demand skills by implementing a fully functioning deployment process. A DevOps Engineer would find that the course's content is particularly useful in keeping costs low, designing scalable architectures, setting up development workflows, and properly managing an Amazon Web Services account. Anyone seeking a DevOps Engineer role should take this course as a means of mastering the technologies and skills used for DevOps.
Cloud Engineer
A Cloud Engineer implements, plans, designs, and supports cloud infrastructure. This course will likely be very helpful for a Cloud Engineer. The course teaches designing scalable and secure architectures, setting up professional development workflows, and managing Amazon Web Services accounts, all deeply connected to a Cloud Engineer's daily work. Furthermore, this course will show students how to implement a fully functioning deployment process, comparable to what you might find at any major tech company.
Platform Engineer
Platform Engineers build and maintain the underlying systems and services that support software applications. This course will be very helpful for a Platform Engineer. The course's content covers automating workflows, deploying and managing scalable infrastructure, defining infrastructure as code, and setting up professional development workflows, which are critical to the Platform Engineer role. Taking this course will also provide the Platform Engineer with hands-on experience in implementing a fully functioning deployment process.
Build and Release Engineer
The Build and Release Engineer can improve how the process of releasing new software works. This course will show the Build and Release Engineer how to automate the software release process, allowing it to become more efficient. This course specifically teaches how to define infrastructure as code, design a scalable, secure, and resilient architecture, and set up professional development workflows. These are vital skills to a Build and Release Engineer.
Infrastructure Architect
An Infrastructure Architect specializes in planning and designing the structure of an organization's IT systems. This course is a great tool for aspiring Infrastructure Architects. It teaches how to define infrastructure as code, design architectures for scalability and security, and manage Amazon Web Services accounts effectively. Furthermore, the practical experience gained in implementing a deployment process should allow the Infrastructure Architect to design the appropriate architectural infrastructure.
Cloud Architect
The Cloud Architect is responsible for designing and overseeing a company's cloud computing strategy. This course may be useful as it covers defining infrastructure as code, designing scalable and secure architectures, and setting up professional development workflows, all crucial for a Cloud Architect. The course also covers managing and administering an Amazon Web Services account, and implementing a fully functioning deployment process, which will provide the advanced-level knowledge a Cloud Architect requires. A person who wishes to become a Cloud Architect should take this course, especially to learn some of the most in-demand skills in the marketplace.
Infrastructure Engineer
The Infrastructure Engineer is responsible for managing and maintaining an organization's IT infrastructure. This course dives into how to define your infrastructure as code so you can easily create and destroy environments, which are great skills for the Infrastructure Engineer. The course is particularly helpful as it teaches how to design an architecture that is scalable, secure, and resilient, facilitating zero downtime deployments. Individuals who take this course can learn how to properly manage and administer an Amazon Web Services account in accordance with best practices.
Site Reliability Engineer
The Site Reliability Engineer focuses on ensuring the reliability, scalability, and performance of systems and services. This course will help build a foundation for the design of an architecture that is scalable, secure, and resilient, facilitating zero downtime deployments, all relevant for Site Reliability Engineers. The course may also be useful as it covers managing and administering an Amazon Web Services account in accordance with best practices to lower the risk of getting compromised. By teaching how to implement a fully functioning deployment process, this course provides useful knowledge that any Site Reliability Engineer can use.
Automation Engineer
Automation Engineers are responsible for designing, developing, and implementing automation solutions to improve efficiency and reduce manual effort. This course is a potential fit because it will assist you in creating automated workflows to deploy and manage scalable and secure infrastructure, a core function of an Automation Engineer. The course's focus on defining infrastructure as code, setting up professional development workflows, and implementing a fully functioning deployment process is highly relevant. Prospective Automation Engineers will learn how to automate processes, speed up deployments, and mitigate risks when taking this course.
Release Manager
Release Managers oversee the planning, scheduling, and controlling of software releases. This course may be valuable as it teaches how to setup professional development workflows based on GitLab Flow to automate processes and speed up deployments, skills that directly apply to the role of a Release Manager. This advanced course teaches in-demand skills by implementing a fully functioning deployment process. The course's coverage of infrastructure as code and automation should be particularly useful to a Release Manager who wishes to accelerate software releases.
Software Architect
The Software Architect makes high-level design choices and dictates technical standards for software development. This course is a great tool for aspiring Software Architects. The course teaches how to design architectures for scalability and security, and manage Amazon Web Services accounts effectively. Furthermore, the practical experience gained in implementing a deployment process will give Software Architects insights into how to more effectively design code.
Systems Administrator
Systems Administrators are responsible for the maintenance, configuration, and reliable operation of computer systems and servers. The skills taught in this course may be valuable because they can provide a foundation for designing an architecture that is scalable, secure, and resilient. Systems Administrators who take this course can learn how to properly manage and administer an Amazon Web Services account in accordance with best practices to mitigate the risk of it getting compromised. The course also teaches how to setup professional development workflows based on GitLab Flow to automate processes and speed up deployments.
Software Developer
The Software Developer designs, develops, and tests software applications. This course may be a fit because it can assist in defining infrastructure as code so that you can easily create and destroy environments as you need them. The course also touches on setting up professional development workflows based on GitLab Flow to automate processes and speed up deployments. As software developers are involved in the deployment process, this course may give them valuable insight on how to work more effectively with DevOps teams to streamline deployments.
Solutions Architect
The Solutions Architect is responsible for designing and implementing IT solutions that meet business needs. This course touches on how to define your infrastructure as code, how to design a scalable, secure, and resilient architecture, and how to set up professional development workflows. These are all helpful to a Solutions Architect. This course may also be useful as it covers how to properly manage and administer an Amazon Web Services account in accordance with best practices.
Technical Lead
Technical Leads guide a team of developers in creating and maintaining software applications. This course may be helpful as it offers advanced knowledge about how to setup a deployment automation that's capable of scaling to handle millions of users. It could also be valuable to learn more about defining infrastructure as code so you can easily create and destroy environments as you need them. This offers a Technical Lead insight into how to better integrate their team's work with deployment pipelines.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in DevOps Deployment Automation with Terraform, AWS and Docker.
Provides a comprehensive guide to Terraform, covering everything from basic concepts to advanced techniques. It is particularly useful for understanding infrastructure as code and automating deployments. The book is commonly used by DevOps engineers and system administrators. It adds depth to the course by providing real-world examples and best practices.
This novel illustrates the principles of DevOps through a compelling story. It is helpful for understanding the cultural and organizational aspects of DevOps. While not a technical manual, it provides valuable insights into how DevOps can improve collaboration and efficiency. is more valuable as additional reading to understand the broader context of DevOps.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser