Overview
Syllabus
Architectural Patterns of Resilient Distributed Systems
Resilience is the ability of a system to adapt or keep working when challenges occur
Decomposing into subsystems independently intolerant to harvest degradation but the application can continue if they fail You can only provide strong consistency for the subsystems that need it Orthogonal mechanisms (stote vs functionality)
Insights from Cook's model Engineering resilience requires a model of safety based on: mentoring, responding, adapting, and learning System safety is about what can happen, where the operating point actually is, and what we do under pressure Resilience is operator community focused
Thinking about building system resilience using a single discipline is insufficient. We need different strategies.
Evolution of our purging system from vi to v3 Used Bimodal Multicast (Gossip protocol) to provide extremely fast purging speed Desian concerns & system evolution
Faild allows us to fail & recover hosts via MAC- swapping and ECMP on switches Do immediate or gradual host failure & recovery Watch Joao's talk SREcon15
Resiliency and testing are correlated. TEST! Versioning from the start - provide an upgrade path from day 1 Upgrades & evolvability of systems is still tricky. Mixed-mode operations need to be common Re-examine the way we prototype systems fastly
Taught by
Strange Loop Conference