Last month, over 5,000 people attended one of the 125 Docker Birthday celebrations scheduled worldwide! In case you missed it, check out the pics from all of the #dockerbday celebrations including the awesome birthday cakes!
With the help of the community, we created a self-paced beginners’ tutorial for attendees to learn Docker basics as they built, shipped and ran the voting app.
Those who managed to finish the tutorial rapidly were encouraged to hack on this voting app based on what they learned. From rewriting the python web app or the java worker to scaling the voting app with Docker Swarm or adding an ELK stack as logging mechanism, participants came up with really good ideas on how to improve the app while learning.
The Docker team voted for the top 3 winners using the following judging criteria:
- Fit: Does Docker improve the project or fundamentally enable it?
- Efficiency: Is this implementation small in size, easy to transport, quick to start up and run?
- Integration: Does the project integrate well into other systems, or is it sufficiently complex itself to be its own system?
- Usefulness / coolness: Is the feature or improvement useful / cool?
- Longevity: Can the project be improved / built upon?
The results are finally in and we’re excited to share with you the names of the winner but we first wanted to highlight one of the hack that we really stood apart: Docker Birthday app running in Windows Containers on TP4 by Stefan Scherer. This is the Docker Birthday app running on a Windows Server 2016 TP4 completely in Windows Containers. There are some workarounds as some features are missing but, we thought it was really cool to see a preview before Windows containers hit GA so we’ve decided to award Stefan an honorary 1st place.
- A haproxy load balancer, based on the dockercloud/haproxy image, for dynamic configuration.
- Dockerized the locust load testing framework, in order to create fake http requests to the voting page.
- Autoscaling of the voting-app and worker containers. Using the docker remote API, I monitor the CPU usage of the two containers and scale up or down, depending on the threshold. The bottom threshold is 5% and the upper at 30%.
- Updated tutorial.md with instructions to run a scalable birthday app on Docker Swarm
- Added voting and worker apps load balancer configuration file lb/haproxy.cfg at docker-birthday-3/example-voting-app
- Updated docker-compose.yml and added the load balancer service
Vote from multiple languages, improved NodeJs server and see live results in Donut chart by Kulin Choksi
- Maintain list of programming languages to be voted in python app (http://localhost:5000/)
- Randomly generate votes, can specify how many random votes you want to generate (http://localhost:5000/generate-random-votes?count=1000)
- Each random voter id is prefixed with “#”
- Without count parameter, it will generate 100 random votes
- Watch live voting result with Pie chart (http://localhost:5001/)
- NodeJs server is improved to send score only when found change from last database polling
- If new client is connected to NodeJs server then it will send score to that client only instead of broadcasting
Congratulations to our winners!
1st place wins a swag package and a free conference pass to DockerCon 2016.
— Docker (@docker) September 18, 2015
Here is the complete list of all the hacks they were submitted as part of the Docker Birthday App Challenge:
Learn More about Docker
- 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.10 Release Notes
- Subscribe to Docker Weekly
- Sign up for upcoming Docker Online Meetups
- Attend upcoming Docker Meetups
- Register for DockerCon 2016
- Watch DockerCon EU 2015 videos
- Start contributing to Docker