/altitude-ci-cd-workshop-1

Practical exercises for "Building a continuous deployment pipeline" workshop at Altitude 2017

Primary LanguageHCLMIT LicenseMIT

Building a Fastly continuous deployment pipeline

This repository contains the files and excercises needed to participate in the Fastly Altitude SF 2017 workshop "Building a continuous deployment pipeline".

Welcome! The goal of the workshop is to build a continuous deployment pipeline around an example Fastly config. Combining Fastly’s 5-second deploys, API control, and some open-source tooling (Travis, Terraform) attendees will contribute live changes and see their results in the demo.

Prerequisites

  • Have a GitHub account
  • Have a machine with a terminal prompt, Make and Ruby installed (*not required if using provided workstation)

Install:

Altitude attendees will be provided with a pre-provisioned server with all software and files needed already installed for you convienince. The conncetion details will be handed out to you.

  • Create a new GitHub repository, called altitude-ci-cd-workshop.
  • ssh -A altitude@<IP of host assigned to you>
  • cd workshop
  • git remote add origin git@github.com:<USERNAME>/altitude-ci-cd-workshop.git

Alternatively if you aretrying this at home:

  • Fork the GitHub repo: https://github.com/fastly/altitude-ci-cd-workshop
  • Clone the repo to a local directory on your machine:
    • Via SSH: git clone git@github.com:<USERNAME>/altitude-ci-cd-workshop.git
    • Via HTTP: git clone https://github.com/<USERNAME>/altitude-ci-cd-workshop.git
  • Change directory into the repo: cd altitude-ci-cd-workshop
  • Install the dependencies make install
    • This will install the Terraform binary to your $HOME directory and link your $PATH. Permission may be required.
    • If you already have Terraform and the Travis gem installed on your machine or would prefer to install manually, skip this step.
  • You're good to go!

Exercises:

To start, follow the tasks in the exercises directory:

  1. Define a Fastly service with Terraform
  2. Initialize remote state persistence
  3. Configure continuous deployment with Travis