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.

О том, как оптимизировать работу CI своими силами

9,593 views

Published on

Доклад Егора Васильева на конференции SQA Days-19, 20-21 мая 2016 г., Санкт-Петербург

Published in: Education
  • Be the first to comment

  • Be the first to like this

О том, как оптимизировать работу CI своими силами

  1. 1. О том, как оптимизировать работу CI своими силами
  2. 2. FRONTEND API WORKER MongoDB REDIS ADMIN TOOL Структурная схема проекта RabbitMQLOGIN
  3. 3. Git Flow
  4. 4. PROD Environments UAT DEV QA STAGING
  5. 5. COMMIT Процесс сборки BUILD TESTS DEPLOY
  6. 6. Heroku heroku git:clone -a my_app … git add . git commit -m "my first commit» git push heroku master
  7. 7. web: python app.py Heroku
  8. 8. Скорость Простота Гибкость Множество модулей Стабильность Мультиязычность HTTPS Buttons + Heroku
  9. 9. Heroku Buttons
  10. 10. Скорость Простота Гибкость Множество модулей Стабильность Мультиязычность HTTPS Buttons Цена Ограничения Время деплоя + - Heroku
  11. 11. Минусы архитектуры 1) Очень дорого 2) Невозможность одновременно смотреть разные feature ветки 3) Нет возможности параллельного запуска тестов 4) Безопасность 5) Bamboo 6) Долгий деплой
  12. 12. Решение: шаг первый - свой локальный сервер
  13. 13. Решение: шаг первый - свой локальный сервер
  14. 14. Корпус MicroATX Minitower Zalman ZM-T5 Black Кулер Cooler Zalman CNPS2X Блок питания 600W ZALMAN ZM600-LE RAM 2 x DIMM 16Gb 2x8Gb KIT DDR3 PC12800 1600MHz Kingston SSD 128Gb Samsung 850 Pro Series Материнская плата Gigabyte GA-B150M-D3H DDR3 B150 Socket- 1151 4xDDR3 Процессор Intel Core i7-6700 Skylake (3.4GHz) Решение: шаг первый - свой локальный сервер
  15. 15. Общая цена сервера: 56500 ≈ 785$ Цена старой архитектуры в месяц: 4*7+3*7+18*3+10=113$ Окупаемость - 7 месяцев Решение: шаг первый - свой локальный сервер
  16. 16. Решение: шаг второй - локальный teamcity
  17. 17. Docker
  18. 18. docker run -d --name=teamcity-agent-1 --link teamcity:teamcity --privileged -e TEAMCITY_SERVER=http://teamcity:8111 sjoerdmulder/teamcity-agent:latest Docker
  19. 19. Решение: шаг второй - локальный teamcity sjoerdmulder/teamcity-docker sjoerdmulder/teamcity -agent sjoerdmulder/teamcity -agent sjoerdmulder/teamcity -agent Сервер Агент АгентАгент
  20. 20. Решение: шаг третий - Dokku
  21. 21. Решение: шаг третий - Dokku
  22. 22. COMMIT BUILD UNIT TESTS DEPLOY Решение: шаг третий - Dokku
  23. 23. BACKEND FRONTEND WORKER CONNECT ADMIN TOOL UNIT TESTS UNIT TESTS UNIT TESTS DOKKU DEPLOY LOCAL WORKER LOCAL CONNECT LOCAL BACKEND LOCAL FRONTEND LOCAL ADMIN TOOL E2E TESTS E2E TESTS
  24. 24. Старт Dokku deploy Передан ли branch name? Существуют ли контейнеры для данного брачна? branch name develop нет да Создает сервера из сорцов в репозиториях Появились ли новые коммиты? да нет Финиш нет Редиплой серверов с новым кодом да
  25. 25. Решение: шаг третий - Dokku
  26. 26. Решение: шаг третий - Dokku
  27. 27. Решение: шаг четвертый - VPN
  28. 28. Решение: шаг четвертый - VPN
  29. 29. Решение: шаг пятый - Мониториг
  30. 30. Плюсы новой архитектуры 1) На много дешевле, чем старый вариант в перспективе 2) Мы имеем столько конфигураций, сколько нам нужно 3) Можно одновременно тестировать разные ветки 4) Можем запускать тесты одновременно на разных ветках 5) Закрыто за vpn 6) Скорость деплоя возросла в несколько раз 7) Все приложения стали работать заметно быстрее 8) Упростилась возможность потенциального расширения
  31. 31. Вопросы? egorvas@gmail.com +79166260768

×