resilient user experiences
DESCRIPTION
Presented at USI 2013 in Paris, France. Like what you've read? We're frequently hiring for a variety of engineering roles at Etsy. If you're interested, drop me a line or send me your resume: [email protected]. http://www.etsy.com/careersTRANSCRIPT
Resilient User ExperiencesMike Brittain ENGINEERING DIRECTOR, ETSY@mikebrittain
Interfaces and user experiencesthat adapt to technical andarchitectural failure.
Consider the followingtwo situations...
http://www.flickr.com/photos/caffeina/2144044776/
http://www.flickr.com/photos/17793901@N00/106331831/
/** * Creates a database connection. */ public function __construct($host, $user, $pass, $db) { parent::__construct($host, $user, $pass, $db);
if (mysqli_connect_error()) {
throw new DBConnection_Exception( sprintf("Error: %s, %s", mysqli_connect_errno(), mysqli_connect_error()));
}}
try { $conn = new DBConnection('viewsdb.host', 'db_read_user', 'ssssshh!', 'views_db');} catch (DBConnection_Exception $e) {
// TODO: Someone should figure out what to do if // we can't connect to the views db. throw $e;
}
NavigationLogo
Cute Picture
“Something’s wrong,try again...”
Critical path
Every back-end service is anopportunity for failure.
1
2 3
45 6
108
9
4
11
13
12
147
Are you showing your visitors to the door?
Adverts SLA: !"" ms
Non-blocking Ajax
Google Docs
Google Calendar
GMail
“Oops, we aren’t able to access click metrics right now, do not worry — your data is safe.”
Product design doesn’t stopat !""# availability.
OpsDev
Product
OpsDev
1
2 3
45 6
108
9
4
11
13
12
147
Operability reviews andpost-mortems
Operational Mindset
OpsDev Product
Business Priorities
Operational Mindset
OpsDev Product
!"#$ %&$'( )*+ $++*+ ,$-!.",$
This is hard
... but the benefits are great.
Merci!These slides will be available atmikebrittain.com/talks
Say “Hello!”[email protected]
@ mikebrittain
Resilient User Experiences