Foremast is a cloud native application health manager for Kubernetes. Foremast leverages observability signals from platforms such as Prometheus, Fluentd and Jaeger and provides timely application health alerts. These alerts are especially important during deployments and other changes that alter application state. This information is then leveraged by Foremast’s action framework - which allows developers and operators to take actions based on the state of the application.
How can developers reliably know that changes made to running software have not degraded the application?
Foremast provides early warnings for detecting problems with the deployment of a new version of a service or application on Kubernetes.
Traditionally, production deployments have used manual canary analysis as the standard mechanism for evaluating application health. Various types of canary analysis exist, such as: A/B testing, phased rollout, or incremental rollout.
Foremast automates the analysis of an application health, by scoring the health of new deployments on the basis of performance, functionality, and quality. This analysis provides a comprehensive picture of an application's health and enables corrective action if a deterioration in health is detected.
It addresses following problems in an enterprise environment of Kubernetes:
- Detect metrics spike or drop due to a deployment
- Detect impact to downstream services
- Automated remediation including alert, rollback etc
- Metrics anomaly aggregated at service or API level
- Aggregate service health check across multiple K8s clusters
The architecture and design documentation provide a detailed overview of the system and an under the hood view of how Foremast works.
Foremast can be run in multiple modes
- On Minikube
- On a remote K8s cluster
Make sure you have the following prerequisites:
- A local Go 1.7 development environment
- Admin access to a Kubernetes cluster - this could either be Minikube or a remote cluster.
The Set Up documentation has step by step instructions on how to setup and run Foremast.
Documentation for running the front-end portion of the project can be found here.
We welcome you to get involved with Foremast. You can contribute by using Foremast and providing feedback, contributing to our code, participating in our code and design reviews etc.
Read the contributing guidelines to learn about building the project, the project structure, and the purpose of each package.