BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"
-
Upload
daniel-bryant -
Category
Technology
-
view
163 -
download
0
description
Transcript of BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"
![Page 1: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/1.jpg)
Cloud Developer’s DHARMA… redefining ‘done’ for Cloud applica3ons
Daniel Bryant CTO, Instant Access Technologies
@taidevcouk
![Page 2: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/2.jpg)
@taidevcouk 19/02/2014
![Page 3: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/3.jpg)
epoints.com 2012/13 Upgrade…
@taidevcouk 19/02/2014
• Increasing traffic – Scalability being stretched
• Increasingly diverse requirements
• Our starPng point – Developers creaPng monolithic applicaPon – Manual QA – OperaPons deploying to data center
![Page 4: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/4.jpg)
Core Changes…
• Service-‐Oriented Architecture
• Cloud-‐based deployments
• DevOps Culture
@taidevcouk 19/02/2014
![Page 5: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/5.jpg)
Core Changes…
• Service-‐Oriented Architecture – TwiTer’s Story (bit.ly/1j1WbmI)
• Cloud-‐based deployments – Tonight!
• DevOps Culture – LJC Event March 13th 7pm
@taidevcouk 19/02/2014
![Page 6: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/6.jpg)
Moving to the Cloud
• IAT chose Amazon Web Services (AWS) IaaS
• Great choice, but… – Made a few mistakes – Learnt lots of lessons
19/02/2014 @taidevcouk
![Page 7: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/7.jpg)
We’ve created a “Cloud Developer’s DHARMA” to act as a checklist when building Cloud apps
19/02/2014 @taidevcouk
![Page 8: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/8.jpg)
dharma /ˈdɑːmə,ˈdəːmə/ noun 1. Signifies behaviors that are considered to be in
accord with order that makes life and universe possible (Hinduism)
2. "cosmic law and order”, but is also applied to the teachings of the Buddha (Buddhism)
19/02/2014 @taidevcouk
![Page 9: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/9.jpg)
Documented (at the edge)
Highly cohesive/loosely coupled (all the way down)
Automated from commit to Cloud
Resource aware Monitored thoroughly
AnPfragile
19/02/2014 @taidevcouk
![Page 10: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/10.jpg)
Documented (at the edge)
Highly cohesive/loosely coupled (all the way down)
Automated from commit to Cloud
Resource aware Monitored thoroughly
AnPfragile
19/02/2014 @taidevcouk
![Page 11: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/11.jpg)
19/02/2014 @taidevcouk
![Page 12: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/12.jpg)
Edge DocumentaPon is Vital
• Swagger – helloreverb.com/developers/swagger
• Mashery’s IODocs – www.mashery.com/product/io-‐docs
• Google’s Discovery Documents – developers.google.com/discovery/v1/using
19/02/2014 @taidevcouk
![Page 13: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/13.jpg)
19/02/2014 @taidevcouk
![Page 14: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/14.jpg)
19/02/2014 @taidevcouk
![Page 15: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/15.jpg)
19/02/2014 @taidevcouk
![Page 16: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/16.jpg)
Documented (at the edge)
Highly cohesive/loosely coupled (all the way down)
Automated from commit to Cloud
Resource aware Monitored thoroughly
AnPfragile
19/02/2014 @taidevcouk
![Page 17: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/17.jpg)
High Cohesion / Loose Coupling…
…all the way down • Public API – PayPal (bit.ly/1hnZNly)
• Architecture – Services – Components
19/02/2014 @taidevcouk
![Page 18: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/18.jpg)
High Cohesion / Loose Coupling…
• Code – SOLID Principles
• Datastores / Caches – Fault tolerance – Zero-‐downPme deployments – MigraPon and upgrades
19/02/2014 @taidevcouk
![Page 19: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/19.jpg)
Documented (at the edge)
Highly cohesive/loosely coupled (all the way down)
Automated from commit to Cloud
Resource aware Monitored thoroughly
AnPfragile
19/02/2014 @taidevcouk
![Page 20: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/20.jpg)
Automated from Commit to Cloud
19/02/2014 @taidevcouk
• ConPnuous IntegraPon/Delivery • Jenkins Build Pipeline Plugin (bit.ly/1hq9XSN)
![Page 21: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/21.jpg)
Our Build Pipeline
• Component Build – Compile – Unit Tests (surefire) – IntegraPon Tests (failsafe)
• Deployment onto QA Cloud – Python Scripts + Chef to provision – Verify success using Python
19/02/2014 @taidevcouk
![Page 22: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/22.jpg)
Our Build Pipeline • Acceptance Tests – Cucumber and Selenium – Work in progress…
• Performance Tests – Jmeter – Jenkins Jmeter performance plugin
• Staging / Live Deployment – Human-‐based condiPonal operaPon
19/02/2014 @taidevcouk
![Page 23: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/23.jpg)
Documented (at the edge)
Highly cohesive/loosely coupled (all the way down)
Automated from commit to Cloud
Resource aware Monitored thoroughly
AnPfragile
19/02/2014 @taidevcouk
![Page 24: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/24.jpg)
Deployment Planorm: What you’ve got…
19/02/2014 @taidevcouk
![Page 25: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/25.jpg)
What you think you want…
19/02/2014 @taidevcouk
![Page 26: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/26.jpg)
What you get…
19/02/2014 @taidevcouk
Fact: 9 out of 10 cheetahs prefer the taste of an Ops team over Enned food
![Page 27: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/27.jpg)
Thou Shalt Know thy Cloud…
• AWS EBS 100 IOPS (by default) – My Mac SSD does 49K IOPS
• 1000Mbps network max transfer ~125Mb/s – My Mac does 400+ Mb/s SequenPal Write to SSD
Reference for Mac staPsPcs: bit.ly/1tJZH8
19/02/2014 @taidevcouk
![Page 28: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/28.jpg)
Thou Shalt Know thy Cloud…
• “Noisy [virtual] Neighbours” – My Mac only deals with noisy colleagues
• “Things fail all the Pme [in the Cloud]” – My Mac is quite reliable…
19/02/2014 @taidevcouk
![Page 29: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/29.jpg)
Documented (at the edge)
Highly cohesive/loosely coupled (all the way down)
Automated from commit to Cloud
Resource aware Monitored thoroughly
AnPfragile
19/02/2014 @taidevcouk
![Page 30: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/30.jpg)
Monitor All The Things!
• Infrastructure monitoring – Nagios – Zabbix – Splunk – AppDynamics
19/02/2014 @taidevcouk
![Page 31: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/31.jpg)
Component Metrics
19/02/2014 @taidevcouk
• Dropwizard’s Metrics – metrics.codahale.com
• Nenlix’s Servo – github.com/Nenlix/servo
• Etsy’s StatsD – github.com/etsy/statsd/wiki
![Page 32: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/32.jpg)
Gauges, Counters, Meters, Timers…
19/02/2014 @taidevcouk
![Page 33: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/33.jpg)
Health Checks
19/02/2014 @taidevcouk
![Page 34: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/34.jpg)
Documented (at the edge)
Highly cohesive/loosely coupled (all the way down)
Automated from commit to Cloud
Resource aware Monitored thoroughly
AnPfragile
19/02/2014 @taidevcouk
![Page 35: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/35.jpg)
AnPfragile
19/02/2014 @taidevcouk
![Page 36: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/36.jpg)
Black Swan Theory
“…is a metaphor that describes an event that comes as a surprise, has a major effect, and is oten inappropriately raPonalized ater the fact with the benefit of hindsight”
Nassim Nicholas Taleb, The Black Swan
19/02/2014 @taidevcouk
![Page 37: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/37.jpg)
AnPfragile
• The opposite of fragile? – Robust… – AnPfragile…
• Nenlix are best-‐in-‐class – bit.ly/1gs5n3q
• System must be robust first!
19/02/2014 @taidevcouk
![Page 38: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/38.jpg)
Design for Failure
• Design paTerns – Timeouts / retries – Bulkheads / circuit-‐breakers
• InspiraPon – Chris Richardson (slidesha.re/1t3vsg) – Nenlix (bit.ly/1h5GMid)
19/02/2014 @taidevcouk
![Page 39: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/39.jpg)
Real AnPfragility
• Autoscaling
19/02/2014 @taidevcouk
![Page 40: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/40.jpg)
AnPfragile PaTerns
• Stateless components
• Distributed data stores / caches
• Eventual consistency
• Asynchronous communicaPon – Message / event driven
19/02/2014 @taidevcouk
![Page 41: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/41.jpg)
Documented (at the edge)
Highly cohesive/loosely coupled (all the way down)
Automated from commit to Cloud
Resource aware Monitored thoroughly
AnPfragile 19/02/2014 @taidevcouk
So, Cloud Apps are ‘done’ when…
![Page 42: BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"](https://reader033.fdocuments.in/reader033/viewer/2022051818/54c0f21d4a79592d278b464e/html5/thumbnails/42.jpg)
Thanks For Listening
• Massive thanks to all the IAT team!
• This is a beta version talk – Feedback is most appreciated!
• QuesPons / comments? – [email protected] – @taidevcouk
19/02/2014 @taidevcouk