Cherry's tale

from manual to automation

Cherry is a standard

"Let's build an MVP"

  • Have changing teams
  • Require fast development and deployment cycles
  • Want something that doesn't breakĀ 
  • Grow really fast once they hit it off

Often ...

Highlights

May, 2017

Mar, 2018

version: "3"

services:
  app:
    container_name: cherry-api
    build:
      context: .
      dockerfile: Dockerfile
  ...

  orient:
    image: orientdb:2.2.28-spatial
    container_name: orientdb
    volumes:
      - "orientdb:/orientdb/databases"
      - "orientdb_backup:/orientdb/backup"
    ports:
      - 2424:2424
      - 2480:2480
    env_file:
      - ./env/development

volumes:
  orientdb:
  orientdb_backup:

Standard docker-compose.yml

Host OS

Docker Engine

docker network (foldername_default)

Node App

OrientDB

$ docker-compose up

run

  • Environment woes
  • Versioning woes
  • Setup time slack

Create image

Push image

SSH to remote

Pull image

Run compose

Create image

Push image

SSH to remote

Pull image

Run compose

#!/bin/sh

Create new task definition

what to deploy

Create Service

Deployment

Deployment

Where to deploy

(1) Build

(2) Push

(3) Create new task definition

(5) Update service

(6) Deploy

(6) Deploy

app.cherry.expert

api.cherry.expert

Compute
Compute
Compute
Compute
  • Zero down time deployments
  • No SSH deployments
  • Auto recovery
  • Scale horizontally

We follow a hybrid agile methodology

Requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams and their customer/end users

Which also means

  • Requirements being added on the fly
  • Sprints having more bandwidth then all SEA-ME-WEs combined
  • Having 4 product owners because the real one is on vacation
  • Whatever it takes, velocity should improve

Node App

OrientDB

JMeter

Cherry

#!/bin/sh

1) Create PR

2) Invokes hook

3) Run tests

4a) Failed/Rejected

4b) Passed/Merged

10

Cherry's tale: From manual to automation

By Mohammad Umair Khan

Cherry's tale: From manual to automation

  • 762