DEPLOYING TWO APPS, THREE MICROSERVICES AND ONE WEBSITE WITH ZERO HAIR LOSS: WHAT WORKED FOR US Charles Korn 1
THE PROJECT 2
Architecture 3
ARCHITECTURE AngularJS Website Event log Event log WordPress content content Golang Golang Golang nginx nginx service service service AWS EC2 instance Docker container Private S3 bucket 4
ARCHITECTURE Service A Service B Service C v10 v13 v42 Service A v11 Service A v10 5
ARCHITECTURE Service A {""eventType":" "eventA"," ..."} {""eventType":" "eventB"," ..."} v10 Service A {""eventType":" "eventA"," ..."} {""eventType":" "eventB"," ..."} v11 {""eventType":" "eventC"," ..."} {""eventType":" "eventB"," "newAttr":" "1234""} Service A {""eventType":" "eventA"," ..."} {""eventType":" "eventB"," ..."} v10 {""eventType":" "eventC"," ..."} {""eventType":" "eventB"," "newAttr":" "1234""} 6
ARCHITECTURE 7
ARCHITECTURE 8 days Few hours Sources: iOS app store from appreviewtimes.com as at July 4; Google Play from official Android developers blog 8
ARCHITECTURE Illustration: www.rpkessler.com 9
Deployment pipelines 10
DEPLOYMENT PIPELINES Photo: Welshsk / Wikipedia 11
DEPLOYMENT PIPELINES Build Test Package Dev QA Staging Production 12
DEPLOYMENT PIPELINES Dev “dev please” “QA please” QA Staging “staging please” Production “production please” 13
DEPLOYMENT PIPELINES 1. Download new Docker image (~5 s) 2. Stop old version (near instant) 3. Start new version (~1 s) Photo: creativereview.co.uk 14
DEPLOYMENT PIPELINES Dev QA Staging Production 15
DEPLOYMENT PIPELINES Apps 16
DEPLOYMENT PIPELINES Infrastructure (although it would have been nice) 17
MONITORING 18
MONITORING 1. Go to website 2. Sign up for an account 3. Go to app 4. Complete introduction 5. Check basic interactions work 6. Check content is shown as expected 19
THANK YOU ckorn@thoughtworks.com
Recommend
More recommend