Expert Series: Microservices Observability with Adnan Rahić
Microservices have revolutionized software architecture, providing teams with the agility to embrace continuous integration and delivery, fostering innovation, and facilitating rapid adaptation to dynamic market conditions. This approach offers numerous advantages, including scalability, accelerated development cycles, and enhanced data security, among others.
Recently, we had the opportunity to speak with Adnan Rahić, a professional in the field, about the critical importance of observability in navigating the complexities of microservices. In this article, we delve into Adnan’s responses to key questions, shedding light on the significance of observability and its impact on decision-making in the realm of microservices.
Observability is crucial in this landscape as it provides a clear view into the inner workings of microservices, allowing teams to understand and troubleshoot issues effectively. It serves as a vital tool for maintaining system health and preventing potential problems from impacting production.
These are the questions we asked Adnan in our conversation. Below you will find a small glimpse of what we talked about, but you can watch the full video for more information:
- Why is observability important in microservices?
- What are the main challenges organizations face in achieving observability in complex, distributed systems with numerous microservices?
- How does observability contribute to better decision-making in the context of microservices?
- What future trends in observability for microservices do Adnan anticipate?
Microservices Observability: Understanding its Crucial Role
In the microservices field, understanding the dynamics of the system is critical, and observability is the key. Observability, in this context, is the ability to obtain clear information about the performance, interactions and behaviors of microservices.
The first thing we asked Adnan is why he thinks observability is so important in microservices. He mentions that it is really hard to give an objective point of view on why observability in microservices is crucial. However, he shares with us the key reasons why he believes observability is crucial for him:
“With observability you can finally understand what’s happening within your distributed system. Due to the distributed nature, it is very challenging to comprehend the actual activities of the system, given the communication between services. The most important aspect of observability for microservices is to genuinely know and figure out how to troubleshoot what’s happening between these services.”
Adnan highlighted a second crucial aspect of observability in microservices. He stated, “Without having a service map, without having an overview of all of your services, is almost impossible to know what your system is doing. Especially if you have a distributed team. If someone new joins the team, how do you explain to them what is happening? It’s incredibly difficult to explain and get started on contributing to this system.”
Managing and understanding a distributed system without a clear visual representation of its components is challenging. As Adnan points out, this is especially complicated when dealing with distributed teams or new team members. Here observability is even more critical. Also, observability, as he emphasized, plays a key role in preventing problems from reaching production, contributing to a more stable and reliable system.
Challenges in Achieving Observability
Adnan pinpoints the main challenge in achieving observability in microservices as handling vast and diverse data volumes. “It’s about the data. Handling these data volumes and the different types of data is the main challenge. The sampling rates are key because you are not always going to store everything, so you need to figure out which percent of the data you want to keep.”
Within this complexity of data, Adnan raises another critical concern: the complexity of tooling. He states that “there are a lot of tools out there, and picking one tool that can do all of the things that you really want is the ideal setup, but it is hard.”
Adnan also highlights the challenges when using distributed tracing, particularly the potential difficulties in code instrumentation efficiency. He states, “It can be pretty hard; it can be really hard to do code instrumentation efficiently. You can fall into doing over-instrumentation.”
What about the future? AI and Opentelemetry in Observability
To conclude our conversation with Adnan, we asked him about his thoughts on future trends or developments that we can anticipate in the near future. As expected, the conversation turned to Artificial Intelligence. According to Adnan, AI is set to play a pivotal role in the times to come. “We are not robots,” he highlights. Humans excel at critical thinking and problem solving, but repetitive tasks are not our strength. That’s why he foresees AI making a significant contribution by automating tasks and solving errors that might escape our human perception.
In addition to AI, Adnan mentions the maturation of distributed tracing, particularly through OpenTelemetry. “The more we use OpenTelemetry as the standard for tracing, the more it will mature and become the standard. The more the suppliers accept it and the more we engineers adopt it, the more it will improve.” Adnan believes that OpenTelemetry will be the standard solution for effective tracing in the future. What do you think? Feel free to leave us a comment on the Expert Series video.
About Adnan Rahić
Adnan is a Developer Advocate and ex-entrepreneur. Which, as he says, means he co-founded a startup that failed. “But every failure is a learning experience,” as he states. The product was an online learning platform and Adnan used the knowledge he gained from the point of view of an engineer to move into educating others about coding, software development, and building products of their own. He ended up teaching programming courses and publishing a video course.
This transition meant Adnan moved from being a software developer to doing something called Developer Relations (DevRel). For the last 5 years he has been a Developer Advocate in the observability and big data space. Adnan is now leading DevRel at Tracetest.io, an open-source trace-based testing tool part of the Kubeshop.io startup accelerator.
Check out his portfolio on Bento, and follow him on X (formerly Twitter) or LinkedIn.