The CI/CD and DevOps Blog

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

Provisioning AWS Instances Using Terraform Modules

In the previous post, we walked through the steps to provision an AWS Network using Terraform Modules. If you missed the post, here's the link to it: Provisioning AWS Network using Terraform Modules and the full code is available here: https://github.com/ric03uec/prov_aws_vpc_terraform.

In this post, we'll provision a few more components using Terraform modules. Additionally, we'll use the generated state file from the previous post as an input data source in this workflow. So it is highly recommended that you run that code first.

Since Terraform makes it super easy to create and destroy infrastructure, you should be able to spin up all components for testing and destroy them when done. I've probably done this at least ten times to test the code for this blog !!!

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

Extend your CI workflows using Assembly Lines

Do more with less - No one disagrees with this famous quote, but how often do we really take a step back to think about pushing the envelope with what we have right now ? At Shippable, we've tried to constantly ask this question with every feature we've built. This ideology manifests itself in the capabilities the current Shippable workflows have, compared to what they used to a few years back. All this while keeping things simple and with zero additional costs to the customers. A lot of our customers started using Assembly Lines after the launch, a year go. Most of them didn't need much help but we do admit that some steps in extending traditional CI with the new Assembly Lines are a bit complicated. The objective of this post is to provide a detailed, step by step guide, to enable any CI job on Shippable to use the power of Assembly Lines 

Shippable Partners with Arm and Packet to Deliver Native CI/CD For Arm Development

We are excited to announce native support for hosted CI/CD on Armv8-A architecture! This launch is a result of a close partnership with Arm and Packet to give Arm developers quick and easy access to native test infrastructure, enabling them to significantly improve productivity and reliability with fast builds and identification of bugs earlier in the development process.

In the absence of readily available CI/CD services that natively supports Arm, developers relied on emulators while building and validating their code, which does not always detect architecture specific artifacts being introduced in their codebases. As the adoption of the Armv8-A architecture continues to grow, it is critical for organizations to have easy access to a CI/CD platform that natively supports Arm and doesn’t require resources and effort to set up and manage. Today's announcement addresses this need with a solution that offers hosted build and test infrastructure with no installation or management overhead.

This announcement would not have been possible without tremendous contributions from Packet and Arm. The Armv8-a machines are hosted on Packet's cloud and the Arm team has been key in driving this effort to fruition. Read the entire text of the announcement here

Build A GCE (Google Compute Engine) VM image using Packer

This tutorial explains how to manually create a GCE VM image using Packer. Before you start, you should be familiar with the following concepts:

The best way to get started is to install Packer and run scripts manually on your local machine to create a VM image. Once you understand the mechanics of it, you should consider automating your workflow by following our documentation on Automated creation of GCE image using Packer.