Practical and Professional Devops with AWS and Docker

The Zero-to-Production Blueprint for Real World Infrastructures and Development Stacks

  Enroll in Program

Learn everything you need to build a complete, production-ready pipeline and infrastructure on AWS with Docker.

Finish with a resuable Blueprint for all future professional projects.

development environment for teams with docker

Development Environment For Teams with Docker

Portable, reusable, and no collision with locally installed versions!

Continuous Deployment Pipeline

Update our code -> push to Github -> have it deploy across our infrastructure.

Continuous Deployment Pipeline
service oriented architecture

Service Oriented Architecture

Keeping our services (apps) separated for scalable deploys and sane development. Starring Node and React (although any application stack can be used!).

Fault Tolerant, Load Balanced and AutoScaling Infrastructure on AWS

Everyone says "you won't need it yet," but you want it. And know you'll need it.

scalable infrastructure on AWS
3.5 Hours of CloudFormation!

3.5+ Hours of CloudFormation!

We explore the infamous "infrastructure as code" service by building a production template from scratch.

Twitch Inspired Presentation

We'll work along side each other and complete everything together!

twitch inspired presentation style

Course Curriculum

  1 Introduction
Available in days
days after you enroll
  9 AutoScaling our API Service and Infrastructure
Available in days
days after you enroll
  10 First Infrastructure and API Launch Overview
Available in days
days after you enroll
Available in days
days after you enroll
  14 Custom Domains and HTTPS with AWS Route53 and Certification Manager
Available in days
days after you enroll
  15 - Same Cluster Deploys
Available in days
days after you enroll


Instructor Discussion & Support. Access to All Updates. Membership to the Exclusive DevOperatives Group.

"The course is absurdly good, props to you sir. I consume a decent amount of resources and this course definitely stands out. I'm using pieces of this course to study for an up coming interview for an SRE (Site Reliability Engineer) - provisioning job. Keep the goodness coming!"

- Sterling Houghton, Applications Engineer (Nike)

"The moment I saw your course I knew it was going to be a big help. I'm a developer who wears many hats, and especially over the past year or more I've been getting into DevOps and managing my AWS environment. I've consumed several other AWS resources/courses, but they are usually tailored to a single AWS service at a time. I appreciate you taking the time to put some opinions together to bring several AWS services together. It's easy to follow along."

- Alexander Bihary, Senior Software Engineer (Webcollage)

"I have enjoyed the course very much so far and look forward to continuing it. I am teaching a web module to our final years, so I will be using a lot of knowledge gained from your course for that. I find your style and pace clear and easy to follow."

- Dr. Torbjorn Dahl, Associate Head for Computing, School of Computing, Electronics and Mathematics (University of Plymouth, UK)

"I have spent a good portion of my time in as a windows infrastructure engineer/admin role. I realized that if I don't move over or incorporate cloud computing in to my knowledge base... I'd soon be saying "Would you like some fries with that order" :-)"

"I received the 3 associate AWS certification in less then 3 months and realized I was more lost then before. I followed your Tech Guides and Thoughts blog for few months prior and when you announced the new course, based on the front page description I knew that this would be a my new portfolio of knowledge."

"At this time I am 55% done with the course and the knowledge gained exceeds all the past cloud/devops education I've compiled. Don't get me wrong the certifications definitely helped with all the basics - so that I could begin devouring your material. Without the basics it would have a been a bit more challenging but still 100% doable."

"I am not a developer and following your course and building an application from scratch allowed me to understand the internal intricacies of not only the development process but also making sure that the application is cloud ready."

"I am looking forward to continuing the current course and to anything that your experience will transform in to a knowledge rich course."

"Thank you for an incredible opportunity to watch over your shoulder and an overall a for a fantastic experience."

- Felix Bakhman, Infrastructure Engineer

"The course is a savior. Learning new technologies is like learning calculus when everything's in French. When you find guidance in English, it's golden."

"I really like the way you link to the docs. You present the material to a good level of depth, but there are times, as a student, you need to dig deeper. Having links to relevant documentation really helps. Especially when you're learning Docker, CircleCi and ECS all at the same time, under deadline."

- Andrew Meyer, Senior DevOps Engineer (

The Entire Course Cirriculum - IN DEPTH:

Sections 1, 2, and 3

  • Introduction of the course from a high level
  • Prerequisites and knowledge level suggestions
  • Set up of our local machine for development
  • Creating and secure set up of our AWS Account
  • Configuration of the AWS CLI

Section 4 - VPCs and Security

  • High level Overview of AWS Virtual Private Clouds (VPCs)
  • In-depth conceptual exploration of AWS VPCs
  • Overview of basic networking concepts required by VPCs
  • A Production Approach to VPC creation and Subnetting
  • Set up of a full, production-grade VPC
  • Creation of a Bastion Server for future secure logins
  • Overview of AWS Identity and Access Management

Section 5 - Creating the Development Environment and API

  • Intro to the Docker based development environment
  • Creating Docker Images used for local development
  • Leveraging Docker Compose for full-stack development with separated services
  • Creation of a basic authenticated and authorized API with Node.js
  • Walkthrough and Mindset of Test Driven Development with Node.js
  • Set up of all modern testing and coverage tools for Node.js
  • Version controlling the Code AND the Docker Images

Section 5.5 - AWS EC2 Container Service (ECS) Overview

  • For those in my ECS Course, this is the same thing - so you can skip it :)
  • Overview of Docker in context of AWS
  • AWS ECS from a 50000 ft view
  • Conceptual Deep Dive of the major ECS components (Clusters, Services, Tasks, Task Definitions)
  • Understanding the supporting components of ECS (Application Load Balancers, Launch Configs, AutoScaling Groups)

Section 6 - Creating AWS Resources for the API

  • Prepping the application from Section 5 for deploy
  • Setting up the IAM resources and Security Groups
  • Launching an AWS Relational Database Service (RDS) instance
  • Creating the Elastic Application Load Balancer
  • Making the ECS Cluster and Container Instances with a Launch Configuration and AutoScaling Group

Section 7 - First Time API Launch into AWS

  • Building a production Docker image for our Section 5 application and pushing it up
  • Setting up an ECS Task Definition for our production Docker Image
  • Launching an ECS Service for our Seciton 5 application's production Docker Image

Section 8 - Continuous Deployment and Integration of API Service

  • First time set up and explanation of continuous deployment
  • Setting up an account on CircleCI
  • Creating an independent user and deploy scripts for CircleCI
  • Creating a script to update the ECS Task Definition and Service
  • Writing a build script to deploy updates directly to ECS
  • Note: CircleCI is free, and fits the need of setting up a first time CI/CD pipeline. We use AWS CodePipeline and CodeBuild in Section 13.

Section 9 - AutoScaling our API Service and Infrastructure

  • In-depth overview on AutoScaling both ECS Services and EC2 Instances
  • Setting up AutoScaling for our ECS Services
  • Setting up AutoScaling for our Launch Configuration and AutoScaling Group (EC2 Instances)

Section 10 - First Infrastructure and API Launch Overview

  • Recap of everything we built in Part 1
  • Summary of what you can do with it right now

Section 11 - Setting up the Web Application

  • Overview of deploying an existing application
  • Setting up the React Project
  • Creating a Test Environment with all the modern tools for React
  • Snapshot testing with Jest and React
  • Unit Testing with Jest, Enzyme and React
  • Building an NGINX based React Docker Image for deploy

Section 12 - Building the Full Infrastructure with CloudFormation

  • Overview of CloudFormation
  • Exploration of the CloudFormation Basics and Essentials
  • Writing all of our IAM roles and resources
  • Working with Custom Parameters and Intrinsic Functions
  • Creating Security Groups in CloudFormation
  • Configuring an Application Load Balancer
  • Creating a Launch Configuration and Autoscaling Group
  • Creating an ECS Service and Task Definition
  • Setting up AutoScaling for ECS Services
  • Setting up AutoScaling for Launch Configuration and AutoScaling Group
  • ... all of the above in context of CloudFormation

Section 13 - Continuous Deployment with AWS CodePipeline and CodeBuild

  • That's right, we set up another CI/CD pipeline, but this time fully in AWS
  • Setting up all IAM resources for CodePipeline and CodeBuild
  • Building a custom CodeBuild Docker image
  • Pushing up and Protecting our custom CodeBuild Docker image
  • Creating build files and scripts for our Section 11 application
  • Creating the CodePipeline and CodeBuild and testing it out!

Coming Soon:

  • Section 14 - Setting up SSL on our Application Load Balancers with Route53 and AWS Certificate Manager
  • Section 15 - Deploying Varying Services to One ECS Cluster with Different Host Names
  • Section 16 - Running commands simultaneously on all EC2 Instances with EC2 Systems Manager

Along side all of the practical implementation, we'll also deeply explore the topics conceptually and technically. What's the point of having a list of steps you don't understand? That you can't extend to your needs?

The goal here is to give you a full blueprint that you can use for your own purposes. So that you can stop piecing together Frankenstein stacks by piecing together parts of one tutorial and parts of another. And then having all of it just barely work.

Oh, and one more thing. I promise we'll never say "You wouldn't do this in production."

Check out the 4 minute overview video for an intro to the course!

Your Instructor

J Cole Morrison
J Cole Morrison

Cloud Architect, Software Engineer, DevOps Lover, AWS Solutions Architect, Former TechStars HackStar, and Headmaster at!

I run a blog full of free tech guides on all things development, devops and cloud computing called Tech Guides and Thoughts.

Get started now!

30 days, satisfaction guaranteed

If the course isn't expanding your cloud knowledge, contact us within the first 30 days and you'll get a full refund.

Frequently Asked Questions

Is this course kept up-to-date?
Absolutely. Every time there's a major update to anything related to the stack - the course will be updated within a few weeks to reflect the changes! Since students are active in the course comments and discussion, we generally troubleshoot any updates within hours.
What if I am unhappy with the course?
I'm positive that this infrastructure and stack will work for you. Why? Because I use it in all of my professional projects. However, if within 30 days you're unhappy for whatever reason, just contact me and you'll get a hassle-free full refund.
Will the instructor help me out?
100% of the way. In addition to my instructor email, each video has a comment and discussion area where we generally troubleshoot any problems within hours. As more students add to the discussion, the knowledge gained from this course continues to extend as well!
When does the course start and finish?
The course starts now and never ends! It is a completely self-paced online course - you decide when you start and when you finish.
How long do I have access to the course?
24 hours, 7 days a week for LIFE. After enrolling, you have unlimited access to this course for as long as you like - across any and all devices you own.

Getting into Devops, let alone creating an entire infrastructure and development pipeline... is painful.

There's many reasons for this:

a) The feedback loop is insanely long.

If you want to make a change or conduct an experiment, there is no localhost. You have to do it on whichever cloud provider you're using. Testing a configuration or deploy would require setting up some makeshift infrastructure (or even worse, using an existing one) and then launching the changes. This can take minutes to hours to see if your changes are valid and working.

Now "minutes to hours" may not sound like a lot. But once you've done 50 to 100 experiments with this type of feedback time... Those experiments can stack up to days, weeks, or months.

b) Learning costs are high.

In order to really get an understanding of an entire infrastructure, you need to ... build it. For Cloud infrastructure that means doing so with whatever cloud provider you plan on using. And this can cost money.

So in addition to paying for learning materials and paying with your time, you also pay just to host/compute what you're attempting to learn.

c) Learning materials are in silos, out-dated, or teach the wrong thing.

Because there's SO much to a full development pipeline and infrastructure, it's far easier for content providers to just write about one piece of it... and pretend like the rest of it doesn't exist. This has it's place in allowing for focus on just one area of knowledge, but it's not very helpful when you actually need to build something.

Let's not forget about how fast tech changes. Cloud, Devops and the like are no exception to the changing times. This causes existing information to depreciate in usefulness and accuracy very quickly - unless it's actively maintained.

Finally, there's also a ton of WRONG information out there. Because these topics are so complex, a lot of "Hey, this worked for me!" articles, forum posts, and tutorials pop up. And it amazes me how often these are just the result of the writer being so ecstatic that it's finally working that they don't care HOW or WHY it works. This leads to information that only works for their given situation or worse - insecure, unreliable configurations.

d) Certifications help get interviews, but teach little about day-to-day, real-world work.

Therefore educational materials related to acquiring certifications only loosely help with understanding real-world work. Instead they primarily focus on... passing tests. Tests filled with edge-cases, uncommon scenarios, and trick questions. Tests that care little about implementation.

These types of materials will leave you feeling like you know a lot - but I doubt your goal is to become the AWS Trivial Pursuit champion. It's likely to build a production grade infrastructure.

And in fact, employers, co-workers, etc are going to be far more impressed by you creating a production grade, secure infrastructure vs. a poorly designed PDF with your name stamped on it.

I'm bringing up these barriers because I went through ALL of them

When I went to build my first production infrastructure...

  • I was AWS certified
  • I'd gone through over 10+ full video courses (ugh)
  • I'd been reading AWS Docs 1 hour a day for months (to the point where it was part of my daily routine)


I was paranoid and still had no clue where to start.

I was really great at AWS Trivial Pursuit. I could (and still can) answer tons of questions about the most obscure topics in AWS and Docker.

But put together a production grade stack. Ha.

So I set out on a long journey of building and experimenting. For professional reasons. For science! For my own pride (after all I had 100s of hours poured into this)!

My goal was something that would last. Something that would scale. And something that I could confidently and proudly use on any project or product.

"Darkness took me, and I strayed out of thought and time, and I wandered far on roads that I will not tell..."

...mainly AWS docs and experiments that took hours per iteration.

And out of this long adventure I crafted this blueprint.

It's something I use on all of my professional projects. Something that I will continue to use. Something that's general enough to fit any application.

And it's something that you can USE, UNDERSTAND, and EXTEND for your own needs.

This course distills what I've learned over the years into a full blueprint. My hopes are that you can learn in hours what took me ... well, a very long time. That you'll take this, extend it, and put it to great use.

-J Cole Morrison

Validating enrollment eligibility. One second please...
Course Closes In: