Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here

Apollo

:rocket: An open-source platform for cloud native applications based on Apache Mesos and Docker.

Subscribe to updates I use Apollo


Statistics on Apollo

Number of watchers on Github 722
Number of open issues 71
Average time to close an issue 5 days
Main language HCL
Average time to merge a PR 1 day
Open pull requests 11+
Closed pull requests 17+
Last commit almost 4 years ago
Repo Created over 5 years ago
Repo Last Updated over 2 years ago
Size 2.52 MB
Homepage http://capgemini....
Organization / Authorcapgemini
Latest Release0.2.0
Contributors16
Page Updated
Do you use Apollo? Leave a review!
View open issues (71)
View Apollo activity
View on github
Fresh, new opensource launches πŸš€πŸš€πŸš€
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating Apollo for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

Apollo

Join the chat at https://gitter.im/Capgemini/Apollo

wercker status MIT license

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

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
  • Traefik 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 beta!

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

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!

Keep up to date...

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

Apollo open issues Ask a question     (View All Issues)
  • almost 4 years Ansible failed because of undefined ansible_port
  • about 4 years move sysctl and other tuning to common ansible role
  • about 4 years TASK [traefik : enable traefik] fails
  • about 4 years Terraform for Digital Ocean crashes: panic: Unary - is only allowed
  • about 4 years Migrate terraform template_file to null_resource for generating the etcd url discovery file
  • about 4 years better way to run docker from a unit file
  • over 4 years "RUNNING HANDLER [handlers : wait for weave to listen]" timeout
  • over 4 years Service discovery topological affinity
  • over 4 years Is it worth adding support for Consul RPC encryption?
  • over 4 years Run weave on top of early-docker just as flannel
  • over 4 years How is etcd important for coreos setup?
  • over 4 years Use tls auth for aws etcd
  • over 4 years Add consul maintenance on rolling upgrade
  • over 4 years Fix bastion security groups
  • over 4 years Update GCE terraform plan to be compatible with coreOS
  • over 4 years Merge requirements.yml & contrib-plugins/plugins.yml
  • over 4 years Update outdated docs
  • over 4 years Implement new test strategy compatible with coreOS
  • over 4 years Update + test consul service + health checks for coreOS and consul 0.6
  • over 4 years Move vault role to be based on docker and compatible with coreOS
  • over 4 years Handle systemd service file changes / reloads correctly
  • over 4 years Add prometheus elasticsearch exporter
  • over 4 years Investigate flocker mesos and ceph mesos frameworks
  • over 4 years Setup docker to use flocker volume driver for persistence
  • over 4 years Setup ceph flocker plugin
  • over 4 years Handle Logstash configurations and plugins better
  • over 4 years Setup Ceph/GlusterFS on Apollo
  • over 4 years Pre-configured promdash dashboards
  • over 4 years move vpn bootstrap into common library
  • over 4 years Create a scale demonstrator
Apollo open pull requests (View All Pulls)
  • Fix a typo
  • Elk docker
  • Azure provider
  • Udacity secure elb
  • Initial work on moving bastion instance to coreOS host
  • Rackspace
  • Add elk to apollo
  • Rackspace rebased
  • Addition of Azure Resource Manager provider terraform configuration
  • turn selinux on for coreos
  • Letsencrypt
Apollo questions on Stackoverflow (View All Questions)
  • Apollo activemq AMQP NullPointerException
  • Why do I lose messages after reconnecting to Apache Apollo MQTT?
  • i can't take message from Apollo MQ.
  • APLO-328 cors_origin in apache apollo 1.7.1
  • what mqtt version does apache apollo broker V 1.7.1 support?
  • Adding placemarks to ERDAS APOLLO maps
  • Error with apollo broker
  • apollo broker throws array index out of bound exception when trying to publish a message from cloudgate RTU
  • ActiveMQ/Apollo and Same origin policy
  • Does Apache Apollo have failover support?
  • How to feed messages coming into Apache Apollo from clients into Java?
  • Can't install Apache Apollo -- Can't find "keytool"
  • Apollo MQ and stomp.py
  • Apollo Stomp ActiveMQ Creates Invalid Temporary Destination Names
  • ActiveMQ to Apollo transition, Openwire to Stomp protocol configuration
  • Does ActiveMQ Apollo implement JMSXUserID or something similar to help track authenticated users?
  • Apache ActiveMQ Apollo: Virtual host stopped
  • use message driven bean to get message from topic apache apollo
  • ActiveMQ vs Apollo vs Kafka
  • Apache Apollo: java openwire client doesn't consume messages from php stomp producer
  • Dynamic destination in Apache Apollo MQ
  • How to integrate Tomcat and Apache Apollo?
  • MQTT can not connect to Apollo server
  • Spring-Amqp and Apollo
  • Using stomp.js over sock.js with ActiveMQ-Apollo does not seem to work
  • adb doesn’t see phone device (Galaxy Apollo)
  • Can Apollo convert messages based on consumer protocol?
  • Apollo CM11 class not found exception
  • Spring 4.0.5 websockt integration apollo with the exception "Message broker is not active"
  • ActiveMQ topics and security (or Apollo)
Apollo list of languages used
Apollo latest release notes
0.2.0 0.2.0

Includes the following -

  • Add cAdvisor for monitoring containers #354
  • Add Cassandra as a Mesos framework #396
  • Add Chronos as a Mesos framework #407
  • Multi-AZ support for High Availabilty on aws #385
  • Apollo ami available across all aws regions #427
  • Add plugin system for hooking customizations on top of Apollo #357
  • Add DCOS-CLI support for installing frameworks #396
  • Add hvm virtualisation type support for aws #427
  • Support for single machine Vagranfile #369
  • Add Marathon running inside a docker container
  • All variables are overridable by environment variables using the namespace APOLLO_
  • Added app deployment examples
  • Ability to run Serverspecs and Docker Bench over deployment.
0.1 Initial release

Includes the following -

  • Packer builds (with Atlas integration) for base image
  • Terraform plans for AWS/Digitalocean
  • Bootstrap scripts for vagrant/aws/digitalocean
  • Provisioning scripts for docker/weave/consul/dnsmasq/mesos
  • Support for Marathon as a Mesos framework
Other projects in HCL