During the weekend before DockerCon, over 250 people participated in a 24-hour Docker-centric hackathon. Big thanks to Rancher for sponsoring the hackathon and to Microsoft for sponsoring the DockerCon Street Fighter Tournament. Also, thank you to all of the participants who made this event full of learning, hacking and fun! Click here to view all the photos from the event.
The following tweet quite nicely summarizes how we feel about the hackathon and the incredible quality of the submissions!
— Alena Prokharchyk (@Lemonjet) June 21, 2015
Below are all of the hackathon submissions with the three winning projects featured at the top.
Top 3 Projects from DockerCon 2015 Hackathon
1. Docker Cortana Client by Haishi Bai and Dan Fernandez
In their own words:
Run Docker client commands using Cortana voice commands.
2. Pollendina PKI by Jeff Nickoloff, Dário Nascimento, Jason Huddleston, Madhuri Yechuri, and Henry Kendall
In their own words:
Pollendina is an X.509 identity provisioning service designed to simplify mutual TLS authentication for container-deployed microservices. Pollendina helps you provision your public key infrastructure as easily as you provision containers. The project is composed of an API for integration with your existing scheduling / deployment infrastructure, and a simple microservice (client) integration script. With Pollendina your secret material never leaves the container where it is generated, and clients can retrieve signed certificates with sub-second latency. Pollendina is fully open source (MIT) and available for download on Docker Hub.
3. Lightning Kite by Fabrizio, Toni, Tim, Iqbal, Jochen, and Terry
In their own words:
“The project aims to change Kitematic’s backend, from the current boot2docker implementation to use docker-machine. The user will have a range of choices for preferences, to enable machine drivers, and to setup them before launching a container.”
Street Fighter Tournament Winners
Here is a list of all the projects that were submitted during the DockerCon 2015 Hackathon:
In their own words:
“DockerDeps project allows partial build and deployment of docker images based on code change lists from SCM, the parent/child dependency matrix and the deployment definitions. It also allows dynamic generation of orchestration flows (run deck, puppet, chef, ansible) that will determine and redeploy the containers based on recent code change lists. Based on a highly pluggable model (with Plugins for SCM, Build tool and orchestration), newer SCM/Build/Deployment mechanisms can be adopted easily without lot of code changes.”
“We’ve build a simple benchmark tool to make benchmark easier. first add some images for some web framework , and use docker-machine deploy to different services providers. Finally, generate a bar chart to see the difference between frameworks and service providers. “I’d like to build a simple tool to make benchmark easier. I plan to build the images for some common benchmark tools (ex.wrk). Build some example for some web frameworks and some databases. So that I can use a simple yml file to setup my benchmark plan across multiple services provider (AWS, Digital Ocean, Azure) and then run it by something like `benchrock up`. The yml should look like: benchmark: wrk targets: – flask-example – rails-example – python-example – go-example – node-express-example machines: – mymachine1 – mymachine2 – mymachine3 Benchmark & targets should be the images on Docker Hub. Hosts should be the machine name listed in the docker-machine.”
“A grid computing platform based on Rancher. Rancher to easily make any docker-ready machine part of a dedicated pool running for specific grid-computing software (projects built for the platforms follow its specs and API to be docker/rancher grid-friendly) The idea that drives the project: have employees machines available anytime to run CPU intensive projects of our company, especially video conversion. The implementation on the platform is made here with a video conversion tool that will split the video video source in as many chunks as there are workers available on the platform for this project, using proper ffmpeg segmentation feature. “1 tool on the plaftorm = 1 dedicated Rancher instance started on the go” The platform is for “human”, but because it is backed by Rancher, public cloud based machines can be started in case “workers” are missing for a task.”
Build and run iOS apps using the docker tool suite. We implemented a docker remote API that talks directly to the Xcode build tools. We plan to support registries in the future as well as docker-compose and docker-machine.
Now, C/I is getting popular, but, in order to have C/I environment. We have to set up lots of software. We may be able to use cloud service for some of them, but I thought it would be nice if we have a single docker image which holds all of the necessary components for C/I, such as Repository, BTS, Jenkins and LDAP. “Open Source Delivery Kit” is a toolkit for continuous integration which can run on Docker engine. And also, I added OpenLDAP because some software require user setup redundantly. This toolkit is independent Docker pack, so it can work on the computer which isn’t connected with internet. It might bring about benefit to some projects from the security point of view. This toolkit is composed of pure OSS, and also its source codes, namely Dockerfile and related Chef recipes are also distributed. So anyone can use it without charge, can get C/I environment with just 2 commands, “docker pull” and “docker run”, and can customize it as you like. -Bug Tracking System (Redmine) -Repository (Subversion) -Orchestration Tool (Jenkins) -LDAP (OpenLDAP)
“Continuous Delivery powered by Docker! We zoom in on the “Integration” stage of a delivery pipeline for this year’s hackathon. Spin up EC2/OpenStack hosts running nothing but Docker, run security tests with Docker Bench, retrieve artifacts from Bintray and Docker Hub, stand up Docker containers running Wildfly and MySQL connected with Docker Link, run Selenium tests distributed across cores in a cluster, and automatically tear down the environment. We also use Docker Stats to monitor the application and surface these stats in a Dashing dashboard.”
“This service provides a editor for making it easier to Dockerfile. Dockerfile itself is overlapping layer as a pancake replace or manage and you can easily to bring from another file. So, one of the layers on a single pancake and make a Dockerfile like cooking sense.”
“warp is a simple wrapper for the Docker ecosystem. One stop shop to install, update, and interact with docker, machine, compose, etc. Provides capability to dynamically load functions and namespaces from your own helper scripts or convenience functions. Allows for theme support to customize color handling and screen size, including a truncate as well as a line wrap mode. warp has extremely minimal system dependencies (almost 100% bash), so it will work as-is on a variety of vanilla and minimal operating systems without extra language support needed, including OS X and Ubuntu.”
Deploy to Docker provides a 1-click method to deploy a project to Docker. It allows deployment of an existing Docker Compose-enabled GitHub repo to services like DigitalOcean and handles provisioning of the servers and deployment of the containers. It can be used to try out a project or to preview staging/feature branches.
Let’s build the ultimate docker demo, viewable in a browser with pluggable panes which could be – command-line – graphical resource or “”inspect”” views – dashboard (e.g.Seagull or Kitematic). The goal is to enable functional, snazzy, fun demos of your favorite container techno! Demo scenario could be each of: – Basic cmd-line pane plus rich GUI views of Docker file system and other resources – multi-frame demo of a multi-tier or load-balanced scenario with separate performance pane – a bunch of snazzy GUI demos (D3 demos, Jupyter, … )
SherDock by Darren Shepherd, Alena Prokharcyk, James Harris, Bill Maxwell, Josh Curl, Vincent Fidducia, Ankush Agarwal, Shannon Williams
SherDock was done by the Rancher Labs team and was NOT eligible to win!
In their own words:
Introducing SherDock: Docker Image Management Simplified SherDock is a container that runs on your host to automate the management of images and volumes on your Docker machine. SherDock – – Discovers Images, sizes, and status. – Shows volumes, reads on disk metadata to find orphaned volumes. – Graphs image layers – Garbage collects images on a configurable interval – Configure garbage collection exception list – Auto pulls latest versions of images
For the 2015 Hackathon of the ufi team decided to implement a canary testing system with Docker containers and piecing together some existing software. The canary testing will help with CI to verify new software is working properly.
Wharf is an API to let Docker Compose users post their compose yaml file and get back a CloudFormation template defining an ECS cluster. Future planned expansion for this involves a) integration with Docker Hub to let you deploy your containers to ECS easily, b) visualization of containers and their links in a web UI
ComposeMonkey helps developers test their Docker containers for failures and interruptions. Our hack is an out-of-the-box solution for developers to provide an environment with deliberate interruptions and latency in the system. We create proxy containers for links in the docker-compose.yaml file and provide a user interface to control the behaviors of the downstream services. The chosen behavior is then reflected in the containers. Developers don’t need to modify their .yaml files. Proxy containers are created in the background and developers don’t need to make any config changes.
Pipes by Francis Bouvier, Charles Raimbert
In their own words:
We all love micro-services. Mostly because they follow the Unix philisophy: one simple tool for each task. In Unix we can easily chain those tools by the standard input/output, through the pipe. But in a cloud environment we can’t. We have either to use specific RPC features or build for each service a dedicated API. Even so we still have to manage all the orchestration and worflow process. This makes the micro-services less agnostic, difficult to test and difficult to deploy. What if we could just do the same in the Cloud as in our terminal ? service_1 | service_2 | service_3
Orchestration is one of the big topics in the microservice world and container space. All the software pieces have be run, scheduled and coordinated in an distributed environment. So we thought, how about combining the concepts of music and microservices into a project and create something that is fun! Orchestra is a project that runs and coordinates different musician microservices using multicast service discovery. It plays a classic Händel song on a CoreOS cluster with Weave networking.
It is easy to bring 1000s of containers up and running, but it’s very hard to configure networking for that amount of containers and write 100s of Bash scripts to control Docker containers at scale. To solve that problem I’m planning to create programmable future for scaling Docker containers without any problems based on flaxton.io project, which is already solved networking problem for Docker containers at scale. It will allow program logic of Docker containers infrastructure using Python or Ruby programming languages.
Docker VLAN by Naoto Yamamoto, Yuji Oshima, Hisaharu Ishii, Sotris Salloumis, Clinton Kitson, Hariharan Subramanian
In their own words:
VLAN Extension for libnetwork/bridge driver. VLAN is simple, but widely used in many enterprise systems. Enabling VLAN will spread Docker’s use case and Enhancing security based on isolation. Our hack supports single and multiple hosts.
To Create new network:# ./docker-1.8.0-dev network create -d bridge --vlanid=200 --ifname=eth0 --bip=x.y.z.w/q --fixed-cidr=x.y.z.w/q br200
To attach new container:# ./docker-1.8.0-dev run -itd --net=br200:<container-IP> ubuntu /bin/bash
The goal of swarm-sec is to assess and highlight the security issues in a native swarm cluster setup and faciliate a developer or administrator to deploy a secure cluster environment. swarm-sec is an extension to docker-bench-security. Currently swarm-sec can: – Assesses possible issues in swarm daemon configuration – Details node-specific security issues in the cluster – Remote connection issues between the node and swarm manager
It is a priority to create a bulletproof server software. Customers need a system in place to react as quickly as possible to vendor releases of new security vulnerabilities. Traditionally, and especially for open source projects, the product is often acquired (anonymously) through a variety of channels and contacting the user can be downright impossible. Libsecurity provides a solution for Docker users act as a real time mitigation and resolution for receiving and acting on new vulnerabilities.
Many thanks to all the participants who made this event a success! We had a fantastic time thanks to you and hope to see you at the next Docker hackathon.
Learn More about Docker
- Read more about the Ecosystem Technology Partner (ETP) program
- New to Docker? Try our 10 min online tutorial
- Share images, automate builds, and more with a free Docker Hub account
- Read the Docker 1.7 Release Notes
- Subscribe to Docker Weekly
- Register for upcoming Docker Online Meetups
- Attend upcoming Docker Meetups
- Register for DockerCon Europe 2015
- Start contributing to Docker