The CI/CD and DevOps Blog

Learn about various tried-and-tested strategies that will help you ship code faster

Provisioning AWS Network using Terraform Modules

At Shippable, we love using Terraform. From using it sparsely just a few years back, we've now reached a stage where every single component of all our environments is managed using Terraform. Hard to believe? Here's all our infrastructure code to prove it ! We've also published a few posts earlier which outline our process for managing infrastructure.Some of these are,

- Provisioning AWS Infrastructure Using Terraform

- Provisioniong AWS VPC With Terraform

- Provision AWS EC2 Virtual Machines Using Terraform

So why a new post? Terraform now supports Modules that provide an easy way to break down different parts of the infrastructure into reusable components. They also provide a Registry where users can publish their modules. Users can download "verified" modules from the registry and use them directly as building blocks for their infrastructure. We decided to give this a try by creating a complete, production-ready infrastructure(similar to what we use). The objectives of the tutorial are to

- Logically break down infrastructure components into modules

- Reuse and chain modules to create component decoupling

- Drive all configuration from one file

Docker in Continuous Integration: Part 3

A Docker image registry service makes it easy for developers to store, manage, distribute and deploy Docker images. Use a registry service to control the storing of your images, fully own your images distribution pipeline and integrate image storage and distribution tightly into your in-house development work flow.

This blog covers "Pushing a Docker image to a registry of your choice" scenario in the Docker in Continuous Integration (CI) series. We'll go over a simple example and look at advanced scenarios of using Docker images within CI and Continuous Delivery (CD) Pipelines.

Docker in Continuous Integration: Part 2

This blog explains "Build your own Docker image" scenario in the Docker in Continuous Integration (CI) series. The three scenarios covered in this series are:

  1. Use an existing Docker image
  2. Build your own Docker image
  3. Push a Docker image to a registry of your choice

We'll go over the reasons to build your own Docker image, steps to do so and an example to follow along.

Docker in Continuous Integration: Part 1

This blog series covers three Docker in Continuous Integration (CI) scenarios. A CI process combined with immutable Docker images expedites delivering software changes. Shippable makes it easy for you to use Docker images in your CI process, without a separate DevOps tool or code. The three scenarios covered in this series are:

  1. Use an existing Docker image
  2. Build your own Docker image
  3. Push a Docker image to a registry of your choice

In this blog, I'll cover the first scenario.

How to deploy to Elastic Beanstalk (Part 2)

In the previous part, we went over the steps of source code deployment to AWS Elastic Beanstalk using a simple Node.js app. We deployed the source code natively at first, then compared with deploying it through Shippable. The latter approach showed actions in the work flow executed automatically for you, by Shippable's unified CI/CD platform.

I'll take a similar approach for this part where we'll go through a deployment of a Docker container of a Node.js app to AWS Elastic Beanstalk. To fully understand this tutorial, complete the previous source code deployment to AWS Elastic Beanstalk first.