Churning The Magic
With a fair understanding of Observability, and introduction to some of the tools/frameworks to achieve observable systems; we thought it would be a good idea to create a boilerplate to demonstrate the whole system in action. This boilerplate is a single click deployment built as a set of Docker images.
The key components of this boilerplate are the docker images of the following:
- Application Layer: A simple web application built in Python Django with Postgres as database, and nginx running the web server
- Instrumentation Layer: A set of Logstash, Prometheus and Zipkin libs for Python serving as conduits to collect data (logs, metrics and traces)
- Stack (Data Storage) Layer: Elasticsearch, Zipkin and Prometheus storage
- Visualization (Analysis) Layer: Kibana, Prometheus UI, Grafana, and Zipkin UI
You can get started with this boilerplate with a single click, play around with it, and use it in your development/production environments to turn your applications into Observable systems. The boilerplate code is available on Github. Pull-requests are welcome to make it better and more useful for a varied production environments.
- Advantages of OSS (Open Source Software): The boilerplate inherently enjoys the advantages of OSS since all the tools used in creation of this boilerplate. These include:
Cloud Agnostic: With a little bit of production automation, the system is designed to fit seamlessly on to any cloud platform (AWS, Azure, Google, DigitalOcean, etc.)
Containerised Solution: The system is containerised (using Docker) which enables exploiting the advantages of cloud-native development
- Cost effectiveness
- Being able to be flexible in terms of changing tools
- Ability to take the community versions and get started quickly in order to attain faster time to market
- Visibility into the internal working of the tools, and scope of customizing them to specific needs