INTRODUCTION
Modern problems require modern solutions. Just a few years ago we noticed a trickle of interest from our clients in moving their old development and deployment methodologies to something more agile, something more modern, something more cloudy. We jumped on the containerisation bullet-train early on and have now become an expert in the field of cloud-ready continuous development and integration both in South Africa and globally. This is the core tenet of our vision for our Managed Observability Platform clients and as a CNCF member, we are uniquely positioned to provide services and support across a wide gamut of industries and verticals.
That initial trickle of interest became a groundswell and then most recently a veritable deluge. There is so much interest around cloud-ready and cloud-native computing that we can hardly keep up!
But in the modern era of distributed applications, microservices, and hybrid-cloud deployed applications and systems – legacy methods of monitoring are unsuitable. Monitoring is focused mainly on attempting to handle predictable system outages. The old ways were centered around reactive response to an issue that had already arisen.
CLOUD-NATIVE DEVELOPMENT
When an organisation decides to move to a more DevOps flavoured development process they start by deconstructing a monolithic application and reducing it to a set of independent microservices which when orchestrated as a whole behave identically to the original system for which they were designed to replace; at least that’s the idea but in reality, that process of deconstruction actually also introduces an across-the-board new layer of complexity, one the requires a proactive approach to dealing with issues.
Monitoring lets an organisation identify problems based on a predefined set of known failure states. You can’t know what you don’t know, and that is precisely where simple monitoring falls short. Monitoring is most definitely critical but in a cloud-ready-microservice world, we need to layer more on top of that. We need to be able to identify problems that we do not know about, we need to know what we don’t know.
WHAT IS OBSERVABILITY?
Observability originated in engineering control theory. The level of Observability over a system is measured by how well we can understand the internal state of that system given its external outputs. By layering various sets of instrumentation over a set of services that comprise a system, we can gain that insight very well. In fact, monitoring a microservice-based system isn’t really possible without getting proper observability first. Because the system is greater than the sum of its parts we must be able to understand every single part.
It is generally agreed in the industry that Observability consists of three major areas of interest:
- Logs
- Metrics
- Distributed Tracing
Logs are generated by services for the purposes of generating a record of events over time, how the service responded, which other services interacted with it, any handled exceptions the service experienced, and any unhandled exception, amongst others.
Metrics are a set of time-series measurements – over a set of services that comprise a system – in aggregation. These discrete measurements are encompassed by the likes of CPU Usage, System Load, Memory Usage, Disk IO rate, Network Traffic, Disk Usage Volumes. This can be on a per system or per-process level. In the cloud-native world, it’s important to have both.
Tracing involves insight directly into the inner working of a distributed microservice at the functional level. It’s possible to gain visibility into granular request rate, source and destination, even payload content itself and the ability to identify those functional components which have a contribution to performance degradation.
HOW DOES OBSERVABILITY IN K8S WORK?
LSD has pooled a set of best-of-breed tools into an engineered product that integrates the pillars of Observability and the functions of Monitoring into an integrated build-once-deploy-anywhere solution to containerised microservice workload optimisation. Through the use of metrics collection from base to canopy of a Kubernetes stack; Logs collection at an Operating system, Application level, Kubernetes system, and Microservice level, and Distributed Tracing at the source code level.
HOW DOES LSD PROVIDE OBSERVABILITY ENABLEMENT?
Through our dedicated team of Open Source Ninjas, DevOps Specialists, and Engineers, we can enable turnkey full-stack insight into every aspect of a distributed system. Whether the system of microservices is deployed to On-premise Kubernetes clusters, Cloud Kubernetes clusters, or Hybrid-Cloud service orchestration systems; LSD Managed Observability Platform provides the full-stack observability and insight necessary. This helps to enable rapid time-to-resolution, quick root cause analysis and preemptive pro-action in the identification of problems and issues.
LSD’s Managed Observability Platform provides this and more via bespoke Professional Services and fully managed cloud-native Kubernetes support services.
REFERENCES
Egilmez, I., Mao, M. and Gile, J., 2021. Monitoring vs. Observability: What’s the Difference? – The New Stack. [online] The New Stack. Available at: <https://thenewstack.io/monitoring-vs-observability-whats-the-difference/> [Accessed 10 June 2021].
Google Cloud. 2021. DevOps measurement: Monitoring and observability | Google Cloud. [online] Available at: <https://cloud.google.com/architecture/devops/devops-measurement-monitoring-and-observability> [Accessed 10 June 2021].
dzone.com. 2021. Observability vs. Monitoring – DZone DevOps. [online] Available at: <https://dzone.com/articles/observability-vs-monitoring> [Accessed 10 June 2021].
InfoWorld. 2021. What is observability? Software monitoring on steroids. [online] Available at: <https://www.infoworld.com/article/3607980/what-is-observability-software-monitoring-on-steroids.html> [Accessed 10 June 2021].
Arundel, J. and Domingus, J., 2019. Cloud native DevOps with Kubernetes. Beijing: O’Reilly.
Julian, M., 2018. Practical monitoring. Sebastopol, CA: O’Reilly Media.
Evangelisti, E., 2011. Controllability and Observability. Berlin, Heidelberg: Springer Berlin Heidelberg.
Gruĭich, L., n.d. Observability and controllability of general linear systems.