Glue Work Makes the Dream Work Taylor Barnett (@taylor_atx)
Glue DevOpsDays Texas
Slide 2
Hypothesis: People dislike glue work because of bad, past experiences @transposit
@taylor_atx
Slide 3
The road to improving our experience of glue work has been narrow, slow, and with many road blocks @transposit
@taylor_atx
Slide 4
What is Glue? @transposit
Glue
@taylor_atx
Slide 5
Glue (verb): To integrate different parts of a system together that would otherwise be incompatible @transposit
@taylor_atx
Slide 6
“…the less glamorous - and often less-promotable - work that needs to happen to make a team successful.” -Tanya Reilly
@transposit
@taylor_atx
Slide 7
Glue can be a lot of different activities
Human Design Code @transposit
@taylor_atx
Slide 8
Patchwork of tools and services @transposit
@taylor_atx
Slide 9
Glue is complex @transposit
@taylor_atx
Slide 10
We often to have to solve for glue ourselves @transposit
@taylor_atx
Slide 11
“And you may ask yourself, “Well… how did [we] get here?” -Talking Heads
@transposit
@taylor_atx
Slide 12
First there was AWS… @transposit
@taylor_atx
Slide 13
Software supply chain
@transposit
@taylor_atx
Slide 14
We’ve solved old problems, but discovered new problems @transposit
@taylor_atx
Slide 15
APIs, APIs, APIs
@taylor_atx
Slide 16
Where do we go from here?
@transposit
@taylor_atx
Slide 17
Learn how to “outsource” well
@transposit
@taylor_atx
Slide 18
Vendor Engineering @transposit
@taylor_atx
Slide 19
Compatibility
Use cases
Team buy-in
@transposit
@taylor_atx
Slide 20
Ask good questions to gauge compatibility and fit What friction you can deal with and what is a dealbreaker?
@transposit
@taylor_atx
Slide 21
Calculate and qualify the cost to develop and operate Remove as much as labor as possible
@transposit
@taylor_atx
Slide 22
Consider the true cost of ownership and advocate internally Manage up to executive and finance teams
@transposit
@taylor_atx
Slide 23
Reward team members for doing this work well @transposit
@taylor_atx
Slide 24
@transposit
@taylor_atx
Slide 25
! @transposit
503 Service Unavailable
@taylor_atx
Slide 26
S3 Outage in 2017 @transposit
@taylor_atx
Slide 27
When they break, we could break
@transposit
@taylor_atx
Slide 28
Failure will happen, learn to handle it gracefully
@transposit
@taylor_atx
Slide 29
Things will go down, but how do we handle it and grow? @transposit
@taylor_atx
Slide 30
This is where the interesting problems live! @transposit
@taylor_atx
Slide 31
Problems like: - Connections
Progressive data presentation
Rate limiting
Versioning
Internet connectivity
Caching
Retry mechanisms
Validation
Error codes and messages
Service outages
SDK quality
Testing
Authentication @transposit
@taylor_atx
Slide 32
Some services or endpoints are offline: - Don’t disable everything! - Frontend circuit breakers - Non-critical services should fail silently, disable others intelligently - Don’t lead users down a broken path, disable what you can - Set expectations
@transposit
@taylor_atx
Slide 33
Authentication: - 6+ different common authentication types - How are they all being handled safely?
@transposit
@taylor_atx
Slide 34
Connections: - What if someone has a slower data connection? - How do things load or fail? - Progressive data presentation
@transposit
@taylor_atx
Slide 35
Rate limiting: - API retry issues - Requires some restraint and strategy - When do you tell the user?
! @transposit
429 Too Many Requests
@taylor_atx
Slide 36
Decoupling: - Decoupling services from vendors - Important that your glue code isn’t so tightly glued - API calls directly to an API without a thin wrapper make it hard to switch vendors
@transposit
@taylor_atx
Slide 37
Find ways to abstract the glue code
@transposit
@taylor_atx