During our SOA transition at Hootsuite, we have noticed that visibility into our service relationships, dependencies and status is paramount to keeping our team, our build pipeline and application running smoothly. I’d like to share with you an API we baked into our SOA architecture that enables us to explore our applications service dependency graph in real time.
How Hootsuite Manages Its Growing Microservice Landscape
1. Service Explosion
HOW HOOTSUITE MANAGES ITS
GROWING MICROSERVICE LANDSCAPE
Specialist Software Developer - Mobile Web and APIs
Adam Arsenault
@Adam_Arsenault
2.
3. ● Road to SOA
● Service Graph
● Voltron
● Demo
What We’ll Talk about
App
S2
S3
S4
S1
4. ● Founded in 2008
● PHP Monolith
● SOA started in 2013
● Hyper growth
● Continuous Integration
Road to SOA
5. “Organizations which design
systems ... are constrained to
produce designs which are copies
of the communication structures
of these organizations”
- Melvin Conway
8. Ex. 1 - Integration Failures
● Dev merges changes
● Changes go to staging
● Integration tests fail
● Release pipeline frozen
KABOOM!!
!!
9. Ex. 2 - Production Downtime
● Service goes down in production
● On call / teams affected get
notifications
● Sift through flood of notifications to
figure out what’s broken
KABOOM!!
!!
21. Dependency
Something that a service needs to
function properly.
Types:
1. Internal
2. Traversable
App
Cachedb S1
22. /status/about
Returns metadata information about
the service or app such as version,
description, maintainers, links to
documentation, and gets the status
of each individual dependency.
24. /status/aggregate
Returns the overall status by
checking all registered status checks
and giving a simple response.
Examples:
● OK
● CRIT - error message
OK
36. “When there is a production issue, I see lots of
people go to Voltron to perform diagnostics on
what might be wrong”
Geordie Henderson - VP Software Development
37. “Voltron is often the first to tell us when
snowflake is down”
Brandon Okert - Junior Software Developer Publisher
38. “When a critical service goes down, everything
starts alerting and reporting problems, but
Voltron gets through the noise by letting you
drill down”
Michael Reid - Senior Software Developer Platform
39. “We suspected the connection between
dashboard and Billing Service was broken, but
Voltron told us the communication channel
was okay.”
Martin Jung - Software Developer Mobile Web and APIs