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.

Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Александр Дубровин (Superjob)

671 views

Published on

HighLoad++ 2017

Зал «Кейптаун», 8 ноября, 10:00

Тезисы:
http://www.highload.ru/2017/abstracts/2914.html

Казалось бы, что нужно для организации тестового окружения? Тестовая железка и копия боевого окружения - и тестовый сервер готов. Но как быть, когда проект сложный? А когда большой? А если нужно тестировать одновременно много версий? А если все это вместе?

Организация тестирования большого развивающегося проекта, где одновременно в разработке и тестировании около полусотни фич - достаточно непростая задача. Ситуация обычно осложняется тем, что иногда есть желание потрогать еще не полностью готовый функционал. В таких ситуациях часто возникает вопрос: "А куда это можно накатить и где покликать?"
...

Published in: Engineering
  • Be the first to comment

Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Александр Дубровин (Superjob)

  1. 1. Готовим тестовое окружение, или сколько тестовых стендов вам нужно Александр Дубровин SuperJob
  2. 2. SuperJob — это: 1 млн пользователей в сутки более 20 млн резюме 2 млн приглашений в месяц
  3. 3. Немного истории
  4. 4. Немного истории
  5. 5. Немного истории Dev
  6. 6. Немного истории Dev test-app
  7. 7. Немного истории Dev test-app
  8. 8. Немного истории Dev QA test-app
  9. 9. Немного истории Dev QA test-app
  10. 10. Немного истории Dev QA test-app
  11. 11. Немного истории Team-a Team-b QA test-app
  12. 12. Немного истории Team-a Team-b QA test-app
  13. 13. Немного истории Team-a Team-b QA test-app
  14. 14. Немного истории Team-a Team-b QA test-app
  15. 15. Немного истории Team-a Team-b QA test-app
  16. 16. Немного истории Team-a Team-b QA PM test-app
  17. 17. Немного истории Team-a Team-b QA PM test-app
  18. 18. Немного истории Team-a Team-b QA PM CI test-app
  19. 19. Немного истории Team-a Team-b QA PM DBDB Cache RMQ CI test-app
  20. 20. Идея
  21. 21. Идея  Зачем много тестовых стендов?
  22. 22. Идея  Зачем много тестовых стендов?  Тестовый стенд – только когда он нужен.
  23. 23. Идея  Зачем много тестовых стендов?  Тестовый стенд – только когда он нужен.  Тестовый стенд под каждую версию кода.
  24. 24. Идея  Зачем много тестовых стендов?  Тестовый стенд – только когда он нужен.  Тестовый стенд под каждую версию кода.  Независимые стенды с похожим окружением.
  25. 25. Идея  Зачем много тестовых стендов?  Тестовый стенд – только когда он нужен.  Тестовый стенд под каждую версию кода.  Независимые стенды с похожим окружением.  Возможность быстро создавать такие стенды.
  26. 26. Идея  Зачем много тестовых стендов?  Тестовый стенд – только когда он нужен.  Тестовый стенд под каждую версию кода.  Независимые стенды с похожим окружением.  Возможность быстро создавать такие стенды.  Легкая в управлении система.
  27. 27. Суровая реальность
  28. 28. Суровая реальность  Большой сложный проект
  29. 29. Суровая реальность  Большой сложный проект  Сервис в 4х доменных зонах
  30. 30. Суровая реальность  Большой сложный проект  Сервис в 4х доменных зонах  Куча поддоменов
  31. 31. Сказано — сделано!
  32. 32. Сказано — сделано!  Docker/docker-compose
  33. 33. Сказано — сделано!  Docker/docker-compose  Распиливаем монолит
  34. 34. Сказано — сделано!  Docker/docker-compose  Распиливаем монолит выделяем сервисы
  35. 35. Сказано — сделано!  Docker/docker-compose  Распиливаем монолит выделяем сервисы  Настраиваем сеть
  36. 36. Сказано — сделано!  Docker/docker-compose  Распиливаем монолит выделяем сервисы  Настраиваем сеть  Поднимаем dns и api
  37. 37. Сказано — сделано!  Docker/docker-compose  Распиливаем монолит выделяем сервисы  Настраиваем сеть  Поднимаем dns и api  Делаем ssl-ca
  38. 38. Сказано — сделано!  Docker/docker-compose  Распиливаем монолит выделяем сервисы  Настраиваем сеть  Поднимаем dns и api  Делаем ssl-ca  Автоматизируем
  39. 39. Заработало!
  40. 40. Заработало!  Изначально – тестирование
  41. 41. Заработало!  Изначально – тестирование
  42. 42. Заработало!  Изначально – тестирование  Демо хосты
  43. 43. Заработало!  Изначально – тестирование  Демо хосты
  44. 44. Заработало!  Изначально – тестирование  Демо хосты  Boost для ci
  45. 45. Заработало!  Изначально – тестирование  Демо хосты  Boost для ci
  46. 46. Заработало!  Изначально – тестирование  Демо хосты  Boost для ci  Управление стендами
  47. 47. Заработало!  Изначально – тестирование  Демо хосты  Boost для ci  Управление стендами
  48. 48. Заработало!  Изначально – тестирование  Демо хосты  Boost для ci  Управление стендами  Общее время
  49. 49. Заработало!  Изначально – тестирование  Демо хосты  Boost для ci  Управление стендами  Общее время
  50. 50. Итог
  51. 51. Итог Было: «Вася, а какой тестовый свободный – мне свою задачу раскатить потестировать».
  52. 52. Итог Было: «Вася, а какой тестовый свободный – мне свою задачу раскатить потестировать». Стало: «Жму кнопку и через полторы минуты получаю новый тестовый стенд под конкретную задачу».
  53. 53. Итог
  54. 54. Итог  Не нужно искать тестовый стенд – его нужно развернуть.
  55. 55. Итог  Не нужно искать тестовый стенд – его нужно развернуть.  Все тесты в один клик
  56. 56. Итог  Не нужно искать тестовый стенд – его нужно развернуть.  Все тесты в один клик  Столько тестовых стендов, сколько нужно сейчас.
  57. 57. Александр Дубровин SuperJob dubrovin@superjob.ru

×