Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Night of the CI: Bright Health

Night of the CI: Bright Health

A very short slide for the Austin Cloud User Group Night of the CI meeting. This is a snapshot of how Bright Health is building software at the start of our life as an engineering team.

Richard Boyd, II

February 22, 2017
Tweet

More Decks by Richard Boyd, II

Other Decks in Technology

Transcript

  1. • Bright Health is a small show (>10 developers) and

    is just starting to build our MA front-end and APIs • Nothing is in production yet and won’t be until Q3 • Focus is on getting a simple CI pipeline working now, iterating later Requirements
  2. • Default VPC • Two EC2 Instances • One container

    running on each instance via systemd • ALB for basic load balancing Version 1: Architecture
  3. Version 1: CI Pipeline 1. GitHub: PR Hits master. 2.

    CircleCI: Webhook is fired to CCI, container is built. 3. Docker Hub: CCI pushes the image. 4. My boss: ssh into the instance, pull new container, modify service file, restart service.
  4. • Continuously Integrating code, but manually deploying artifacts • Development

    effectively stops while waiting for the build to complete • No ability to easily roll back Version 1: Downsides
  5. Version 2: Architecture • Default VPC • One ECS Cluster

    • One ECS Service running two containers • ALB for basic load balancing
  6. Version 2: CI Pipeline 1. GitHub: PR Hits master. 2.

    CircleCI: Webhook is fired to CCI, container is built. 3. AWS ECR: CCI pushes the image to the ECR. 4. AWS ECS: CCI runs a deployment script to create a task definition and update the service.
  7. • No versioning • Using one cluster and one environment

    • From start of build to new service roll out > 15 minutes • CircleCI only builds one container a time for our entire account Version 2: Downsides
  8. • Replace CircleCI with AWS CodeBuild and / or Jenkins

    • Create Clusters for Staging and Production • Introduce Semantic Versioning into our artifacts • Add in more automated testing Towards Version 3