IBM has joined the horde of companies using the currently running KubeCon and CloudNativeCon to highlight new projects, by pushing cloud-native helpers Kui and Iter8 into the open source world.
According to the announcement post, Kui was developed to address the challenges posed by the number of different CLIs necessary to get things in hybrid multi-cloud environments done. The project is meant to help interact with multiple tools and therefore reduce the number of context switches necessary when building cloud-native applications.
Apart from offering a CLI with additional functionalities based on the Electron project to manipulate JSON and YAML data models, Kui includes a suite of visualisations that is supposed to help with more complex data. Users can use a split screen mode to investigate visualisations and jump back into the terminal where needed. That way, they don’t have to switch to a browser when working locally as opposed to within a web UI offering.
Kui can be used as a kubectl plugin for environments using version 1.12 or newer. Other examples already available work together with Kubernetes or IBM-driven Apache projects OpenWhisk and Composer. Users interested in these configurations will however have to set up authorisations first. How-tos for this are available via the project’s documentation.
Iter8, the second of the new additions to the IBM open source zoo, promises automated “canary releases and A/B testing for cloud-native development”. The tool is made up of an analytics and a controller component. Analytics looks at a number of metrics and analyses them statistically to identify behavioural changes between different versions of a microservice.
Decisions during canary releases or A/B testing are made using progressive check-and-increment and decaying epsilon greedy. The first aims to “gradually shift traffic from a baseline (stable) version to a candidate version, as long as the candidate version continues to pass the success criteria defined by the user” and is therefore only suited for canary releases. Decaying epsilon greedy meanwhile explores competing versions and figures out how to maximise a typically business-oriented metric and satisfy defined performance or correctness metrics at the same time.
Results are returned along with recommendations on how the traffic is supposed to be split across the versions through a REST API. The controller unit uses these insights to adjust the traffic accordingly, making sure it is for example slowly shifted to a canary version if it performs as expected or routed to the older version, should performance degradations become apparent.
Iter8 uses the APIs of the Istio platform as the foundation for its comparative analytics, but also supports Knative. More information on the project can be found via its website.