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.

Практики и инструменты DevOps для построения тестового окружения

1,578 views

Published on

Доклад Ильи Семерханова на конференции SQA Days-20. 24-26 ноября 2016. Минск
www.sqadays.com

Published in: Education
  • Be the first to comment

Практики и инструменты DevOps для построения тестового окружения

  1. 1. Software quality assurance days 20 Международная конференция по вопросам качества ПО sqadays.com Минск. 24–26 ноября 2016 Семерханов Илья T-Systems RUS, Санкт-Петербург, Россия Практики и инструменты DevOps для построения тестового окружения
  2. 2. Практики и инструменты DevOps для построения тестового окружения О себе www.linkedin.com/in/ilya-semerhanov https://www.facebook.com/ilya.semerhanov
  3. 3. Практики и инструменты DevOps для построения тестового окружения О чем? • Немного про DevOps • Как можно использовать в тестировании • Как лучше настраивать тестовые окружения • Какие использовать инструменты для этого
  4. 4. Практики и инструменты DevOps для построения тестового окружения Зачем DevOps тестировщику?
  5. 5. Практики и инструменты DevOps для построения тестового окружения DevOps
  6. 6. Практики и инструменты DevOps для построения тестового окружения DevOps Развертывание дев окружений Автоматизация сборки Continuous Integration Development
  7. 7. Практики и инструменты DevOps для построения тестового окружения DevOps Развертывание дев окружений Автоматизация сборки Continuous Integration Development QA Развертывание тестовых окружений Автоматизация тестов Continuous Deployment
  8. 8. Практики и инструменты DevOps для построения тестового окружения DevOps Развертывание дев окружений Автоматизация сборки Continuous Integration Development QA Operations Развертывание тестовых окружений Автоматизация тестов Continuous Deployment Развертывание production окружения Автоматизация поставки Continuous DeliveryDeployment
  9. 9. Практики и инструменты DevOps для построения тестового окружения DevOps Развертывание дев окружений Автоматизация сборки Continuous Integration Development QA Operations Развертывание тестовых окружений Автоматизация тестов Continuous Deployment Развертывание production окружения Автоматизация поставки Continuous DeliveryDeployment На каждом этапе можно использовать DevOps
  10. 10. Практики и инструменты DevOps для построения тестового окружения Проблемы • Большое время между обнаружением бага, его фиксом и установкой • Неразбериха в тестовых окружениях и их конфигурациях • Конфигурацию тестовых окружений сложно менять • Проблема «А у меня все работает»
  11. 11. Практики и инструменты DevOps для построения тестового окружения Проблемы
  12. 12. Практики и инструменты DevOps для построения тестового окружения Набитые шишки • Test окружение ~ Production окружение • Деплоить надо как можно чаще • Как можно раньше нужно интегрировать все компоненты • Возможность откатиться необходима • Держать все конфигурации в коде
  13. 13. Практики и инструменты DevOps для построения тестового окружения Области применения • Автоматическое создание тестовых окружений • Использование виртуальных окружений • Использование практик Continuous Integration и Continuous Delivery • Мониторинг тестовых окружений и логов
  14. 14. Практики и инструменты DevOps для построения тестового окружения Создание тестовых окружений
  15. 15. Практики и инструменты DevOps для построения тестового окружения Автоматическое создание тестовых окружений От «ручной» настройки следует отказаться!
  16. 16. Практики и инструменты DevOps для построения тестового окружения Ansible Инструмент для автоматического развертывания окружений
  17. 17. Практики и инструменты DevOps для построения тестового окружения Ansible • Взаимодействие с окружениями через SSH • Простота написания сценариев • Декларативный язык • Большое количество готовых модулей • Большое сообщество
  18. 18. Практики и инструменты DevOps для построения тестового окружения Структура Ansible Tasks RolesDependencies HandlersVariables Templates
  19. 19. Практики и инструменты DevOps для построения тестового окружения Модули Готовые команды «из коробки». Более 100 различных модулей. •Shell •File •Copy •Cron •Template
  20. 20. Практики и инструменты DevOps для построения тестового окружения Ansible Playbooks Сценарий на Yaml, состоящий из набора ролей. ansible-playbook <имя_файла_сценария.yml> ... [другие параметры] •Позволяет описать процедуру автоматической настройки окружений •Можно использовать на всех окружениях один сценарий •Можно использовать таски в других сценариях
  21. 21. Практики и инструменты DevOps для построения тестового окружения Ansible Playbooks
  22. 22. Практики и инструменты DevOps для построения тестового окружения Пример Ansible Playbook
  23. 23. Практики и инструменты DevOps для построения тестового окружения Преимущества • Скорость развертывания новых окружений • Гарантия того, что окружения настроены одинаково • Уменьшение человеческого фактора
  24. 24. Практики и инструменты DevOps для построения тестового окружения Ansible Playbooks
  25. 25. Практики и инструменты DevOps для построения тестового окружения Виртуализация
  26. 26. Практики и инструменты DevOps для построения тестового окружения Использование виртуализации • Virtual Box, VMWare, Hyper V, etc… • Vagrant • Docker
  27. 27. Практики и инструменты DevOps для построения тестового окружения Vagrant Vagrant – оболочка для систем виртуализации. •Проще чем установка гостевой ОС из ISO •Большой набор готовых Box •Конфигурация через код – VagrantFile •Интеграция с Ansible
  28. 28. Практики и инструменты DevOps для построения тестового окружения Для чего используется Vagrant • «Песочница» • Девелоперское окружение • Тестовое окружение
  29. 29. Практики и инструменты DevOps для построения тестового окружения Как начать работать с Vagrant • Установка на машину • Установка Virtual Box • Установка плагинов через vagrant plugin install • Поиск нужной базовой сборки (vagrant box) или Vagrant-файл в репозитории Atlas (https://atlas.hashicorp.com/boxes/search) или GitHub Установка готового box: vagrant init hashicorp/precise64 Сборка из VagrantFile: vagrant up
  30. 30. Практики и инструменты DevOps для построения тестового окружения Создание собственного Box • Поднять текущий бокс или виртуальную машину • Внести изменения • Запаковать: vagrant package --output mynew.box
  31. 31. Практики и инструменты DevOps для построения тестового окружения Пример VagrantFile
  32. 32. Практики и инструменты DevOps для построения тестового окружения Docker Позволяет создать изолированные среды на одной ОС без гипервизора. •Просто создать с нуля любое количество окружений •«Быстрее» чем виртуализиция с гостевыми ОС •Конфигурация через код - DockerFile
  33. 33. Практики и инструменты DevOps для построения тестового окружения Docker
  34. 34. Практики и инструменты DevOps для построения тестового окружения Пример DockerFile
  35. 35. Практики и инструменты DevOps для построения тестового окружения Continuous Integration and Delivery
  36. 36. Практики и инструменты DevOps для построения тестового окружения Использование практик CI и CD • Каждое изменение -> новые билд • Новый билд -> новая версия • Новая версия билда -> загружаем в хранилище • Любой билд «потенциально» готов к установке • Установка автоматически после создания билда, по расписанию или по требованию
  37. 37. Практики и инструменты DevOps для построения тестового окружения Последовательность
  38. 38. Практики и инструменты DevOps для построения тестового окружения Сбор и анализ логов
  39. 39. Практики и инструменты DevOps для построения тестового окружения ELK Stack Агрегация логов с разных окружений
  40. 40. ELK Stack
  41. 41. Практики и инструменты DevOps для построения тестового окружения ELK Stack • Удобный доступ к логам • Средства поиска • Манипуляции логами
  42. 42. Практики и инструменты DevOps для построения тестового окружения Мониторинг окружений
  43. 43. Практики и инструменты DevOps для построения тестового окружения Graphite + Grafana http://sqadays.com/ru/talk/34444
  44. 44. Практики и инструменты DevOps для построения тестового окружения Graphite + Grafana
  45. 45. Практики и инструменты DevOps для построения тестового окружения Какие проблемы решаются? • Время поставки новой версии значительно уменьшается • Конфигурации всех окружений под контролем • Все окружения настроены идентично • Вносить изменения в конфигурацию значительно проще • Заранее видно проблемные окружения
  46. 46. Практики и инструменты DevOps для построения тестового окружения Вопросы

×