In this book you’ll see the main steps to deploy a specific type of applications, a Ruby
on Rails application. If you are a Rails developer, you should be pretty familiar with the
typical steps to run a Rails application in development and production. If you don’t use
Rails, this book should also give you valuable information on how to create templates to
run tasks and web applications using Docker with Kubernetes and ECS for deployment.
After you choose the right platform to deploy your application, you have to deal
with the issue of running the whole infrastructure. You have to create and manage a
cluster and be able to add or remove nodes when necessary. In this book you’ll see how
Kubernetes and ECS deal with these tasks in a very transparent way. You can launch
an entire cluster with a couple of commands without being an expert on topics such as
networking or DNS (Domain Name Systems).
Once you have your application up and running, you can build a Continuous
Integration (CI) pipeline around it. The whole idea is to be able to run deployments very
often without having downtime and to make sure that we are not pushing bad code to our
version control system. Automated testing plays a big part in this structure. We should
be able to run our test suite before sending our code to production servers. For that we
also have several alternatives out there. Here, we are going to be using Jenkins as our CI
server. Jenkins is a classical choice when it comes to CI. It’s highly configurable and it
plays nicely with the tools we need, such as Docker, Kubernetes, and AWS (Amazon Web