foremast

module
v0.0.0-...-3eef760 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 16, 2022 License: Apache-2.0

README

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.

Directories

Path Synopsis
foremast-barrelman
pkg/apis
Package apis contains Kubernetes API groups.
Package apis contains Kubernetes API groups.
pkg/apis/deployment/v1alpha1
Package v1alpha1 is the v1 version of the API.
Package v1alpha1 is the v1 version of the API.
pkg/client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
pkg/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
pkg/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
pkg/client/clientset/versioned/typed/deployment/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
pkg/client/clientset/versioned/typed/deployment/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
foremast-service
foremast-trigger

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL