Git Product home page Git Product logo

dockerera is Instand out of the box IaaS and PaaS using docker, couchbase, cloudera, openstack:

dockerera logo(TM)

docker couchbase cloudera openstack

Distributed IaaS Like Amazon or Azur Ultra Performant much better then Any Other Cloud Plattform using to View Logs and realy big Processes in Realtime ! dockerera supplys cloudera deployment in minuts! so even if you only whant to run cloudera or couchbase only in production you should watch at dockerera!

At Present Porting Longshore man Concepts into dockerera Integrating HIPACHE Routers Integrating Apache Routers

dockerera automates application deployment using Docker. Just create a Docker repository (or use a service), configure the cluster using AWS or DirektSPEED Hosting or OpenStack (or whatever you like) and deploy applications using a Heroku-like CLI tool or Our Web Interface WebUI. And yes you can run dockerera on OpenStack but you can also run OpenStack on top of dockerera it takes about 10 min and AWS Credentials to deploy openstack to AWS EC2 Instances with dockerera!

Main GitHub project page

Why make this?

We created dockerera because we love using Docker but were frustrated with the lack of production-ready deployment options that were available at the time. We looked closely at Deis, Flynn, Dokku and others, but they either did not meet our requirements or were explicitly marked as not ready for production.

This Project got Born out of Many Little IDEAS that i got as i Planed to Start my New Internet Service Now i Ended up and Did my Own IaaS With High Performance Ultra High I/O Blasting Perfromance. And i Offer that Know How to Anyone Who Needs it.

dockerera mergs the two Old Projects Container Harbor and Varius others into DockerEra Distribution

Goals: Building a Docker Powered Cloud Plattfrom where you can run Hadoop Tasks in and Store Infinity Data For Processing in Realtime.

Compatiblity to: Project Atomic DockerHosts Project CoreOS DockerHosts Nativ Docker Running Hosts Linux Windows MAC

Using Ubuntu + MAAS + NODE.JS + cloudera + Couchbase + Packer.io + Docker.io and all the Dependencys they got and build on.

Who made it?

libcontainer is sponsored/developed by MichaelCrosby Docker is sponsored/developed by Docker Inc Vagrant is sponsored/developed by MitchellH dockera is sponsored/developed by DirektSPEED Europe

How does it work?

dockerera has 3 core components: a controller, one or more Routers and cloudera stack. It also uses a Docker registry and Couchbase as its configuration database and Distributed file Storage.

Controller

The DockerEra controller is a service which orchestrates the deployment of Docker applications across a cluster and controls how traffic is routed to individual application instances. It is a REST API that can be used via HTTTP with the CLI tool or else What. Launching a new version of an application is as simple as dockerera --app my.app.com deploy docker.repo.com/image:tag. Your application will be deployed to 2 or more nodes (depending on the size of your cluster and its available resources). Versioning and rollbacks can be achieved using image tags.

NODEJS Controller Repository

Routers

Routers dynamically direct incoming web traffic to the correct application instances we are using Hipache from Docker Inc. Multiple routers can be utilized to distribute traffic and eliminate single points of failure.

NODEJS Router Repository

CLI

The command line tool is an interface to the Longshoreman controller service. It allows users to describe the state of the application cluster, deploy new instances of applications (with zero-downtime), add and remove hosts, add and remove application environmental variables and more. See the link below for full documentation.

NODEJS CLI Repository

Other Components

Registry

dockerera uses a Docker registry to coordinate application versioning and deployment. Docker registries are outside of the scope of this project, so if you're unfamiliar with them please read more here. Setting up an S3-backed private registry is fairly simple. Just follow these instructions.

Configuration Store

We are currently using Couchbase to store and distribute the cluster's state. DockerEra uses PubSub to notify Routers of updates to the internal application routing table. We're looking into support for CouchBase as a single point of failure exists if the Redis instance is not redundant and we use Couchbase for Every thing there is no question :D.

Diagram

Quick Start

This guide will walk you through creating a Longshoreman powered cluster (we're using EC2 running Ubuntu in this example).

To create an application cluster using Longshoreman, you'll need at least 2 server nodes. However we recommend using 5 for enhanced robustness. Here's how they're broken down: 1 router, 1 controller, 2 application nodes and a Redis box (using a Redis hosting provider will work well too). In the 2 node set up the router, controller and Redis db can live on a single server (but that's not recommended). Actually, the whole thing can run on a single server if you're just taking a test drive, but I digress.

1. Launch a controller

  1. Launch an EC2 instance and log into the box.
  2. Install Docker
  3. Start the controller with sudo docker -d -p 80:80 run -e REDIS_HOST=$REDIS_HOST_IP -e REDIS_PORT=6379 longshoreman/controller

2. Launch the router(s)

  1. Launch an EC2 instance and log into the box.
  2. Install Docker
  3. Start the router with sudo docker run -e -p 80:80 -d REDIS_HOST=$REDIS_HOST_IP -e REDIS_PORT=6379 longshoreman/router
  4. Configure your load balancer (ELB, etc.) to direct traffic to the router instance(s).

3. Deploy container nodes

  1. Launch 1 or more EC2 instances.
  2. Install Docker
  3. Edit the Docker config with vi /etc/default/docker
  4. Set DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock" to enable the Docker Remote API
  5. Restart Docker with sudo service docker.io restart
  6. Create an AMI if you'd like to speed up this step next time you launch a container node.

4. Configure and deploy applications using the CLI

  1. Run longshoreman init to configure your credentials. Enter the Longshoreman controller domain and your token. The token is auto-generated and is stored in Redis (GET token).
  2. longshoreman hosts:add <container-node-ip> to make Longshoreman aware of your nodes.
  3. longshoreman apps:add my.app.domain to add a new service or application to your cluster.
  4. longshoreman --app my.app.domain envs:set FOO=bar to configure your application's runtime settings.
  5. longshoreman --app my.app.domain deploy my.docker.reg/repo:tag to deploy the first version of your application.
  6. Point your domain to your load balancer's CNAME and Bob's your uncle.

Check out the CLI repository for full documentation.

========================

Workflow

Enter Accounts of Cloud Providers or Baremetals via Conical MAAS

A Master Controller Installation can Handle the Deployment of the Whole Infrastructure and Scale it Complet

A Slave is a DockerHost running ubuntu core.

  • Containers can Choose if Running on HDFS or CouchBase or Local Mounts
  • All Configs and Infos as also data get shared via Couchbase - Long Time Storage via HDFS or Physical Disks
  • Using CloudEra Analyze of Running Processes and Logs.

First Test Results The DockerEra Cloud Structure is as Performant as Amazon Cloud or Azure The Diffrents are Realy the Same if you use Windows or Linux as Couchbase Host

DockerEra for Windows is Planed but not focused.

Ready Services are:

Route53 Clone S3 Clone EC2 Clone More Soon

TODO adding example of this use case

http://www.ebaytechblog.com/2014/05/12/delivering-ebays-ci-solution-with-apache-mesos-part-ii/#.VBkHBt_RekA in dockerera in less then 30 min ! Deploy 1000 EC2 Instances Running Jenkins and Process Jobs! powered by Direkt SPEED Europe and dockerera !!!!

OpenStack Example dockerera is in the controllers and on every node via the openstack nativ controlers

OpenStack Example Steup

dockerera's Projects

cli icon cli

Longshoreman command line interface.

cockpit icon cockpit

Cockpit, a user interface for GNU/Linux servers

docker-builder icon docker-builder

Docker builder (a.k.a. "Bob") builds Docker images from a friendly config file.

docker-spotter icon docker-spotter

Hook into docker event stream and execute commands on container events

docker-tools icon docker-tools

Collection of usefull docker-tools install able via docker run

dockerera icon dockerera

Docker era mergs the two Old Projects Container Harbor and Varius others into DockerEra Distribution

dockerera-builder icon dockerera-builder

This is a Spezial Docker Builder it Builds Docker Containers and images. And Also Manges this

dockerfu icon dockerfu

Martial Docker and Hipache. Techniques for zero-downtime updates of Docker-ized services and more.

dockerode icon dockerode

Not just another Docker Remote API node.js module

flynn icon flynn

A next generation open source platform as a service (PaaS)

fs-ceph icon fs-ceph

Deploy Ceph with minimal infrastructure, using just SSH access

remonit-cli icon remonit-cli

A set of command line tools to be used with Remonit dashboards. Main app repo is here

router icon router

Hipache: a distributed HTTP and websocket proxy

scheduler icon scheduler

Example of the Docker Event Handler that adds bind9 host and haproxy config running inside a container

scribe icon scribe

Scribe is a server for aggregating log data streamed in real time from a large number of servers. It is designed to be scalable, extensible without client-side modification, and robust to failure of the network or any specific machine.

statsd icon statsd

Simple daemon for easy stats aggregation

twemproxy icon twemproxy

A fast, light-weight proxy for memcached and redis

vessel icon vessel

Development environment setup automation

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.