Всем привет!
Сегодня мы поговорим на тему – что такое DevOps и зачем оно нужно. Мы не будем вдаваться в исторические подробности появления данной методологии, а обсудим что из себя представляет DevOps на практике сейчас.
Что такое это ваше DevOps? Если уж совсем простым языком – это методология, которая решает ряд проблем доставки программного продукта от ноутбука разработчика или целого отдела до боевых серверов (production), на которых будет развернут тот самый продукт, который так старательно разрабатывали.
До появления этой всеми так полюбившейся методологии, во времена мамонтов и динозавров, на каждый сервер, продукт переносили руками из-за чего возникали большие проблемы в масштабировании и обновлении продуктов.
Но это было давно … Что же происходит сейчас?
В современном DevOps используется как правило две практики – CI и CD
CI (continuous integration) – непрерывная интеграция. Предназначен для автоматизации тестирования и сборки продукта.
На данном этапе можно выявить, критические баги, путем автоматизированного тестирования. Если тестирование было пройдено успешно – продукт собирается в специализированный дистрибутив. В противном случае – возвращается на доработку обратно разработчикам.
CD (continuous deployment) - непрерывное развертывание. Подразумевается, что после успешного прохождения первой практики, нужно установить уже собранный дистрибутив на все сервера. Именно этим и занимается данная практика.
На самом деле практик больше. Но сегодня мы об этом не будем говорить.
Какие технологии используются при этом всем? К самым популярным продуктам можно отнести:
Git – для совместной разработки, а так же версионирвоания кода
Docker – для упаковки кода в контейнер
Ansible – для управления конфигурациями на сервере
GitLab/Jenkins – для автоматизации сборки и доставки продукта серверов
Существует roadmap , в которой отражено сочетания разных технологий
В данный момент DevOps – это дорого . Для построения работоспособности системы, которая будет работать как часы уходит достаточно большое время. Очень сложно стать DevOps инженером без каких-либо минимальных знаний о данной методологии, программировании и администрирование.
Как правило DevOps инженерам становятся либо разработчики, либо администраторы.