Современные подходы в разработке инфраструктурного кода

Наш эксперт, Игорь Курочкин, рассказал про современные подходы в разработке инфраструктурного кода и провел мастер-класс на конференции по интеграции процессов разработки, тестирования и эксплуатации DevOpsConf 2018, которая проходила в Москве 1 и 2 октября 2018 года.

В теоретической части рассмотрены:
1. Практика Infrastructure as code (Инфраструктура как код), которая помогает ускорять процесс поставки, снижать количества ошибок и улучшать взаимодействие команд разработки и эксплуатации;
2. Обзор и состояние в индустрии на 2018 год основных систем управления конфигурацией (Chef, Ansible, SaltStack, Puppet) на основе отчета The Forrester Wave Configuration Management Software For Infrastructure Automation;
3. Обзор экосистемы Puppet: Puppet Platform, Puppet Enterprise (Delivery, Pipelines, CodeManager), PuppetDB, PDK, Bolt, Beaker, Razor, Container Registry, Puppet DB, Facter;
4. Практики для разработки инфраструктурного кода: среда разработки и структура репозиториев, политики версионирования и разбиение на модули, управление артефактами и внешние зависимости, тестирование и ревью изменений, CI/CD для инфраструктурного кода;
5. Проблемы с разработкой кода: старые и разные версии инструментов, один репозиторий, монолитные модули и одна версия, только свои модули или старый форки, нет тестирования и ручная выкатка;
6. Варианты решений проблем с разработкой кода: документация, best practices, инструкции и регламенты, bootstrap скрипты и свои инструменты, git hooks, packages (gem, deb, rpm), Docker, Development Kit;
7. Создание и использование Development Kit, который включает: набор CLI инструментов и библиотек для локальной разработки и тестирования, Workflows, Best Practices, поддержку CI инструментов и ОС Linux, OS X, Windows. Примеры Development Kit: Chef DK, Puppet DK;
8. Обзор и состав Puppet Development Kit (PDK): утилита pdk, шаблоны для модулей, классов, провайдеров, задач, линтеры, фреймворки для тестирования, дополнительные утилиты, Rake обертки вокруг инструментов;
9. Puppet DK Workflow: установка, создание модуля, конвертация модуля, валидация и тестирование модуля. Расширение Workflow для создания Control репозитория, генерации документации, сборки и публикации модуля;
10. Планы по развитию Puppet DK: публикация модулей в Forge, конфигурация для PDK и утилит, валидация EPP, ERB и YAML, валидация и тестирования Control репозиториев (r10k), интеграция Puppet-strings, Diff изменений;
11. Книга Puppet Best Practices и конференция Puppetize Live.

В практической части использовались современные инструменты из Puppet экосистемы. Участники создали структуру модуля из шаблона, провели его по конвейеру, выполнили синтаксические, юнит и интеграционные тесты, автоматически создали документацию и загрузили полученный артефакт в хранилище Puppet Forge. Разобрались с устройством инфраструктурного репозитория, поняли как управлять внешними зависимостями, как тестировать все вместе и доставлять инфраструктурный код.

Подробнее в презентации и на слайдах ниже:
Свяжитесь с нами, если вам интересно развитие практики Infrastructure as code в вашей компании или команде. Мы можем вам помочь провести аудит подходов и инструментов, подготовить отчет и рекомендации по развитию, провести тренинги и воркшопы, поделиться своим опытом.