iter8

command module
v0.12.2 Latest Latest
Warning

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

Go to latest
Published: Nov 22, 2022 License: Apache-2.0 Imports: 2 Imported by: 0

README ยถ

Iter8: Kubernetes Release Optimizer

Iter8 release GoDoc GitHub Workflow Status

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.

  1. Performance testing and SLO validation of HTTP services.
  2. Performance testing and SLO validation of gRPC services.
  3. SLO validation using custom metrics from any database(s) or REST API(s).

๐Ÿš€ Iter8 experiment

Iter8 introduces the notion of an experiment, which is a list of configurable tasks that are executed in a specific sequence.

Iter8 packs a number of powerful features that facilitate Kubernetes app testing and experimentation. They include the following.

  1. Generating load and collecting built-in metrics for HTTP and gRPC services. Simplifies performance testing by eliminating the need to setup and use metrics databases.
  2. Well-defined notion of service-level objectives (SLOs). Makes it simple to define and verify SLOs in experiments.
  3. Custom metrics. Enables the use of custom metrics from any database(s) or REST API(s) in experiments.
  4. Readiness check. The performance testing portion of the experiment begins only after the service is ready.
  5. HTML/text reports. Promotes human understanding of experiment results through visual insights.
  6. Assertions. Verifies whether the target app satisfies the specified SLOs or not after an experiment. Simplifies automation in CI/CD/GitOps pipelines: branch off into different paths depending upon whether the assertions are true or false.
  7. Multi-loop experiments. Experiment tasks can be executed periodically (multi-loop) instead of just once (single-loop). This enables Iter8 to refresh metric values and perform SLO validation using the latest metric values during each loop.
  8. Experiment anywhere. Iter8 experiments can be launched inside a Kubernetes cluster, in local environments, or inside a GitHub Actions pipeline.

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, Iter8 community meetings, 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
abn
application
Package application provides a runtime model of applications and their versions
Package application provides a runtime model of applications and their versions
core
Package core provides a service that supports the Iter8 A/B/n SDK
Package core provides a service that supports the Iter8 A/B/n SDK
k8sclient
Package k8sclient enables interaction with Kubernetes using both a typed client and a dynamic client
Package k8sclient enables interaction with Kubernetes using both a typed client and a dynamic client
watcher
Package watcher provides methods to watch resources and build a runtime model of applications
Package watcher provides methods to watch resources and build a runtime model of applications
Package action contains the logic for each action that Iter8 can perform.
Package action contains the logic for each action that Iter8 can perform.
report
Package report contains primitives for reporting the results of an experiment.
Package report contains primitives for reporting the results of an experiment.
Package autox is the entry point for the autoX controller.
Package autox is the entry point for the autoX controller.
Package base defines Iter8's experiment, task and metric data structures.
Package base defines Iter8's experiment, task and metric data structures.
internal
Package internal provides gRPC code used for testing load-test-grpc
Package internal provides gRPC code used for testing load-test-grpc
internal/helloworld/helloworld
Package helloworld implements the helloworld grpc service.
Package helloworld implements the helloworld grpc service.
log
Package log enables logging for Iter8.
Package log enables logging for Iter8.
summarymetrics
Package summarymetrics provides a summary metric implementation
Package summarymetrics provides a summary metric implementation
Package cmd defines the Iter8 CLI commands and their flags.
Package cmd defines the Iter8 CLI commands and their flags.
Package driver enables interaction with experiment resources.
Package driver enables interaction with experiment resources.

Jump to

Keyboard shortcuts

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