Upload
dave-clark
View
69
Download
1
Tags:
Embed Size (px)
Citation preview
Behaviour is in line with expectations:Mainly unaffected by application environmentMainly unaffected by infrastructure changesService quality is acceptable
Application instability is promoted when code is:Tightly coupled and overly complex / simpleDependent on 3rd party code / servicesUncoupled but fails to solve problems
We can promote application stability by:Understanding the problems we're solvingLearning from and adapting to failureTesting against expected outcomes
Over time we can expect:Existing bugs found and new bugs introducedNew requirements / enhanced functionalityPeople will join and leave project teams
We can promote application stability by:Understanding the problems we're solvingLearning from and adapting to failureTesting against expected outcomes
High level requirement analysisWho is using this application / feature?What is the impact of using /not using it?
When it comes to the “how to”....
We have to consider our approach:Develop custom features from the ground up?Leverage an existing library or service?A mixture of the above?
Additional factors should affect the choice....
Consider:Cost of implementation / maintenanceCost of failing to implement / maintainSpecific business rulesAvailable budgetTimeline
We can promote application stability by:Understanding the problems we're solvingLearning from and adapting to failureTesting against expected outcomes
Make a smaller MVP....
Prove a concept:Fail fast, review and adaptUnderstand challengesQuick implementationRemember to stop
Remembering to stopWhat are we trying to achieve?What should the specific outcomes be?Have we met / Can we meet the outcomes?
We can promote application stability by:Understanding the problems we're solvingLearning from and adapting to failureTesting against expected outcomes
Think carefully and ask questionsWill the application break if the service fails?What is the impact if the application breaks?What is the impact if it doesn't break?
3rd party service risk questions
What happens if the service provider:goes out of business?deprecates the API we're using?changes arrangements for API access?
Netflix infrastructure on AWS
"The best way to avoid failure is to fail constantly"
Source: http://techblog.netflix.com/2010/12/5-lessons-weve-learned-using-aws.html
Netflix contributing to the community
"we are now proud to announce that the source code for the founding member of the Simian Army, Chaos
Monkey, is available to the community."
Source: http://techblog.netflix.com/2012/07/chaos-monkey-released-into-wild.html
Netflix Simian Army
"The Simian Army is a suite of tools for keeping your cloud operating in top form. Chaos Monkey, the first member, is a resiliency tool that helps ensure that your applications can
tolerate random instance failures"
https://github.com/Netflix/SimianArmy