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.

Foundations for the perfect technology stream

320 views

Published on

Slides of my talk at the IPC 2017 in Berlin (30.05.2017) about what challenges IT agencies are facing and how our company (VOTUM GmbH) deals with it in terms of technology by using Kubernetes/Docker and GitLab (and other tools) for infrastructure setup, Continuous Integration and deployment.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Foundations for the perfect technology stream

  1. 1. Foundations for the perfect technology stream
  2. 2. About me Bernd Alter CTO of VOTUM GmbH bernd.alter@votum.de @bazoo0815
  3. 3. Agenda Challenges for an agency Evolution of dev and CI at VOTUM GitLab-CI w/ Docker & its benefits for us Improvement of workflows Live demo
  4. 4. John Oliver "Quotations - the karaoke of ideas"
  5. 5. Who is/has been working in an agency?
  6. 6. What do agencies have to deal with?     different clients = different projects = different business cases
  7. 7. The good, the bad & the ugly
  8. 8. The good ...   it's challenging - new business cases no project is like the other - no boring repetitions
  9. 9. ... the bad ...   it's challenging - new technologies no project is like the other - different setup per project
  10. 10. ... and the ugly   many environments - maintenance for operations/devops - setup for developers
  11. 11. The challenge for an agency Well, just a Magento project. All good.
  12. 12. The challenge for an agency Two identical Magento projects?
  13. 13. The challenge for an agency Nope. 62.4 5.65.5 72.2
  14. 14. The challenge for an agency And now for something completely different ... 62.4 5.65.5 72.2 7 2.4 6.5
  15. 15. The challenge for an agency It doesn't get any better ... 62.4 5.65.5 72.2 7 2.4 6.5 6.3 7 5.6 62.414.04 5.4 2.4
  16. 16. The players & their needs CEO Client PO/QA Ops UX/UI Dev
  17. 17. The players & their needs CEO Client PO/QA OpsOps UX/UI DevDev PO/QA
  18. 18. Dev Developers want ... ... a full dev environment per project ... an easy local setup ... full set of ready-to-use tools
  19. 19. PO/QA Product Owners/QA want ... ... no technical 'overhead' ... easy access to visible project progress
  20. 20. Ops Operations/DevOps wants ... ... standardized setups for various projects ... same setup for all environments ... to easily run setup everywhere ... automation (of tests, deploys, etc.)
  21. 21. How can you deal with this in terms of technology?
  22. 22. A brief history of dev chain In ancient times ... (~1999) Live editing / FTP staging/production X LAMPP local dev environment
  23. 23. A brief history of dev chain ... then things somewhat improved ... Live editing / SFTP staging/production X LAMPP local dev environment
  24. 24. A brief history of dev chain 2009: Introducing Ant Deploy with Apache Ant staging/production X SVN X Ubuntu Server central dev server
  25. 25. A brief history of dev chain 2013: Vagrant, Ansible & Jenkins Deploy with Jenkins/Ansible staging/production X Git X local dev VM
  26. 26. A brief history of dev chain 2016/04: Docker cluster (VOTUM code week) Deploy with Jenkins/Ansible staging/production X Git X local dev VM Panel content Kubernetes cluster
  27. 27. A brief history of dev chain 2016/05: GitLab-CI integration with Docker runners Deploy with Jenkins/Ansible staging/production X Git X local dev VM Panel content Kubernetes cluster Automated testing
  28. 28. A brief history of dev chain 2017: full GitLab-CI pipeline, local Docker enviroments staging/production X Git X local Docker enviroment GitLab-CI Pipeline
  29. 29. Quick survey Testing? Continuous Integration? Docker? Kubernetes?
  30. 30. GITLAB-CI & DOCKER TO THE RESCUE!
  31. 31. Docker Engine Host OS Server PHP nginx PHP nginx Frontend Backend Postgres Elastic Search Redis Selenium Chrome Docker environments docker-compose for building Docker containers
  32. 32. Local dev setup It's really that easy! $ git clone git@git.votum-media.net:ci-pipeline/demo.git $ cd demo/ $ make setup
  33. 33. Kubernetes cluster Panelcontent Kubernetescluster Docker Ceph (Storage) Lazy NPM npm cache SatisComposer cache Selenium Grid frontend testing Docker Registry Sonar Qube code quality dashboard X Traefik HTTP reverse proxy
  34. 34. GitLab-CI - Pipeline
  35. 35. GitLab-CI - Environments
  36. 36. Improvement of workflows
  37. 37. Workflow
  38. 38. Workflow (better)
  39. 39. Statistics (1) Full local environment setup for Spryker project Setup for ... took ... Vagrant VM (VirtualBox) incl. basebox download 17:28 min   excl. basebox download 15:29 min Docker incl. image download 4:21 min   excl. image download 2:07 min
  40. 40. Statistics (2) Test suite with ~400 unit & functional tests Running tests ... took ... in local dev environment 326 sec on Gitlab-CI with Docker runners 130 sec
  41. 41. Our setup - the holy grail? Continuous Integration Container orchestration SCM Code quality GitLab GitLab-CI Kubernetes Sonarqube
  42. 42. No. Your setup might be this ... Continuous Integration Container orchestration SCM Code quality GitHub Travis-CI Kubernetes Sonarqube
  43. 43. ... or this. It's up to you. Continuous Integration Container orchestration SCM Code quality GitHub Rancher Jenkins Scrutinizer
  44. 44. It's not about tools, it's about a solution that fits you
  45. 45. Hardware
  46. 46. Tools, tools, tools ... (Code quality, like ) with Chrome & Firefox Code analysis/fix (phpcs/phpcbf ) GitLab-CI Docker SonarQube Scrutinizer Selenium grid
  47. 47. ... and even more tools (Container management) Docker cluster (on old discarded Dell PCs) (Docker-Image Repository) (local npm cache) (Composer Cache) (HTTP reverse proxy) (Storage) Kubernetes Docker Registry Lazy NPM Satis Traefik Ceph
  48. 48. Recommendations use Docker centralized automated testing (unit/functional & frontend) use CI pipelines (GitLab, Travis, Jenkins, ...) create environments per branch
  49. 49. Thanks for listening Comments? @bazoo0815

×