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.

Как Cluster Membership Software может помочь QA

10,427 views

Published on

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

Published in: Education
  • Be the first to comment

Как Cluster Membership Software может помочь QA

  1. 1. Как Cluster Membership Software может помочь QA? Алексей Алексеев Luxoft
  2. 2. Немножко про DevOps
  3. 3. Немножко про Service Discovery ● В понимании DevOps это общий инфраструктурный паттерн ● Направлен на обеспечении целостности связей между приложениями и сервисами ● Создает единую точку доступа к сервисам
  4. 4. Что такое кластер и зачем он нам нужен? Кластер — группа компьютеров, объединённых высокоскоростными каналами связи, представляющая с точки зрения пользователя единый аппаратный ресурс. Кластер - слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих приложений, и представляющихся пользователю единой системой.
  5. 5. Строительные материалы кластера ● Хосты (машины, ноды, боксы) ● Сеть ● Специализированное ПО ● Скрипты
  6. 6. Программная часть ● Обеспечивает связь всех узлов в кластере ● Отслеживает состояние узла ● Нотифицирует о проблемах с узлом ● Используется как сервис для управления кластером и узлами
  7. 7. Yandex Cocaine, OpenStack, Apache CloudStack ● PaaS, IaaS, SaaS ... ● Требует изменения существующей инфраструктуры ● Иногда требует серьезной доработки ● Может отсутствовать hosted-решение как класс ● OpenSource(не все)
  8. 8. Corosync ● Фреймворк для построения кластера ● Предоставляет C API ● Сложен в имплементации ● Сложен в настройке ● Недостаточно документирован ● OpenSource
  9. 9. Pacemaker ● Готовое решение ● Хорошо документирован ● Использует Сorosync в качестве основы ● OpenSource ● Сложен в настройке
  10. 10. Hashicorp Serf ● Готовое решение ● Прост в настройке ● Хорошо документирован ● Поддерживает множество языков ● OpenSource
  11. 11. Архитектура Serf daemon Serf daemon Serf daemon Serf protocol(gossip) handlers handlers handlers
  12. 12. Архитектура ● Handler - скрипт который обслуживает определенные события или запросы к кластеру ● Event - событие внутри кластера, не возвращает никакого ответа (fire and forget) ● Query - запрос у кластеру, требующий ответа, имеет ограничение на размер и время ● Все handler-ы написаны на bash
  13. 13. Архитектура Serf daemonEvent / query Call handler Basic handler query handler event handler
  14. 14. Пример обработки event Serf daemonSelf-update event Call handler Basic handler Self-update event handler Github handler repo
  15. 15. Как все это поможет QA? ● Единая сущность для доступа ко всем ресурсам ● Единая точка доступа к управлению приложениями ● Единая точка доступа по мониторингу окружения ● Единая точка доступа ко всему
  16. 16. Пример: Это Петя, он QA и у него есть огромное интеграционное тестовое окружение. Пете пишут что сейчав в окружении пойдут очень важные и сложные тесты перед релизом. И где-то в окружении есть приложение которое - хорошо бы обновить. Где оно? На какой машине? Как обновить? Но Петя умный, у него есть serf! serf query where <appname> serf event update <appname>@<host> serf query status <appname>@<host>
  17. 17. Это только начало! ● Управление деплоем приложений из любого места кластера ● Старт/стоп приложений на любой машине с любой машины ● Мониторинг ресурсов кластера ● Любой действие в кластере для которого вы напишите handler/event/query
  18. 18. Удаленная отладка скриптов
  19. 19. Удаленная отладка скриптов запущенных из скриптов
  20. 20. Тотальная трассировка всех скриптов: Тотальное логгирование:
  21. 21. А как сделать так чтоб все демоны на всех машинах были одной версии?
  22. 22. Host2 Host3 Host1 handlers NFS Serf daemon
  23. 23. Контакты http://linkedin.com/in/alexeyalexeev voodoo1441 https://google.com/+АлексейАлексеев144

×