Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Prochain SlideShare
«5 историй про метрики в 2ГИС» — Игнат Аникеев, 2ГИС
Suivant
Télécharger pour lire hors ligne et voir en mode plein écran

0

Partager

Télécharger pour lire hors ligne

«Автоматизация тестовой инфраструктуры в 2ГИС» — Антон Голицын, 2ГИС

Télécharger pour lire hors ligne

Выступление на конференции СodeFest-2016.

  • Soyez le premier à aimer ceci

«Автоматизация тестовой инфраструктуры в 2ГИС» — Антон Голицын, 2ГИС

  1. 1. Автоматизация тестовой инфраструктуры Антон Галицын, 2GIS 1 / 100
  2. 2. О себе Разработчик в отделе Infrastruсture & Operations Работал в команде OpenStack Занимаюсь автоматизацией деплоймента проектов 2ГИСа 2 / 100
  3. 3. У нас есть приложение! 3 / 100
  4. 4. Приложение C, gcc 4.9.3, Linux 4.2 $ ./codefest Codefest is IT conference! 4 / 100
  5. 5. Где будем тестировать? 5 / 100
  6. 6. Локально 6 / 100
  7. 7. Локально ➕ Просто А зачем что-то еще? 7 / 100
  8. 8. А что с Windows и OS X? 8 / 100
  9. 9. Локально ➖ Разные операционные системы 9 / 100
  10. 10. OK, Linux! 10 / 100
  11. 11. Упс... Some packages could not be installed. codefest: Depends: libstdc++6 (>= 5.2) but 4.9.2-10 is to be installed E: Unable to correct problems. 11 / 100
  12. 12. Локально ➖ Разные операционные системы Проблемы с зависимостями 12 / 100
  13. 13. Локально 13 / 100
  14. 14. Локально, с изоляцией 14 / 100
  15. 15. Локально, с изоляцией VirtualBox KVM LXC Docker 15 / 100
  16. 16. Где будем тестировать? Шаг 1 - создать окружение 16 / 100
  17. 17. Любое окружение надо конфигурировать 17 / 100
  18. 18. Конфигурация Documentation-driven Scripts (bash, python, perl) Configuration management (chef, ansible, puppet) 18 / 100
  19. 19. Где будем тестировать? Шаг 1 - создать окружение Шаг 2 - настроить окружение 19 / 100
  20. 20. Тестируем! ✔ Шаг 1 - создать окружение ✔ Шаг 2 - настроить окружение Прогоняем тесты, смотрим результаты 20 / 100
  21. 21. Автотесты показывают разные результаты! 21 / 100
  22. 22. Достоверные результаты автотестов 22 / 100
  23. 23. Достоверные результаты автотестов Результат автотестов повторяем 23 / 100
  24. 24. Достоверные результаты автотестов Результат автотестов повторяем Автотесты находят баги 24 / 100
  25. 25. Проблемы 25 / 100
  26. 26. Проблемы Окружений > 1 26 / 100
  27. 27. Проблемы Окружений > 1 Неоднородная инфраструктура 27 / 100
  28. 28. Проблемы Окружений > 1 Неоднородная инфраструктура Автотесты оставляют артефакты (tmp файлы, cache, неконсистентная база) 28 / 100
  29. 29. Решение 29 / 100
  30. 30. Решение Список окружений 30 / 100
  31. 31. Решение Список окружений Конфигурация в коде 31 / 100
  32. 32. Решение Список окружений Конфигурация в коде Инфраструктура по требованию 32 / 100
  33. 33. Решение Список окружений Конфигурация в коде Инфраструктура по требованию "Чистые" автотесты 33 / 100
  34. 34. Решение Список окружений Конфигурация в коде Инфраструктура по требованию "Чистые" автотесты 34 / 100
  35. 35. Универсальный инструмент ✔ Шаг 1 - vagrant provider (Vbox, LXC, Docker, Digital Ocean) ✔ Шаг 2 - vagrant provisioner (shell, chef, ansible, puppet) $ vagrant up 35 / 100
  36. 36. Что у нас есть? ✔ Список окружений ✔ Конфигурация в коде ✔ Инфраструктура по требованию 36 / 100
  37. 37. Переписываем приложение! 37 / 100
  38. 38. Web 38 / 100
  39. 39. Better Web 39 / 100
  40. 40. Service-oriented 40 / 100
  41. 41. Microservices 41 / 100
  42. 42. Где будем тестировать? 42 / 100
  43. 43. Удаленно 43 / 100
  44. 44. Варианты 44 / 100
  45. 45. Варианты Публичное облако (AWS, Digital Ocean, Rackspace) 45 / 100
  46. 46. Варианты Публичное облако (AWS, Digital Ocean, Rackspace) Приватное облако (VMware, HP) 46 / 100
  47. 47. Варианты Публичное облако (AWS, Digital Ocean, Rackspace) Приватное облако (VMware, HP) Приватное облако open-source (Apache Cloudstack, OpenStack) 47 / 100
  48. 48. Я просто хотел запустить тесты! 48 / 100
  49. 49. 2ГИС 49 / 100
  50. 50. 2ГИС Cправочник и карты Web, Mobile, Desktop 35 команд 50 / 100
  51. 51. Команды Разные языки Интеграции 51 / 100
  52. 52. Потребности команд Автоматизированное тестирование Достоверные результаты 52 / 100
  53. 53. Итог 35 команд Интеграции Автоматизированное тестирование 53 / 100
  54. 54. Где будем тестировать? 54 / 100
  55. 55. Что у нас есть? ✔ Свое железо 55 / 100
  56. 56. Что у нас есть? ✔ Свое железо ✔ Системные администраторы 56 / 100
  57. 57. Что у нас есть? ✔ Свое железо ✔ Системные администраторы ✔ Опыт в виртуализации 57 / 100
  58. 58. Инфраструктура компании не готова 58 / 100
  59. 59. Проблемы инфраструктуры Конец 2013 года - Proxmox Virtual Environment 59 / 100
  60. 60. Проблемы инфраструктуры Конец 2013 года - Proxmox Virtual Environment Создание виртуалок вручную по тикету 60 / 100
  61. 61. Проблемы инфраструктуры Конец 2013 года - Proxmox Virtual Environment Создание виртуалок вручную по тикету Нет разделения по проектам 61 / 100
  62. 62. Проблемы инфраструктуры Конец 2013 года - Proxmox Virtual Environment Создание виртуалок вручную по тикету Нет разделения по проектам Слабый API, платные плагины 62 / 100
  63. 63. Пора что-то менять! 63 / 100
  64. 64. Требования к решению 64 / 100
  65. 65. Требования к решению Эффективная утилизация железа 65 / 100
  66. 66. Требования к решению Эффективная утилизация железа Командные ресурсы 66 / 100
  67. 67. Требования к решению Эффективная утилизация железа Командные ресурсы Модульность 67 / 100
  68. 68. Требования к решению Эффективная утилизация железа Командные ресурсы Модульность Легко дорабатывать 68 / 100
  69. 69. Требования к решению Эффективная утилизация железа Командные ресурсы Модульность Легко дорабатывать API 69 / 100
  70. 70. Требования к решению Эффективная утилизация железа Командные ресурсы Модульность Легко дорабатывать API Изоляция 70 / 100
  71. 71. Варианты Публичное облако (AWS, Digital Ocean, Rackspace) Приватное облако (VMware, HP) ✔ Приватное облако open-source (Apache Cloudstack, OpenStack) 71 / 100
  72. 72. 72 / 100
  73. 73. Что такое OpenStack? OpenStack - набор сервисов для построения публичного или приватного облака. 73 / 100
  74. 74. OpenStack - open software Релиз раз в полгода status.openstack.org Базовые компоненты github.com/openstack Инкубатор github.com/stackforge Конференции, встречи, Q&A, mail-lists openstack.org/community 74 / 100
  75. 75. Контрибьюторы OpenStack openstack.org/foundation/companies Red Hat Rackspace IBM Intel Cisco 75 / 100
  76. 76. Решение проблем инфраструктуры 76 / 100
  77. 77. Решение проблем инфраструктуры ✔ Эффективная утилизация железа 77 / 100
  78. 78. Решение проблем инфраструктуры ✔ Эффективная утилизация железа ✔ Командные ресурсы 78 / 100
  79. 79. Решение проблем инфраструктуры ✔ Эффективная утилизация железа ✔ Командные ресурсы ✔ Модульность 79 / 100
  80. 80. Решение проблем инфраструктуры ✔ Эффективная утилизация железа ✔ Командные ресурсы ✔ Модульность ✔ Легко дорабатывать 80 / 100
  81. 81. Решение проблем инфраструктуры ✔ Эффективная утилизация железа ✔ Командные ресурсы ✔ Модульность ✔ Легко дорабатывать ✔ API 81 / 100
  82. 82. Решение проблем инфраструктуры ✔ Эффективная утилизация железа ✔ Командные ресурсы ✔ Модульность ✔ Легко дорабатывать ✔ API ✔ Изоляция 82 / 100
  83. 83. Инфраструктура по требованию 83 / 100
  84. 84. Инфраструктура по требованию Создание стеков из шаблонов server: depends_on: [ ip_adress, dns_record ] type: OS::Nova::Server properties: name: { get_param: name } flavor: { get_param: flavor } image: { get_param: image } key_name: { get_param: key_name } 84 / 100
  85. 85. Инфраструктура по требованию Создание стеков из шаблонов $ heat stack-create API -f api.yml -P key_name="id_rsa" -P name=api-all-in-one -P flavor=medium -P image="ubuntu-14.04-x64" 85 / 100
  86. 86. Это было начало 86 / 100
  87. 87. Развитие автоматизации 87 / 100
  88. 88. Continuous integration 88 / 100
  89. 89. github.com/2gis/vmmaster 89 / 100
  90. 90. Нагрузочное тестирование 90 / 100
  91. 91. github.com/2gis/badger 91 / 100
  92. 92. github.com/2gis/badger-api 92 / 100
  93. 93. И мы будем писать еще! 93 / 100
  94. 94. Выводы 94 / 100
  95. 95. Выводы Используйте однородные окружения 95 / 100
  96. 96. Выводы Используйте однородные окружения Храните конфигурации в коде 96 / 100
  97. 97. Выводы Используйте однородные окружения Храните конфигурации в коде Используйте "чистую" инфраструктуру по требованию 97 / 100
  98. 98. Собирайте достоверные результаты! 98 / 100
  99. 99. Спасибо! Антон Галицын a.galitsyn@2gis.ru github.com/agalitsyn 99 / 100
  100. 100. Нераскрытые темы про OpenStack Эксплуатация Деплой Апгрейд Тестирование Разработка плагинов Расследование инцидентов 100 / 100

Выступление на конференции СodeFest-2016.

Vues

Nombre de vues

400

Sur Slideshare

0

À partir des intégrations

0

Nombre d'intégrations

359

Actions

Téléchargements

0

Partages

0

Commentaires

0

Mentions J'aime

0

×