We design for it, plan for it and hope it never arrives... but just like that ugly sweater on Christmas, problems in our applications show up at the worst possible times! It's usually when your organization's systems are at their highest load, meaning every minute your application isn't functioning your organization is loosing money and customers! At this point there's a strong urge to do more planning up front, or eliminate most of those pesky connected systems or third party vendors that aren't as stable as you would like... but you can keep those vendors and systems and create a resilient application! You don't need that "big bang" deployment that takes months to plan or be afraid to migrate systems to the cloud.
In this talk we'll cover the some of the principles of constructing resilient cloud applications, starting with transient error handling, diagnostics and building fallback patterns into the application. Then we'll move on to how to incrementally update your application to support newer foundations, external services and vendors without impacting the current infrastructure. Then we'll discuss strategies for limiting your roll-out to ensure it's successful before releasing it to everyone. As we cover areas we'll be adding these items to a small e-commerce project and demonstrating how you can simulate failures to validate the effectiveness of these updates.