Flow.io 

http://www.meetup.com/ContinuousDeliveryNYC/events/230740814/
Michael Bryzek
@mbryzek

@Yodle - http://www.yodletechblog.com/

CD system: Delta
https://github.com/flowcommerce/delta

CD is autit/transparency
not an opinionated ways to do things 
(when tests happen is an opinion)

Deploys are triggered by git tags
merging PRs creates tags
deploys automatically

microservice architecture

Travis for CI
debate: should require travis to succeed before allow merge?
no: because in emergency we still want to use same flow
CI is part of our process. do not expect CD tool to enforce

authn/z via github
webhooks w/ github (ignores payload from GH)

application dashboard: shows desired state vs last state 
(version/number of instances)

merge PR: 
* slack alert
* do it:
** sync repo + tags
** create tag
** set desired state to new version
** build docker image in dockerhub (`docker build .`)
** pull state using Scala/Akka every 30 seconds until docker image ready
** scale: 
*** create new cluster
*** once healthy move traffic
*** scale down old version

webapp speaks to API, API speaks to PGSQL in RDS
docker instances on ECS

"rollback is antipattern, roll forward"
"don't like 'deploy', see Martin Fowler separate deploy from sending traffic to"
"always scale up, assert healthy, before scale down"

delta config - yaml
initial number of instances: only used once
-> later uses current number of instances

5 engineers
>1500 releases, weekly >100, 20 releases/eng/week

roadmap
* deploy other than master branch
* dependency support w/in repo
* smarter traffic management
* better healthchecks
* more settings (enable/disable build in UI)
* UI/UX improve

CD very nice. 
every Friday we udate all projects to latest versions of every library
delta deploys itself

Q/A
All data stores are append-only
What is the cost of failure vs cost of inaction 
(credit card system is bad possible example)
Setup culture/process/alerting when break in prod
Healthcheck does verify DB connectivity, having env vars, etc