Elixir in the Jungle

AWS really is a jungle. There are so many services that just opening the navigation menu can be panic inducing. While you can find any number of configurations to copy off of the Web, do you really understand those 400 lines of YAML? We don't either.

Together, we're going to build a deployment pipeline we can understand. We'll work through the functionality of each moving part. We'll also make sure our pipeline handles the common needs: multiple environments, a secure network, load-balancing, autoscaling, automatic deployment of new releases, and rollbacks. Then, we'll trigger failure scenarios and adapt the pipeline to handle them.

We're going to build this tooling from elements you can wrap your head around:

Terraform files will provision the resources we need from Amazon

Cloud-Init will configure the various types of servers needed

Light shell scripting will be employed where it makes sense

Releases will be stored in S3

New releases will be turned into running servers, checked for viability, and rotated into use by the surprisingly straightforward CodePipeline and CodeDeploy services

This is an intermediate to advanced training. Don't let that scare you off, but there are some things you should be familiar with before signing up. You don't need to be a pro, but you should be comfortable with:

OTP releases (see the "Release the Kraken… Err… Elixir!" training the day before this one)

You'll leave this training with a ready-to-use deployment pipeline for your Elixir and Phoenix applications. More importantly, you'll be a good distance down the path of understanding how to make these systems work for your needs.