Kubernetes may rule the data center but if you have hundreds and thousands of containers running on it, it can be difficult to understand which applications they belong to, who owns them, why they were created, what’s no longer in use and the impact of changes.
Enter Aptomi, an open-source project that simplifies roll out and operation of container-based applications on Kubernetes. It introduces a service-centric abstraction, allowing dev teams to compose applications from multiple components connected together. These components can be packaged via Helm, k8s YAMLs, ksonnet, or defined in any other Kubernetes-friendly way.
Core contributor Roman Alekseenkov gave an overview of Aptomi at OpenDev. “Our idea was really simple, there seems to be a layer missing…We found for a lot of people the complexity is there, so our thought was what if we can introduce this lightweight layer built on the top of all the community abstractions, right on the top of Helm to deal with to deal with this problem, to allow you to compose services, allow you to run those services across multiple environments and multiple clusters with different settings, this layer would allow you to focus on services and the rules around those services.”
Alekseenkov gave a live demo by way of further introduction. Using the example of an application that grabs data from Twitter’s streaming API, does the processing (calculates the top hashtags) and displays results on a webpage. It’s done with two services, an analytics pipeline service and another service, Twitter stats which has three components — the publisher which grabs data from Twitter, a job engine that calculates hashtags using that external service and a virtualization part that displays results on the web.
Once the services are defined, he says, you can run it across multiple environments (dev, stage, production), Kubernetes clusters, as well as control its life cycle and updates. Service owners can efficiently manage multiple instances of their service, without having to deal with multiple copies of YAMLs and lower-level component configuration.
Aptomi also provides provides visibility for application owners, allowing to visualize dependencies and impact of changes. If you have hundreds and thousands of containers running on Kubernetes, it may be difficult to understand which applications they belong to, who owns them, why they were created, what is no longer in use and the impact of changes. Aptomi solves that problem with its UI for contextualized visibility.
GitHub is a good place to get more familiar with Aptomi. To make a pull request for a bug fix or contribute a feature, see the Development Guide for how to develop, run and test your code. You can also help out by reporting bugs.
The team is always looking for feedback on how to make Aptomi better, join the Slack channel to discuss. Feature Backlog, as well as weekly project milestones, are good places to look at roadmap items.
If you have any questions, reach out to the team on Slack.
Check out his full 40-minute presentation below.