Building Resilient User Experiences

4,930 views
4,831 views

Published on

Video of this talk from the Velocity Conference 2012: http://www.youtube.com/watch?v=bM0yL0eQ9EM

Large-scale sites are complex systems, where every page is generated with data pulled from multiple back-end data stores and services. Yet, not every piece of data on the page is critical to the user experience. The front-end of your site (i.e. front-end applications, templates, and user interface) needs to be designed to tolerate service outages. We can achieve this by teaching our product design teams about working with an operational mindset, and having our product teams inform our engineering and operations teams about business priorities so that they can anticipate the right patterns to use for fault-tolerance.

Published in: Technology, Business
0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,930
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
46
Comments
0
Likes
9
Embeds 0
No embeds

No notes for slide

Building Resilient User Experiences

  1. 1. Resilient User Experiences Mike Brittain DIRECTOR OF ENGINEERING, ETSY @mikebrittain
  2. 2. Interfaces and user experiences that adapt to technical and architectural failure
  3. 3. /** * 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())); }}
  4. 4. 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 cant connect to the views db. throw $e;}
  5. 5. Critical path
  6. 6. Every back-end service is an opportunity for failure.
  7. 7. 1 4 9 5 6 8 2 3 10 4 11 7 14 7 13 12
  8. 8. Are you showing your visitors the door?
  9. 9. < 400 ms
  10. 10. Non-blocking Ajax
  11. 11. Google Calendar Google Docs
  12. 12. GMail
  13. 13. “Oops, we aren’t able to access click metrics right now, do not worry — your data is safe.”
  14. 14. Product design doesn’t stop at 100% availability.
  15. 15. Dev Ops Product
  16. 16. 1 4 9 5 6 8 2 3 10 4 11 7 14 7 13 12
  17. 17. Operability reviews and post-mortems
  18. 18. Operational MindsetDev Ops Product
  19. 19. Operational MindsetDev Ops Product Business Priorities
  20. 20. page views for error template
  21. 21. This is hard
  22. 22. ... but the benefits are great.
  23. 23. Flickr: striatic http://www.flickr.com/photos/34427466731@N01/2192192956/ Flickr: roboppyPHOTO CREDITS http://www.flickr.com/photos/51035735481@N01/163374138/ Flickr: jamesjyu http://www.flickr.com/photos/32593095@N00/3465022/ Flickr: circulating http://www.flickr.com/photos/26835318@N00/2318226026/

×