Application delivery engine for k8s
Clone or download
Permalink
Failed to load latest commit information.
charts changed template for index.html (show param1-3 as is, calculate param… Mar 13, 2018
cmd Some more lint fixes for new linter checks (unparam and prealloc) Jul 15, 2018
docs renamed Contract -> Service Jun 25, 2018
examples renamed Contract -> Service Jun 25, 2018
images removed service model video Jun 25, 2018
pkg Add ComponentInstance to etcd test to ensure non-versioned object sto… Jul 15, 2018
scripts install script fix, initial rules created by admin Jun 26, 2018
tests/integration Better BATS_TEST_LAST_STATUS integration Mar 13, 2018
tools Remove no more needed ls and hostname from ci run script Jul 15, 2018
webui renamed Contract -> Service Jun 25, 2018
.dockerignore Allow aptomictl binary for docker build Jan 23, 2018
.gitignore Add .aptomi-install-cache to git ignore Jun 10, 2018
.golangci.yml Disable lll for now Jun 29, 2018
.goreleaser.yml Add homebrew to goreleaser config Feb 5, 2018
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md Feb 6, 2018
Dockerfile Add Dockerfile to build container with an existing binary Jan 19, 2018
Dockerfile.client Add client dockerfile Jan 23, 2018
Dockerfile.server Dockerfiles rework to separate UI and client Nov 20, 2017
Dockerfile.webui Dockerfiles rework to separate UI and client Nov 20, 2017
LICENSE Add license Sep 29, 2017
Makefile Use with_etcd for alltest target as well Jul 15, 2018
README.md linked superuser blog post + OpenDev youtube demo Jun 25, 2018
glide.lock Add etcd clientv3 Jul 15, 2018
glide.yaml Add etcd clientv3 Jul 15, 2018

README.md

Tweet

Aptomi Logo

Release License Go Report Card Build Status Coverage Status Godoc GitHub last commit Slack Status

Aptomi is a platform for development teams that simplifies the roll-out and operation of container-based applications on Kubernetes. It introduces a service-centric abstraction, which allows users to compose applications from multiple connected components. Aptomi supports components packaged using Helm, ksonnet, k8s YAMLs, and any other Kubernetes-friendly way!

Aptomi's approach to application delivery becomes especially powerful in a multi-team setup, where components owned by different teams must be put together into a service. With ownership boundaries, Dev teams can specify multi-cluster and multi-env (e.g. dev, stage, prod) service behavior, as well as control the lifecycle and updates of their respective services.

Aptomi also provides contextual visibility into teams and services, allowing our users to visualize complex dependencies and accurately assess the impact of changes.

Overview

What is Aptomi

You can also read this blog post about the project.

Demos

Asciinema

Youtube

Table of contents

Why Aptomi?

Quickstart

Step #1: Installation

There are several ways to install Aptomi. The simplest one is Compact, but you may pick one that suits your needs:

Installation Mode Complexity Description
Compact Easy Aptomi will be installed on a local machine (binaries or in a single Docker container)
Kubernetes Medium Aptomi will be deployed on k8s via Helm chart

You can also install Aptomi in a stripped-down mode with a fake executor:

Installation Mode Complexity Description
Concepts Easy Use this only if you want get familiar with Aptomi's concepts, API and UI. App deployment to k8s is DISABLED

Step #2: Setting up k8s Cluster

You will need to have access to a k8s cluster to deploy apps from the provided examples.

Having a powerful k8s cluster with a good internet connection will definitely provide a better experience compared to a local, single-node k8s cluster. We consider GKE to be the best option if you don't have your own k8s cluster.

Kubernetes Cluster When to use How to run
Your own If you already have a k8s cluster set up Configure Aptomi to use an existing k8s cluster
Google Kubernetes Engine If you have a Google account and free credits Configure Aptomi to use GKE
k8s / Minikube Single-node, local machine with 16GB+ RAM Configure Aptomi to use Minikube
k8s / Docker For Mac Single-node, local machine with 16GB+ RAM Configure Aptomi to use Docker For Mac

Step #3: Running Examples

Once the Aptomi server is up and your k8s cluster is ready, you can get started by running the following examples:

Example Description
twitter-analytics Twitter Analytics Application, multiple services, multi-cloud, based on Helm
twitter-analytics-with-concourse-ci Twitter Analytics Application, integrated with Concourse CI/CD pipelines
guestbook K8S Guestbook Application, multi-cloud, based on K8S YAMLs

Step #4: Send us a note on Slack

Give us your feedback on #general in Slack Status. If you run into any issues, we are always happy to help you resolve them!

How It Works

Architecture

Aptomi Components

See artchitecture documentation

Language

Aptomi Language

See language documentation

How to contribute

The very least you can do is report a bug!

If you want to make a pull request for a bug fix or contribute a feature, see our Development Guide for how to develop, run and test your code.

We are always looking for feedback on how to make Aptomi better. Join our Slack to discuss Slack Status.

Roadmap

Feature Backlog, as well as weekly project milestones, are good places to look at the roadmap items.

If you have any questions, please contact us on Slack Status.