Skip to content

Foremast adds application resiliency to Kubernetes by leveraging machine learnt patterns of application health to keep applications healthy and stable

License

Notifications You must be signed in to change notification settings

intuit/foremast

Repository files navigation

Foremast

Build Status Go Report Card Slack Chat

Foremast

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.

Running Foremast

Foremast can be run in multiple modes

  • On Minikube
  • On a remote K8s cluster

Technical Requirements

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.

Setup Steps

The Set Up documentation has step by step instructions on how to setup and run Foremast.

Running Foremast-Browser UI

Documentation for running the front-end portion of the project can be found here.

Roadmap

  • January 2019 v0.5
  • February 2019 v0.6
  • HPA score support Ongoing
  • ClusterAutoScaler prediction support

Foremast presented at Kubecon

https://kccnceu19.sched.com/event/MPaQ/ready-a-deep-dive-into-pod-readiness-gates-for-service-health-management-minhan-xia-google-ping-zou-intuit

Contributing

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.

About

Foremast adds application resiliency to Kubernetes by leveraging machine learnt patterns of application health to keep applications healthy and stable

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published