7 Containerized deployment

 

This chapter covers

  • Building a standardized way of deploying applications across multiple machines
  • Using Buildpacks to build optimized containers for hosted infrastructure
  • Customizing a deployment using a Dockerfile
  • Deploying containers to hosted environments
  • Organizing containers for local development

“Listen, I understand that this project is now gaining some traction, but we need to be able to integrate with it as soon as we can. The old service is at the center of everything we do, so you will need to give us documentation on how to run what you already have,” says Carol. You are just sitting down with your lunch when she sits down at the same table. Carol has been the team lead over at the mobile application team for several years now. She runs a tight ship and doesn’t like surprises—like to one your PM put you in charge of developing. You smile and say you’ll get her team something by the end of the day. Something simple that they won’t have to do anything crazy to use.

“It would be nice if it’s the exact system you are using in production and can be used locally.” This is important. Having a system work the same on your machine as it does in production is huge. Of course, you could point her team to the binary you publish on your repository, but your binaries are compiled for Linux, not for macOS or Windows, which the mobile app team uses. You need something more universal.

7.1 What is a container?

7.2 What is a Buildpack?

7.3 Let’s build a container

7.4 Adding a container build to your pipeline

7.5 Deploying to a container runtime

7.6 Writing your own image

7.7 Local environment organization

7.8 Containers, containers everywhere

Summary