capgemini
Apollo

Updated a year ago

Apollo

Apollo is an open source project to aid with building and deploying IAAS and PAAS services. It is particularly geared towards managing containerized applications across multiple hosts, and big data type workloads. Apollo leverages other open source components to provide basic mechanisms for deployment, maintenance, and scaling of infrastructure and applications.

Apollo is built on top of the following components:

  • Terraform for provisioning the infrastructure
  • Apache Mesos for cluster management, scheduling and resource isolation
  • Consul for service discovery, DNS
  • Docker for application container runtimes
  • Weave for networking of docker containers
  • HAProxy for application container load balancing

Apollo is:

  • highly-available: multi-datacenter
  • fault-tolerant: Mesos / Consul master quorum with data replication
  • portable: public, private, hybrid, multi cloud

Apollo Use Cases:

  • Build your own PAAS
  • Large scale CI (using the Jenkins Mesos framework)
  • Docker container management and orchestration (Marathon framework, Kubernetes)
  • Hadoop / Big data platform (Storm framework + others)

For available Mesos frameworks see https://docs.mesosphere.com/frameworks/. If you get one of these working on Apollo, please do contribute the setup back!

Apollo can run anywhere!

However, the majority of initial development is happening on AWS so most of our instructions and scripts are built around that. Stayed tuned for more cloud provider support! If you make it work on other infrastructure please let us know and contribute instructions/code. For more info on cloud support see our roadmap.

Apollo is in alpha!

While the concepts and base architectural components of Apollo are not expected to change drastically, the project is still under heavy development. Expect bugs, design and feature changes as we bring it to a stable, production ready, multi-cloud available thing!

Architecture

The above architecture is representative of Apollo cluster on AWS VPC.

Documentation

Contributing

If you're interested in helping out we've tagged issues specifically for new contributors to help you get familiar with the codebase.

If you need any help/mentoring be sure to drop by our Gitter channel!

NOTE

Master branch is currently only be receiving bugfixes and minor changes. We are in the process of moving the platform operating system from Ubuntu to CoreOS. Major changes and feature updates will be going into the devel branch.

You can track the latest development changes via the coreos label

Once the devel branch has been stabilised on CoreOS we will plan to merge that into master.

Keep up to date...

Check out the Capgemini UK Engineering blog to find out more about how Apollo works and its new features.