Head in the clouds
At 360Locate we like to keep up to speed with the industry’s leading new technologies. This means you sometimes have to get out of your bubble and get out into the real world. Techorama 2018 provided an excellent opportunity to do so for us. Techorama is a known name from the conferences they organize in Antwerp Belgium, but this was the first time they organized an event under the same name in Ede, the Netherlands. For a young event, it already bolstered some big sponsors, among which Microsoft. Since there had not been a Microsoft-oriented conference in the Netherlands for a while, they jumped in with the big guns, having Azure Executive Vice President Scott Guthrie as the keynote host. Most of the other sessions also featured topics in the Microsoft / Azure / .NET ecosystem. Perfect for us, since our technology stack is also based on .NET and we are looking into what Azure can provide for our business cases.
Practice makes perfect
A lot of talks at the conference thus emphasized Azure’s latest and greatest. There were talks about Azure Container Services (Docker / Kubernetes), Azure Service Fabric (Microservices), and Azure Event Hub / SignalR hub. All these talks were interesting but highly theoretical. Therefore we focused also on sessions hosted by other companies operating in the Azure stack, to get a feeling for how they leveraged Azure in their actual business cases.
One of these sessions focused on how to get a handle on the status of your production systems. The speaker worked at a company that provides charging points for electric vehicles which are connected to a central managing platform. He and his team had end-to-end responsibility for one of the back-end components to manage these charging points. This meant that they were responsible for building, testing, deploying, and 24/7 support for this specific component. When he described more about their process, we realized that at 360Locate we face the same issues they faced in scaling development and in managing the support of a production environment.
The point he made that hit home most was about monitoring. He himself had faced the pain of being woken up in the middle of the night because of a production issue, stumbling towards your desk in his bathrobe, and then trying to figure out what is going wrong. At that critical moment, you need all the help you can get to know where to focus. Most dashboard monitoring tools you can configure start out with a configuration with a lot of fancy graphs about CPU performance, memory usage, disk problems, and a myriad of other metrics. At 360Locate we tried several of these tools before but never came to a satisfactory result. A screen with just a few important business metrics will give you a much clearer picture of where in the product issues are surfacing and how they impact the client. So for example, if your business is in developing a web shop, you would track the number of orders being placed versus the number of orders being shipped. So then if the amount of orders being placed suddenly drops to zero, you know to look at the Ordering API instead of the Shipping API. You can now check if this component was recently deployed and maybe contact an expert on that exact component to come in and help out. Only at that point, when starting to dig into the cause of the issue, more metrics start to add value.
Of course, this is not rocket science, but it made us realize where we had been going wrong in our previous attempts. So we put this knowledge into action and created a new dashboard Azure Application Insights and installed a TV for it to be displayed on.
We are now tracking the number of connected devices and the number of messages we are processing and storing. Adding the number of notifications distributed to our clients allows us to see how information flows between the components. This is the first start and probably not perfect yet. But we are evaluating, and finding the correct metrics to track and the best way to visualize them. Having these metrics on display the whole day also helps us learn more about the natural cycles in our product and visualizes more about the use we are seeing on a day-to-day basis.
This is not all we took away from the conference, but it is an important step in improving the stability of our product and in the working process of the development team. We’re actively looking to apply the other findings and new technologies we learned about in the future, so stay posted on more blogs on that!