All Projects → joyent → Containerpilot

joyent / Containerpilot

Licence: mpl-2.0
A service for autodiscovery and configuration of applications running in containers

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Containerpilot

rkt-compose
CLI to run Docker Compose file as pod on rkt with integrated service discovery using Consul - EOL
Stars: ✭ 24 (-97.77%)
Mutual labels:  consul, service-discovery, orchestration
Lastbackend
System for containerized apps management. From build to scaling.
Stars: ✭ 1,536 (+42.49%)
Mutual labels:  service-discovery, containers, orchestration
Containerops
DevOps Orchestration Platform
Stars: ✭ 317 (-70.59%)
Mutual labels:  containers, orchestration
Ansible Consul
📡 Ansible role for Hashicorp Consul clusters
Stars: ✭ 320 (-70.32%)
Mutual labels:  consul, service-discovery
Picluster
A Simplified Docker Swarm or Kubernetes Alternative to Container Scheduling and Orchestration
Stars: ✭ 390 (-63.82%)
Mutual labels:  containers, orchestration
Acs Engine
WE HAVE MOVED: Please join us at Azure/aks-engine!
Stars: ✭ 1,049 (-2.69%)
Mutual labels:  containers, orchestration
Rancher
Complete container management platform
Stars: ✭ 18,191 (+1587.48%)
Mutual labels:  containers, orchestration
Storyscript
Magical coding language for tomorrow’s developer; the other 1 billion people not in GitHub. 🧙
Stars: ✭ 381 (-64.66%)
Mutual labels:  containers, orchestration
superdiscoverer
A Supervisor backed service discoverer for automatic service-discovery.
Stars: ✭ 15 (-98.61%)
Mutual labels:  consul, service-discovery
Docker Alpine
Docker containers running Alpine Linux and s6 for process management. Solid, reliable containers.
Stars: ✭ 574 (-46.75%)
Mutual labels:  consul, service-discovery
Consul
Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.
Stars: ✭ 23,723 (+2100.65%)
Mutual labels:  consul, service-discovery
Spring Cloud Consul
Spring Cloud Consul
Stars: ✭ 703 (-34.79%)
Mutual labels:  consul, service-discovery
Service Fabric
Service Fabric is a distributed systems platform for packaging, deploying, and managing stateless and stateful distributed applications and containers at large scale.
Stars: ✭ 2,874 (+166.6%)
Mutual labels:  containers, orchestration
Aspnet Servicediscovery Patterns
Samples of simple service discovery patterns with ASP .NET Core
Stars: ✭ 265 (-75.42%)
Mutual labels:  consul, service-discovery
Kapo
Wrap any command in a status socket
Stars: ✭ 45 (-95.83%)
Mutual labels:  service-discovery, containers
Service Fabric
We've moved!
Stars: ✭ 258 (-76.07%)
Mutual labels:  containers, orchestration
Lxdock
Build and orchestrate your development environments with LXD - a.k.a. Vagrant is Too Heavy™
Stars: ✭ 350 (-67.53%)
Mutual labels:  containers, orchestration
Verwalter
A tool which manages cluster of services
Stars: ✭ 34 (-96.85%)
Mutual labels:  containers, orchestration
seagull
Configuration server submodule for all SeaSerives
Stars: ✭ 19 (-98.24%)
Mutual labels:  consul, service-discovery
Consul.ServiceDiscovery.Demo
This demo shows how to implement simple containerized (Docker) microservice architecture with gateway, load balancer (Ocelot) and automatic service discovery (Consul).
Stars: ✭ 24 (-97.77%)
Mutual labels:  consul, service-discovery

ContainerPilot

An init system for cloud-native distributed applications that automates the process of service discovery, configuration, and lifecycle management inside the container, so you can focus on your apps.

Build Status MPL licensed GoDoc

What is ContainerPilot?

Orchestration is the automation of the operations of an application. Most application require operational tasks like connecting them to related components (WordPress needs to know where it's MySQL and Memcached servers are, for example), and some applications require special attention as they start up or shut down to be sure they bootstrap correctly or persist their data. We can do all that by hand, but modern applications automate those tasks in code. That's called "orchestration."

To make this work, every application needs to do the following (at a minimum):

  • Register itself in a service catalog (like Consul or Etcd) for use by other apps
  • Look to the service catalog to find the apps it depends on
  • Configure itself when the container starts, and reconfigure itself over time

We can write our new applications to do that, but existing apps will need some help. We can wrap each application in a shell script that registers itself with the discovery service easily enough, but watching for changes to that service and ensuring that health checks are being made is more complicated. We can put a second process in the container, but as soon as we do that we need an init system running inside the container as well.

ContainerPilot to the rescue!

ContainerPilot is an init system designed to live inside the container. It acts as a process supervisor, reaps zombies, run health checks, registers the app in the service catalog, watches the service catalog for changes, and runs your user-specified code at events in the lifecycle of the container to make it all work right. ContainerPilot uses Consul to coordinate global state among the application containers.

Quick Start Guide

Check out our "Hello, World" application on GitHub. Assuming you have Docker and Docker Compose available, it's as easy as:

git clone [email protected]:autopilotpattern/hello-world.git
cd hello-world
docker-compose up -d
open http://localhost

This application blueprint demonstrates using ContainerPilot to update Nginx upstream configuration at runtime. Try scaling up via docker-compose scale hello=2 world=3 to see the Nginx configuration updated.

You can also download the latest release of ContainerPilot from GitHub.

Documentation

Documentation for ContainerPilot and where it fits with the rest of the Triton ecosystem can be found at www.joyent.com/containerpilot. The index below links to the documentation in this repo for convenience.

Lifecycle

Design: the Why of ContainerPilot

Configuration

Support

You might also read our guide building self-operating applications with ContainerPilot and look at the examples below.

Examples

We've published a number of example applications demonstrating how ContainerPilot works.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].