Chapter 9. Bringing it together: deployment

 

This chapter covers

  • Automating your deployment to AWS
  • Deploying your application to your AWS infrastructure
  • Pushing incremental changes to your application

Your development cluster is set up, your production cluster is set up, and you’ve architected a full application stack for performance scaling and availability. Now, you have to figure out how you’re going to tackle deployment. There are many, many models for constructing deployment mechanics, and many options for continuous integration systems, task schedulers, and build systems. After chapter 8, you have two major systems to rely on: CoreOS and AWS. You want to be able to do something that fits both systems without creating deep dependencies between them.

In this chapter, you’ll create a workflow that’s pretty generic; it will cut a few corners to remain generic and avoid bringing more components into the system. When you start building this kind of pipeline for your own applications, you’ll probably use a variety of other tools, but this example provides the basic inputs of a deployment system that you can plug into your tooling.

Ultimately, this means you’re going to create something in AWS that eventually flips a value in etcd, but you want to do it without

  • Building out new EC2 VMs to do orchestration
  • Running an agent on your CoreOS nodes that only works in AWS

9.1. New CloudFormation objects

9.2. Deploying the app!

9.3. Automated deployment

9.4. Summary