Top 10 Open Source Projects for SREs and DevOps
In this blog, we look at some of the most sought-out open source projects in the areas of monitoring, deployment, and maintenance.
Join the DZone community and get the full member experience.Join For Free
Building scalable and highly reliable software systems is the ultimate goal of every SRE out there. Follow the path of continuous learning with the help of our latest blog which outlines some of the most sought out open source projects in the monitoring, deployment, and maintenance space.
The path to becoming a successful SRE lies in continuous learning. There are a plethora of great open source projects out there for SREs/DevOps, each with new and exciting implementations and often tackling unique challenges. These open-source projects do the heavy lifting so you can do your job more easily. In addition to the open source projects, there's always more continuous learning platforms like this one that has a free trial.
In this blog, we look at some of the most sought-out open source projects in the areas of monitoring, deployment, and maintenance. Among the projects we have covered are those that simulate network traffic and allow you to model unpredictable(chaotic) events to develop dependable systems.
Cloudprober is an active tracking and monitoring application to spot malfunctions before your customers do. It uses an 'active' monitoring model to check that your components are operating as intended. It runs probes proactively, for instance, to ensure if your frontends can access your backends. Similarly, a probe can be run to verify that your on-premise systems can actually reach your in-Cloud VMs. This method of tracking makes it easy, independent of the implementation, to track the configurations of your applications and lets you easily pin down what is broken in your system.
- Native Integration with open source monitoring stack of Prometheus and Grafana. Cloudprober can export probe results as well.
- For Cloud targets, automatic target discovery. Out-of-the-box support is provided to GCE and Kubernetes; other cloud services can be easily configured.
- Significant commitment on ease of deployment. Cloudprober is completely written and compiled into a static binary in Go. It can be deployed quickly by way of Docker containers. In addition to most of the updates, there is normally no need to re-deploy or reconfigure Cloudprober due to the automatic aim discovery.
- The Cloudprober Docker image size is low, containing only a statically compiled binary, and it requires a very small amount of CPU and RAM to run even a large number of probes.
2. Cloud Operations Sandbox (Alpha)
Cloud Operations Sandbox is an open-source platform that lets specialists learn about Google's Service Reliability Engineering practices and adapt them to their cloud systems using Ops Management (formerly Stackdriver). It is based on the Hipster Shop, a cloud-based platform for native microservices. Note: This requires a Google cloud services account.
- Demo Service — an application designed on a modern, cloud-native, microservice architecture.
- One-click deployment — a script handles the work of deploying the service to Google Cloud Platform.
- Load Generator — a part that produces simulated traffic on a demo service.
3. Version Checker for Kubernetes
A Kubernetes utility allows you to observe existing versions of images that are running in the cluster. This tool also allows you to see the current image versions in table format on a Grafana dashboard.
- Multiple self-hosted registries can be set-up at once.
- This utility allows you to see the version information as Prometheus metrics.
- Support for registries like ACR, DockerHub, ECR.
Istio is an open framework for incorporating microservices, monitoring traffic movement through microservices, implementing policies, and aggregating telemetry data in a standardised way. The control plane of Istio offers an abstraction layer over the underlying platform for cluster management, such as Kubernetes.
- Automatic load balancing for HTTP, gRPC, WebSocket, and TCP traffic.
- Fine-grained control of traffic behavior with rich routing rules, retries, failovers, and fault injection.
- A pluggable policy layer and configuration API supporting access controls, rate limits, and quotas.
- Automatic metrics, logs, and traces for all traffic within a cluster, including cluster ingress and egress.
- Secure service-to-service communication in a cluster with strong identity-based authentication and authorization.
Checkov is an Infrastructure-as-Code static code review tool. It scans Terraform, Cloud Details, Cubanet, Serverless, or ARM Models cloud infrastructure, and detects security and compliance misconfigurations.
- More than 400 built-in rules cover AWS, Azure, and Google Cloud's best protection and security practices.
- Assesses Terraform Provider settings to monitor Terraform-managed IaaS, PaaS, or SaaS development, maintenance, and updates.
- Detects AWS credentials in EC2 Userdata, Lambda context variables, and Terraform providers.
Litmus is a cloud-based chaos modeling toolkit. Litmus provides tools to orchestrate chaos on Kubernetes to help SREs discover vulnerabilities in their deployments. SREs use Litmus to conduct chaos tests first in the staging area and finally in development to discover glitches and vulnerabilities. Fixing the deficiencies leads to improved system resilience.
- Developers can run chaos tests during application development as an extension to unit testing or integration testing.
- For CI pipeline builders: To run chaos as a pipeline stage to find bugs when the application is subjected to fail paths in a pipeline.
Locust is a simple to use, scriptable and flexible performance testing application. You define the behavior of your users in standard Python code, instead of using a clunky UI or domain-specific language. This enables Locust to be extensible and developer-friendly.
- Locust is distributed and scalable — easily supporting hundreds or thousands of users.
- Web-based UI that shows progress in real-time.
- Can test any system with a little tinkering.
Prometheus, a Cloud Native Computing Foundation project, is a systems and service monitoring system. It extracts metrics from configured destinations at specific times, tests rules, and shows outcomes. If specified criteria are violated, it will trigger notifications.
- A multi-dimensional data model (time series defined by metric name and set of key/value dimensions).
- Targets are discovered via service discovery or static configuration.
- No dependency on distributed storage; single server nodes are autonomous.
- PromQL, a powerful and flexible query language to leverage this dimensionality.
Kube-monkey is a Kubernetes cluster implementation of Netflix's Chaos Monkey. The random deletion of Kubernetes pods facilitates the creation of failure-resistant resources and validates them at the same time.
- Kube-monkey is operating with an opt-in model and only targeting the termination of Kubernetes (k8s) users which have specifically accepted that kube-monkey will terminate their pods.
- Highly customizable scheduling features based on your requirements
PowerfulSeal injects failure into Kubernetes clusters, helping you to recognize issues as quickly as possible. It enables scenarios that portray complete chaos experiments to be created.
- Compatible with Kubernetes, OpenStack, AWS, Azure, GCP, and local machines.
- Connects with Prometheus and Datadog for metrics collection.
- Multiple modes allowed for custom use cases.
The great benefit of open source technologies is their extensible nature. You can add features to the tool if required to better fit your custom architecture. These open source projects have extensive support documentation and a community of users. As microservice architecture is slated to dominate the cloud computing space, reliable tools to monitor and troubleshoot these instances are sure to become part of every developer's arsenal.
Opinions expressed by DZone contributors are their own.