Successfully reported this slideshow.
Your SlideShare is downloading. ×

Chef по обе стороны Bamboo / Артем Семенов (Align Technology)

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 26 Ad

Chef по обе стороны Bamboo / Артем Семенов (Align Technology)

Download to read offline

Строим CI/CD в Bamboo, используя Chef
-----
Мы покажем эволюционный путь нашего CI/CD-процесса от маленького скрипта на python, до фреймворка на ruby:
+ рассмотрим типичные трудности, возникающие при построении CI/CD процесса с помощью CI-движка и Configuration management tools.
+ покажем реализованные решения на примере связки Chef + Bamboo:
o унификация деплоймент-процесса компании;
o деплойменты на гетерогенные environment'ы, включая Linux/Windows системы;
o инструментарий для построения CD-процесса в Bamboo.

Управление билд-фермой Bamboo с помощью Chef
-----
Для поддержки SDLC-процесса компании мы эксплуатируем большую географически распределенную гетерогенную билд-ферму агентов (80+ агентов на базе Windows, Linux и MacOS). С ростом количества билд-конфигураций и агентов мы столкнулись с задачей управления конфигурациями билд-агентов, с которой успешно справляемся с помощью решения на базе Chef.
Примеры решаемых задач:
+ настройка Bamboo-агентов с нуля;
+ сapability management при помощи ohai;
+ повышение эффективности использования билд-фермы.

Строим CI/CD в Bamboo, используя Chef
-----
Мы покажем эволюционный путь нашего CI/CD-процесса от маленького скрипта на python, до фреймворка на ruby:
+ рассмотрим типичные трудности, возникающие при построении CI/CD процесса с помощью CI-движка и Configuration management tools.
+ покажем реализованные решения на примере связки Chef + Bamboo:
o унификация деплоймент-процесса компании;
o деплойменты на гетерогенные environment'ы, включая Linux/Windows системы;
o инструментарий для построения CD-процесса в Bamboo.

Управление билд-фермой Bamboo с помощью Chef
-----
Для поддержки SDLC-процесса компании мы эксплуатируем большую географически распределенную гетерогенную билд-ферму агентов (80+ агентов на базе Windows, Linux и MacOS). С ростом количества билд-конфигураций и агентов мы столкнулись с задачей управления конфигурациями билд-агентов, с которой успешно справляемся с помощью решения на базе Chef.
Примеры решаемых задач:
+ настройка Bamboo-агентов с нуля;
+ сapability management при помощи ohai;
+ повышение эффективности использования билд-фермы.

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Similar to Chef по обе стороны Bamboo / Артем Семенов (Align Technology) (20)

Advertisement

More from Ontico (20)

Recently uploaded (20)

Advertisement

Chef по обе стороны Bamboo / Артем Семенов (Align Technology)

  1. 1. Chef по обе стороны Bamboo Сергей Валиев Артем Семенов
  2. 2. О Нас Артем Семенов Manager, DevOps Tooling @tema_typuct Сергей Валиев Sr. Enginer, DevOps Toolin @va1iev
  3. 3. Align Technology Международная медицинская компания
  4. 4. Деплоим из Bamboo
  5. 5. Наше решение
  6. 6. Деплоим из Bamboo
  7. 7. Деплоим из Bamboo • Что для этого нужно? – Запускать chef-client на нужных нодах – Получать результат выполнения chef-client – Параметризовать запуск – Синхронизоваться с другими деплойментами и тестами – Запуск тестовых планов – Маркировать билд-планы и артефакты по результатам деплоймента
  8. 8. Начало – call_chef_client.py • subprocess.Popen, если вы понимаете о чем я • login_win, password_win в коде • knife ssh, потом knife winrm • print '<<<<<Knife stderr below>>>>>' • Все работает!
  9. 9. Аппетит приходит во время еды • Определение проблем на Windows: knife winrm --returns 0 • Анализ вывода knife при помощи регулярных выражений: re.compile(r"STDERR:.*?DeploymentsFailed.*?WLSTException.*? $", re.I | re.M | re.S) • Управление credentials для разных сред: if args.env.lower() == 's3'
  10. 10. Advance usage • Обросли функциональностью для CD (like a boss!) – validate_ids_deploy_params.py – wait_for_previous_builds.py – check_build_green.py – run_test_plan.py – set_label.py – set_parent_label.py – check_build_label.py
  11. 11. Next step • Стали делать CI для cookbooks • Cхожие задачи с call_chef_client.py • Нужно было название получше • Решили перейти на фреймворк для интеграции в CI:
  12. 12. Chef-CI-helpers: Functionality • Deploy App – Удаленный синхронный платформонезависимый вызов chef-client • Поддержка разных workflow – Передача версий через CLI или Databags – Manual vs On-schedule chef runs • Windows remote support – WinRM – PsExec / RemCom • Управление секретами – Поддержка ключей – Chef-Vault • Upload артефактов на chef-server – На разные сервера
  13. 13. Chef-CI-helpers: Functionality #2 • Тестирование chef-кода – Chef-spec – Foodcritic – Валидация JSON • Bamboo CI management – Запуск билд планов / конфигураций (параметризованный) – Синхронизация при доступе к разделяемым ресурсам – Маркировка билд-планов и артефактов
  14. 14. Особенности решения • Все в одном месте – нет дублирования кода • Релиз процесс – Gem – Тестирование (в том числе unit) • Прозрачное версионирование – Фрейморк версионируется вместе с инфраструктурой и приложениями • Простое переиспользование сторонних компонентов – Ruby Gems FTW! • Быстро добавляем новую функциональность – Так как модульная структура
  15. 15. Что получилось 1. Собираем 2. Синхронизируем 3. Деплоим 4. Тестируем 5. … 6. Profit
  16. 16. • Реализовать поддержку динамических сред/энвайроментов – Привет, облака! • Убрать всю Bamboo-функциональность в отдельный модуль Дальнейшее развитие
  17. 17. • «Более лучшее» Продвинутое управление секретами – Key rotation – JumpCloud? • ChatOps? Дальнейшее развитие 2
  18. 18. CM для Bamboo фермы
  19. 19. CM для Bamboo • В портфолио компании софт, с основанный на разных стеках технологий: Ruby, .NET, C++, Python, Java, R – Даже R, Карл! • Все собирается на CI ферме • По мере организации CI процесса росло количество агентов и конфигураций – (80+ агентов, 130+ конфигураций)
  20. 20. CM для Bamboo #2 • Отнимающий много времени процесс настройки нового агента – Настройка/конфигурация нового билд-агента – Установка необходимого софта – Регистрация capability в bamboo
  21. 21. • Нужно – упростить выкатку нового софта. – автоматически регистрировать софт, который уже есть – собирать custom capability автоматически (location, os, cpu2+, cpu4+) – автоматический обновять информацию на сервере Bamboo • Универсальный агент? Не, не слышал. #тыжпрограммист
  22. 22. • упростить выкатку нового софта. Chef • собирать custom capability автоматически (location, os, cpu2+, cpu4+) Ohai-plugin • автоматически регистрировать legacy-софт Chef recipe • автоматический обновять информацию на сервере Bamboo Chef_handler report #тыжпрограммист 2 Use the Chef, Luke
  23. 23. Proof of Concept • cookbook: – собирает список установленного софта (attributes, recipe ) – capability-format support (library) – gentle build agent service management (chef_handler) – report capabilities to Bamboo server (chef_handler) – Linux / Windows support – Support of legacy agents Align Agency
  24. 24. Дальнейшее развитие • Создание и конфигурация Windows build-агентов c нуля • Ohai-плагин для сбора вспомогательных данных • Избавление от костылей • Миграция конфигурирования всех агентов с помощью align-agency • Going public?
  25. 25. Q&A
  26. 26. Q&A • Спасибо за внимание! • asemenov@aligntech.com • svaliev@aligntech.com

Editor's Notes

  • Артем
  • Артем
  • Серега
  • Серега
  • Тут все прекрасно. Можно просто по названиям наших скриптов пройтись : )
  • Артем
  • Артем
  • Артем
  • Артем
  • Артем
  • Артем

    + Еще chatops
  • Артем

    + Еще chatops
  • Артем
  • Артем
  • Серега
  • Серега
  • Серега
  • Серега

×