Hootsuite is an application for managing multiple social media accounts across several networks from one place. Starting out in 2008 as a PHP monolith, the company decided to transition to SOA in 2013, and in this video on Microservices.com, Adam Arsenault discusses the move and how they are managing the growing microservices landscape.
Soon after the transition, they realised that the giant, monolithic team could work more efficiently if they split up, creating a number of smaller teams with independent goals and their own autonomy. As the communication between teams dwindled, exacerbated by the teams’ growth in size, they began experiencing runtime issues, integration issues, and more. One of the major problems was the interdependencies meaning changes to one area of the application to break things somewhere else, so they put a lot of emphasis on increasing the visibility across teams and services.
Arsenault discusses the service graph, and how the single node of the monolith architecture becomes increasingly more complex as you begin deploying microservices with interdependencies. So, they developed an API for health checking and monitoring, creating multiple endpoints to do different things. These include returning data about the service or app, getting service status, as well as overall system status, and allowing the user to traverse the service graph and move down service dependencies to perform actions without needing direct access to the relevant service.
Since the API uses the connections of the application itself, there is no major setup required. Users get fast access to real-time exploration and monitoring of the services. Every night, a new picture of the graph is generated to show additions, removals or changes to any services, allowing the team to explore system changes over time and learn how it happens.
Arsenault goes on to demo the Voltron app they use for showing subsets of the graph in real-time to see when things go up and down, and he highlights the importance of websockets for synchronising the views so everybody sees the same thing in real-time without raising performance concerns. He reminds viewers that visibility empowers, he promotes the early creation of SOA tools (automation, identifying and fixing problems early, etc), and encourages the simplification of status checking, as performed by their API with support from standardisation and sharing status checks between projects.
The tool is stable for monitoring and exploring the Hootsuite service graph, but Arsenault admits it is still evolving. He goes into far more detail in the video, so if you’d like to find out more, hit Play below.