Лучшие DevOps практики и кейсы

Как сэкономить нервы и время настроив CI/CD систему за пару часов

Методы Continuous Delivery и Continuous Integration (CI/CD) вошли в индустрию с развитием и популяризацией DevOps. До появления этих методик компании обновляли свои продукты не очень часто: ежемесячно, раз в квартал или даже раз в год.
Благодаря современным практикам релиз нового функционала может происходить хоть по несколько раз в день, при этом пользователь не испытывает никаких неудобств. Также появляется возможность делать тестовые релизы и проводить A/B тестирование.

Примерно так выглядит базовый пайплайн на проекте
Continuous Integration. Каждый коммит в репозитории запускает сборку, во время которой выполняются линтеры и разного рода тесты помогающие определить, сломалось ли что-то после внесенных изменений и достаточно ли хорош код. Самый частый сценарий - проверка покрытия кода тестами, сборка приложения, запуск различных тестов.
Continuous Delivery расширяет предыдущий этап и автоматизирует процесс сборки и релиза на сервер или в магазин приложений. Поэтому мы сможем зарелизить наше приложение в одно нажатие, когда посчитаем нужным. Также благодаря такому подходу к релизу можно очень быстро выполнить откат на предыдущую версию или же посмотреть список людей которые заапрувили этот релиз.
Continuous Deployment - Continuous Integration + Continuous Delivery.

Какие подготовительные шаги нужны?

Перед настройкой CI/CD на проекте Вам нужно подготовиться и сделать такие шаги:
  • использовать git и хранить свой код на Github/Gitlab/Bitbucket
  • покрыть код тестами
  • докеризировать ваши сервисы(по возможности)
  • выбрать CI/CD фреймворк

Рассмотрим более детально выбор CI/CD фреймворка для компаний на разных стадиях:


Стартапы: GitHub Actions, Travis CI, Circle CI
Средние/поздние стадии: Jenkins, GitlabCi, Bamboo, TeamCity

Для базовых пайплайн: GitHub Actions, Jenkins

Пример настройки TravisCI с Github

1. Входим в Github аккаунт
2. Заходим на travis-ci.com
3. Рекомендуем заходить через Github аккаунт
4. В Travis CI в левой части экрана находится строка поиска; нажмите на знак + под ней.

5. Если вы подключили свой GitHub аккаунт, то должны увидеть список существующих репозиториев, которые можно добавить

6.Нажмите нужный Вам проект и переведите переключатель в активное положение

7.Нажмите на кнопку настройки (обозначенную синей стрелкой выше). Рекомендуем вам прочитать о каждом варианте в документации Travis CI и выбрать наиболее подходящий. Мы будем использовать настройки по умолчанию.

8.Написание config файла:
Travis CI ожидает найти travis.yml в корне проекта, приблизительно в таком виде:
language: node_js
node_js:
  - "8"
script:
  - echo 'Build starts!!'
  - echo 'Installing Deps!'
  - yarn
  - echo 'Testing!'
  - npm run test:prod

language - язык Вашего проекта (список доступных)
node_js (или Ваш язык) - версия языка
script: выполняемый код (запуск тестов, сборка артефактов)
Если у Вас несколько языков в сервисах проектах воспользуйтесь этим решением.

На этом настройка закончена, когда Вы запушите новые изменения запуститься Travis. Информацию о результатах сборки Вы можете посмотреть на сайте.
Для делоя выберите Ваш Cloud из списка и следуйте инструкциям.

В заключении, мы хотим сказать, что разработка ПО - комплексная задача. Используйте подходящие инструменты, чтобы поддерживать процессы эффективными и автоматизировать рутинные задачи. Даже если вы не собираетесь внедрять CI/CD прямо сейчас, сделайте это своим приоритетом в ближайшем будущем, чтобы сэкономить время разработчиков и затраты на простои готовых решений, которые могут зарабатывать деньги в продакшене, не ожидая пока их задеплоят руками или в полуавтоматическом режиме.

Если вы не можете выбрать для себе СI/CD решение или у Вас есть другой вопрос по DevOps, вы можете связаться с нами, и мы поможет Вам решить Вашу проблему.
Статьи