150 likes | 248 Views
Design For Failure Is The Path To Success In Cloud. Ashay Chaudhary. Requirements. Journey thru the computing models. Mainframe Desktop Client-Server Internet Cloud Computing. Reliability Availability Serviceability Performance + Security + Agility. Evolution of Requirements.
E N D
Design For Failure Is The Path To Success In Cloud Ashay Chaudhary
Requirements Journey thru the computing models
Mainframe • Desktop • Client-Server • Internet • Cloud Computing • Reliability • Availability • Serviceability • Performance + • Security + • Agility Evolution of Requirements
Availability Non-Cloud Model
Design for Non-Failure • Deploy with Redundancy • Manage Effectively Guiding Principles
Design for Non-Failure • Quality Hardware • Deploy with Redundancy • Specialty Hardware • Manage Effectively • Expert Staff • Processes
Availability Cloud Model
Design for Failure • Design for Redundancy • Monitor Extensively • Track Dependencies Guiding Principles
Assume nothing • Expect failures • Anywhere and everywhere • If it is available now, doesn’t mean it is there later • Failures cascade • Unhandled failures propagate • Poorly handled failures adds complexity • Difficulty increases exponentially with complexity • Embrace failure, make it a first class citizen Design For Failure
Unhandled failures is a very bad idea • Poorly handled trivial failure in one part becomes a critical one somewhere else • Two types of failures: Transient and Resource • Transient failures are difficult, treat them like Resource failures and fail fast • Delays are transient failures, define response time guarantees • Failure injection is a lifestyle Handle All Failures
Eliminate single points of failure • Architect distributed applications • Minimize duration of statefulness Design For Redundancy
Self assess and report health • Complementary external monitoring • Load and latency monitoring • Proactively restart components Monitor Extensively
Identify all dependencies • Hardware, 3rd Party Libraries, Other servers, Network • Infrastructure/Platform services, External services • Your own components • Track their health and availability Track Dependencies
If there’s only one thing you could do • Design for Failure • It is a paradigm shift • It is a cultural change • It is not easy • It is the key to success in the cloud Key Takeaways
Ashay Chaudhary Cloud Consultant Corporate Education Private Cloud Solutions Highly Scalable SaaS Applications SaaS Business Intelligence & Analytics ashay@kloudpros.com @ashay_c