Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Docker and Pharo @ZWEIDENKER

4,339 views

Published on

Docker and Pharo @ZWEIDENKER
Talk held at ESUG18, Cagliary, Italy.

Published in: Technology
  • Be the first to comment

Docker and Pharo @ZWEIDENKER

  1. 1. Docker and Pharo @
  2. 2. We are… Pierre Chanson Marcus Denker Norbert Hartl
  3. 3. • Founded in 2009 (10 Year party next year!) • 13 people in Cologne (Germany) and Ho Chi Minh City (Vietnam) • iPhone, Android, Web, Backend. Pharo! • You might know the german Call A Bike or Flinkster Car Sharing.
  4. 4. This presentation • Server infrastructure • Application deployment, Monitoring • Workflow: following one commit step-by-step
  5. 5. The project • Big project: mobility service for Airbus • Need for scale: +10k users in a few hours timeframe • Need not to be killed by complexity
  6. 6. API message queue cars bikes cars trains buses API Micro services
  7. 7. Iceberg Jenkins Docker HubDocker Swarm db Pharo Pharo Pharo Pharo Pharo Pharo Pharo
  8. 8. Regular day of coding at the office…
  9. 9. Regular day of coding at the office… self flag: #bob true become: false
  10. 10. Regular day of coding at the office… Gotta show this to my boss ! self flag: #bob true become: false
  11. 11. Regular day of coding at the office… How ??? Gotta show this to my boss ! self flag: #bob true become: false
  12. 12. Iceberg Jenkins Docker HubDocker Swarm db Pharo Pharo Pharo Pharo Pharo Pharo Pharo
  13. 13. Git commit Git push Pull request Review… “Good job” merge
  14. 14. Iceberg Jenkins Docker HubDocker Swarm db Pharo Pharo Pharo Pharo Pharo Pharo Pharo
  15. 15. Wassup ? (every 10 mins) Alright, pull
 run tests
 docker …
  16. 16. What is Docker? • Think about it as a Smalltalk image, but for Linux • Docker Image is build from a description (Dockerfile) • Then we can run it (once or multiple times)
  17. 17. Wassup ? (every 10 mins) Alright, pull
 run tests
 docker-compose build docker-compose push
  18. 18. Iceberg Jenkins Docker HubDocker Swarm db Pharo Pharo Pharo Pharo Pharo Pharo Pharo
  19. 19. Iceberg Jenkins Docker HubDocker Swarm db Pharo Pharo Pharo Pharo Pharo Pharo Pharo
  20. 20. Ansible: Orchestration • We need to start lots of stuff (Pharo, Webserver, MessageQueue, Database…) • Ansible is a way to script typical unix admin things • Both used to setup the Linux machines and to start Docker
  21. 21. ansible-playbook -i myInventory myYml.yml (there is nothing worse than yaml!)
  22. 22. Iceberg Jenkins Docker HubDocker Swarm DB
  23. 23. Docker: Swarm • We want to run on multiple machines • Swarm allows to run “services” which scale to multiple docker containers • Manages Distribution, restart…
  24. 24. Iceberg Jenkins Docker HubDocker Swarm DB
  25. 25. Monitoring • Lots of machines (virtual and real) • Lot of different software (database, web, message queue, lots Pharo images) • How do we look at it?
  26. 26. Monitoring • Grafana • Dashboard • Alarms: Get Notifications via Mail and in Slack • Docker images provide data via REST API • Pharo GC, Zinc Requests
  27. 27. internet API message queue web client load balancer bikes DB cars DB trains DB buses DB API DB
  28. 28. load balancer Physical servers API DB DB DB bikes bikes cars carsbuses trains buses API
  29. 29. And that x 3 • We have 3 Swarms: • Alpha (development) • Beta (testing) • Production • And you can run the whole setup on your laptop, too! +100 Pharo images overall in our cluster
  30. 30. Much more… Pharo Library for Docker Swarm (work in progress)
  31. 31. Much more… • Lots of in-house libs • Visualise Docker Swarm with Roassal (first work) • Docker Health Check from Pharo • Server for and Pharo app for Fuel Stack Traces • DockerEngine + OpenAPI Tell us what you want to see at the Show Us Your Project !

×