Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Software quality assurance days
20 Международная конференция
по вопросам качества ПО
sqadays.com
Минск. 24–26 ноября 2016
...
Практики и инструменты DevOps для построения тестового окружения
О себе
www.linkedin.com/in/ilya-semerhanov
https://www.fa...
Практики и инструменты DevOps для построения тестового окружения
О чем?
• Немного про DevOps
• Как можно использовать в те...
Практики и инструменты DevOps для построения тестового окружения
Зачем DevOps тестировщику?
Практики и инструменты DevOps для построения тестового окружения
DevOps
Практики и инструменты DevOps для построения тестового окружения
DevOps
Развертывание дев окружений
Автоматизация сборки
C...
Практики и инструменты DevOps для построения тестового окружения
DevOps
Развертывание дев окружений
Автоматизация сборки
C...
Практики и инструменты DevOps для построения тестового окружения
DevOps
Развертывание дев окружений
Автоматизация сборки
C...
Практики и инструменты DevOps для построения тестового окружения
DevOps
Развертывание дев окружений
Автоматизация сборки
C...
Практики и инструменты DevOps для построения тестового окружения
Проблемы
• Большое время между обнаружением бага, его фик...
Практики и инструменты DevOps для построения тестового окружения
Проблемы
Практики и инструменты DevOps для построения тестового окружения
Набитые шишки
• Test окружение ~ Production окружение
• Д...
Практики и инструменты DevOps для построения тестового окружения
Области применения
• Автоматическое создание тестовых окр...
Практики и инструменты DevOps для построения тестового окружения
Создание тестовых окружений
Практики и инструменты DevOps для построения тестового окружения
Автоматическое создание тестовых окружений
От «ручной» на...
Практики и инструменты DevOps для построения тестового окружения
Ansible
Инструмент для автоматического развертывания окру...
Практики и инструменты DevOps для построения тестового окружения
Ansible
• Взаимодействие с окружениями через SSH
• Просто...
Практики и инструменты DevOps для построения тестового окружения
Структура Ansible
Tasks
RolesDependencies
HandlersVariabl...
Практики и инструменты DevOps для построения тестового окружения
Модули
Готовые команды «из коробки». Более 100 различных ...
Практики и инструменты DevOps для построения тестового окружения
Ansible Playbooks
Сценарий на Yaml, состоящий из набора р...
Практики и инструменты DevOps для построения тестового окружения
Ansible Playbooks
Практики и инструменты DevOps для построения тестового окружения
Пример Ansible Playbook
Практики и инструменты DevOps для построения тестового окружения
Преимущества
• Скорость развертывания новых окружений
• Г...
Практики и инструменты DevOps для построения тестового окружения
Ansible Playbooks
Практики и инструменты DevOps для построения тестового окружения
Виртуализация
Практики и инструменты DevOps для построения тестового окружения
Использование виртуализации
• Virtual Box, VMWare, Hyper ...
Практики и инструменты DevOps для построения тестового окружения
Vagrant
Vagrant – оболочка для систем виртуализации.
•Про...
Практики и инструменты DevOps для построения тестового окружения
Для чего используется Vagrant
• «Песочница»
• Девелоперск...
Практики и инструменты DevOps для построения тестового окружения
Как начать работать с Vagrant
• Установка на машину
• Уст...
Практики и инструменты DevOps для построения тестового окружения
Создание собственного Box
• Поднять текущий бокс или вирт...
Практики и инструменты DevOps для построения тестового окружения
Пример VagrantFile
Практики и инструменты DevOps для построения тестового окружения
Docker
Позволяет создать изолированные среды на одной ОС ...
Практики и инструменты DevOps для построения тестового окружения
Docker
Практики и инструменты DevOps для построения тестового окружения
Пример DockerFile
Практики и инструменты DevOps для построения тестового окружения
Continuous Integration and Delivery
Практики и инструменты DevOps для построения тестового окружения
Использование практик CI и CD
• Каждое изменение -> новые...
Практики и инструменты DevOps для построения тестового окружения
Последовательность
Практики и инструменты DevOps для построения тестового окружения
Сбор и анализ логов
Практики и инструменты DevOps для построения тестового окружения
ELK Stack
Агрегация логов с разных окружений
ELK Stack
Практики и инструменты DevOps для построения тестового окружения
ELK Stack
• Удобный доступ к логам
• Средства поиска
• Ма...
Практики и инструменты DevOps для построения тестового окружения
Мониторинг окружений
Практики и инструменты DevOps для построения тестового окружения
Graphite + Grafana
http://sqadays.com/ru/talk/34444
Практики и инструменты DevOps для построения тестового окружения
Graphite + Grafana
Практики и инструменты DevOps для построения тестового окружения
Какие проблемы решаются?
• Время поставки новой версии зн...
Практики и инструменты DevOps для построения тестового окружения
Вопросы
Nächste SlideShare
Wird geladen in …5
×

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

1.992 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Bildung
  • Loggen Sie sich ein, um Kommentare anzuzeigen.

Практики и инструменты 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 для построения тестового окружения Вопросы

×