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.

Практический опыт создания уменьшенной копии боевой инфраструктуры сайта для тестировщиков

769 views

Published on

Доклад Андрея Шорина на конференции SQA Days-18, 27-28 ноября 2015 г., Москва
www.sqadays.com

Published in: Education
  • Be the first to comment

  • Be the first to like this

Практический опыт создания уменьшенной копии боевой инфраструктуры сайта для тестировщиков

  1. 1. Software quality assurance days 18 Международная конференция по вопросам качества ПО sqadays.com Москва. 27–28 ноября 2015 Андрей Шорин HeadHunter, Москва, Россия Практический опыт создания уменьшенной копии боевой инфраструктуры сайта для тестировщиков
  2. 2. Андрей Шорин Заместитель директора эксплуатации сайта hh.ru https://linkedin.com/in/andshorin учился в МФТИ на ФУПМ портировал Squid-cache под Windows оптимизировал .masterhost в 1,5 раза принес HeadHunter экономию в 9,5 млн. руб/год
  3. 3. hh.ru за 2 года uptime ⇗ 99,9%
  4. 4. hh.ru за 2 года uptime ⇗ 99,9% экономия 6 млн. руб в год
  5. 5. hh.ru за 2 года uptime ⇗ 99,9% экономия 6 млн. руб в год время доставки задач 7 дней ⇘ 4 часа
  6. 6. hh.ru за 2 года uptime ⇗ 99,9% экономия 6 млн. руб в год время доставки задач 7 дней ⇘ 4 часа 1 мин. простоя затрагивает более 30 тыс. пользователей
  7. 7. hh.ru 3-й в мире работный сайт по посещаемости 1,5 млн. посетителей в день 2 тыс. RPS
  8. 8. hh.ru 116 сервисов 280 серверов и виртуальных машин 1,5 ТБ логов в день 610 тыс. метрик в мониторинге
  9. 9. hh.ru 7 релизов сервисов в день 40 ГБ памяти на стенд 80 тестовых стендов 20 запусков автотестов в день 5,5 тыс. тестов в одном прогоне
  10. 10. одинаково ли запускаются сервисы?
  11. 11. одинаково ли запускаются сервисы? в одинаковых ли местах лежат логи?
  12. 12. одинаково ли запускаются сервисы? в одинаковых ли местах лежат логи? используются ли одни и те же конфиг-файлы?
  13. 13. Test vs Prod одинаково ли запускаются сервисы? в одинаковых ли местах лежат логи? используются ли одни и те же конфиг-файлы?
  14. 14. Одинаковые конфиги?..
  15. 15. Одинаковые конфиги?.. сначала чистый контейнер скрипты выкладки из эксплуатации конфиг-файлы из эксплуатции
  16. 16. Одинаковые конфиги?.. сначала чистый контейнер скрипты выкладки из эксплуатации конфиг-файлы из эксплуатции секретные настройки – в переменные
  17. 17. Одинаковые конфиги?.. сначала чистый контейнер скрипты выкладки из эксплуатации конфиг-файлы из эксплуатции секретные настройки – в переменные отличия от боевых конфигов – в переменные
  18. 18. Одинаковые конфиги?.. сначала чистый контейнер скрипты выкладки из эксплуатации конфиг-файлы из эксплуатции секретные настройки – в переменные отличия от боевых конфигов – в переменные Ansible, Puppet, Salt...
  19. 19. Одинаковые конфиги ru.headhunter.search.url=http://{{ intbal_ip1 }}:9199 ru.headhunter.search.connectiontimeout = 10 relations.mq.hosts={{ amqp_site_put }} relations.mq.username={{ amqp_site_l }} relations.mq.password={{ amqp_site_p }} relations.mq.virtualhost=site
  20. 20. Балансировщик Сервер 1 Балансировщик Сервис A Сервис B Сервер 2
  21. 21. Балансировщик на стенде зачем?
  22. 22. Балансировщик на стенде легче разбирать инциденты
  23. 23. Балансировщик Сервис AВход A Вход B Сервис B
  24. 24. Балансировщик Сервис AВход A Вход B Сервис B
  25. 25. Балансировщик Сервис AВход A Вход B Сервис B
  26. 26. Балансировщик Сервис AВход A Вход B Сервис B
  27. 27. Балансировщик Сервис AВход A Вход B Сервис B Критичный функционал
  28. 28. Балансировщик Сервис AВход A Вход B Сервис B Критичный функционал 500
  29. 29. Балансировщик на стенде легче разбирать инциденты тестировать конфигурацию балансировщика
  30. 30. Балансировщик на стенде легче разбирать инциденты тестировать конфигурацию балансировщика
  31. 31. Балансировщик на стенде легче разбирать инциденты тестировать конфигурацию балансировщика отладить ретраи
  32. 32. Балансировщик на стенде легче разбирать инциденты тестировать конфигурацию балансировщика отладить ретраи тестировать выкладку релиза
  33. 33. Балансировщик на стенде легче разбирать инциденты тестировать конфигурацию балансировщика отладить ретраи тестировать выкладку релиза
  34. 34. Как в бою сервис == сервер те же скрипты выкладки и конфиги различия – в переменные балансировщик процесс выкладки
  35. 35. Сократили на 100 мин в месяц простои сайта Научились автоматически раскатывать кластер Тестируем Debian пакеты Стенд создаем заново за 1,5 часа автоматически Контейнер с сервисом создаем заново за 1 минуту Сохранили скорость прохождения автотестов Запросы по памяти увеличились вдвое Тестируем боевую инфраструктуру
  36. 36. Андрей Шорин Site ops deputy head linkedin.com/in/andshorin Алексей Анисимов QA head facebook.com/irreality.0
  37. 37. Тестируй, как в бою
  38. 38. Тестируй, как в бою сервис == сервер
  39. 39. Тестируй, как в бою сервис == сервер те же скрипты выкладки и конфиги различия – в переменные
  40. 40. Тестируй, как в бою сервис == сервер те же скрипты выкладки и конфиги различия – в переменные балансировщик
  41. 41. Тестируй, как в бою сервис == сервер те же скрипты выкладки и конфиги различия – в переменные балансировщик процесс выкладки
  42. 42. Тестируй, как в бою сервис == сервер те же скрипты выкладки и конфиги различия – в переменные балансировщик процесс выкладки Практический опыт создания уменьшенной копии боевой инфраструктуры сайта для тестировщиков Андрей Шорин

×