README
ΒΆ
Iter8: Kubernetes Release Optimizer
Iter8 is the Kubernetes release optimizer built for DevOps, MLOps, SRE and data science teams. Iter8 makes it easy to ensure that Kubernetes apps and ML models perform well and maximize business value.
Iter8 supports the following use-cases:
- Progressive release with automated traffic management
- A/B/n testing with a client SDK and business metrics
- Performance testing for HTTP and gRPC endpoints
Any Kubernetes resource type, including CRDs can be used with Iter8.
π Features
Iter8 introduces a set of tasks which can be composed in order to conduct tests.
Iter8 packs a number of powerful features that facilitate Kubernetes application and ML model testing. They include the following:
- Use any resource types. Iter8 is easily extensible so that an application being tested can be composed of any resource types including CRDs.
- Client SDK. A client SDK enables application frontend components to reliably associate business metrics with the contributing version of the backend thereby enabling A/B/n testing of backends.
- Composable test tasks. Performance test tasks include load generation and metrics storage simplifying setup.
Please see https://iter8.tools for the complete documentation.
π Issues
Iter8 issues are tracked here.
π Contributing
We welcome PRs!
See here for information about ways to contribute, finding an issue, asking for help, pull-request lifecycle, and more.
πΊ Credits
Iter8 is primarily written in Go
and builds on a few awesome open source projects including:
Documentation
ΒΆ
Overview ΒΆ
Package main is the entry point for the Iter8 CLI. Iter8 is the Kubernetes release optimizer built for DevOps, MLOps, SRE and data science teams. Iter8 makes it easy to ensure that Kubernetes apps and ML models perform well and maximize business value.
Directories
ΒΆ
Path | Synopsis |
---|---|
Package abn contains the implementation of the A/B/n service (via gRPC)
|
Package abn contains the implementation of the A/B/n service (via gRPC) |
Package action contains the logic for each action that Iter8 can perform.
|
Package action contains the logic for each action that Iter8 can perform. |
Package base defines Iter8's experiment, task and metric data structures.
|
Package base defines Iter8's experiment, task and metric data structures. |
log
Package log enables logging for Iter8.
|
Package log enables logging for Iter8. |
Package cmd defines the Iter8 CLI commands and their flags.
|
Package cmd defines the Iter8 CLI commands and their flags. |
Package controllers provides Iter8 controller for reconciling Iter8 routemap resources
|
Package controllers provides Iter8 controller for reconciling Iter8 routemap resources |
k8sclient
Package k8sclient provides the Kubernetes client for the controllers package
|
Package k8sclient provides the Kubernetes client for the controllers package |
k8sclient/fake
Package fake provides fake Kuberntes clients for testing
|
Package fake provides fake Kuberntes clients for testing |
Package driver enables interaction with experiment resources.
|
Package driver enables interaction with experiment resources. |
Package metrics implements an HTTP service that exposes A/B/n SDK metrics
|
Package metrics implements an HTTP service that exposes A/B/n SDK metrics |
Package storage provides the storage client for the controllers package
|
Package storage provides the storage client for the controllers package |
badgerdb
Package badgerdb implements the storage interface with BadgerDB
|
Package badgerdb implements the storage interface with BadgerDB |
client
Package client implements an implementation independent storage client
|
Package client implements an implementation independent storage client |
redis
Package redis implements the storage interface with Redis
|
Package redis implements the storage interface with Redis |