The CI/CD and DevOps Blog

Provision an AWS VPC using Ansible

This tutorial explains how to manually provision a AWS Virtual Private Cloud(VPC) using Ansible. Before you start, you should be familiar with the following concepts:

The best way to get started is to install ansible and run playbooks manually on your local machine to provision a VM. The first section of this tutorial explains how to do that. However, manual execution isn't the best and most efficient way to run ansible playbooks, so we will take a look at the challenges and learn how to automate this workflow with a step-by-step tutorial.

Shippable 6.4.4 is live!

A common complaint from our SaaS customers is that we're so busy building new features, we don't always do a great job letting them know what's new. It's like thousands of trees falling in the forest.... you hear them fall, but you don't know which ones and how many until someone tells you or you spend time scanning the forest and discovering it yourself.

We agree that the latter is a terrible scenario, so we're going to do a better job keeping everyone informed moving forward. Watch for our weekly release notes blog recapping everything that was launched in the previous week!

This week, we launched release 6.4.4. You can find the release notes here: 6.4.4 Release Notes.

Read on to discover some of the more interesting features released today.

Provision AWS EC2 virtual machine with Ansible

This tutorial explains how to manually provision an AWS EC2 virtual machine using Ansible. Before you start, you should be familiar with the following concepts:

 The best way to get started is to install ansible and run playbooks manually on your local machine to provision a VM. The first section of this tutorial explains how to do that. However, manual execution isn't the best and most efficient way to run ansible playbooks, so we will take a look at the challenges and learn how to automate this workflow.

Security Best Practices At Shippable

In light of a recent blog post about a competitor's security vulnerabilities, I wanted to be completely transparent about our security best practices to reassure our customers that they're in good hands.

From the start, we've been very aware of the fact that when customers click on the Authorize button to grant us access to their GitHub or Bitbucket repositories, they trust us with their Intellectual Property.  This is a tremendous step, especially since we're all aware of hackers attacking almost every major site and stealing personal information.

Our security measures fall under two pillars, Product and Process, both of which are explained below.

Are you Stuck in The New DevOps Matrix From Hell?

If you google "matrix from hell", you'll see many articles about how Docker solves the matrix from hell. So what is the matrix from hell? Put simply, it is the challenge of packaging any application, regardless of language/frameworks/dependencies, so that it can run on any cloud, regardless of operating systems/hardware/infrastructure.

                     

The original matrix from hell: applications were tightly coupled with underlying hardware

 

Docker solved for the matrix from hell by decoupling the application from the underlying operating system and hardware. It did this by packaging all dependencies inside Docker containers, including the OS. This makes Docker containers "portable", i,e, they can run on any cloud or machine without the dreaded "it works on this machine" problems. This is the single biggest reason Docker is considered the hottest new technology of the last decade.

With DevOps principles gaining center stage over the last few years, Ops teams have started automating their tasks like provisioning infrastructure,  managing config, triggering production deployments, etc. IT automation tools like Ansible and Terraform help tremendously with these use cases since they allow you to represent your infrastructure-as-code, which can be versioned and committed to source control. Most of these tools are configured with a YAML or JSON based language which describes the activity you're trying to achieve.