Resilient User Experiences Mike Brittain , @mikebrittain
May 06, 2015
Resilient User Experiences
Mike Brittain!"#$%&'# '( $)*")$$#")*, $&+,
@mikebrittain
Interfaces and user experiencesthat adapt to technical and
architectural failure
/** * 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;}
Critical path
Every back-end service is anopportunity for failure.
1
2 3
4
5 6
10
8
9
4
11
13
12
7
14
7
Are you showing your visitors the door?
! "## 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.
Product
OpsDev
1
2 3
4
5 6
10
8
9
4
11
13
12
7
14
7
Operability reviews andpost-mortems
Operational Mindset
OpsDev Product
Business Priorities
Operational Mindset
OpsDev Product
!"#$ %&$'( )*+ $++*+ ,$-!.",$
This is hard
... but the benefits are great.
Flickr: striatichttp://www.flickr.com/photos/34427466731@N01/2192192956/
Flickr: roboppyhttp://www.flickr.com/photos/51035735481@N01/163374138/
Flickr: jamesjyuhttp://www.flickr.com/photos/32593095@N00/3465022/
Flickr: circulatinghttp://www.flickr.com/photos/26835318@N00/2318226026/
PHOTO CREDITS