DevOps - это методология совместной работы разработчиков, тестировщиков и других специалистов в команде IT-отдела. Она направлена на повышение эффективности работы команды, своевременное исправление ошибок и грамотное взаимодействие между участниками процесса. DevOps-инженер, представляет собой специалиста, работающего в соответствии с этой методологией.
DevOps можно описывать как идеологию, подход или набор методов. В простых словах, это и процессы, и специальные технические решения, которые обеспечивают создание единой среды для работы команды. Основная цель методологии - улучшить взаимодействие между разными специалистами IT-отдела.
Название DevOps происходит от сокращений "dev" - development (разработка) и "ops" - operations (поддержка). Ранее разработка и поддержка были двумя отдельными сферами. Идея DevOps заключается в том, чтобы сблизить эти сферы и установить эффективное взаимодействие между ними.
До появления DevOps разработчики, тестировщики и администраторы часто работали изолированно, что приводило к замедлению работы, нарушению процессов и многочисленным ошибкам, которые оставались незамеченными. Обновления программ выпускались лишь раз в несколько лет, и к моменту их появления многое уже было устаревшим. Такой подход к работе был неэффективным. Поэтому возникла гибкая методология Agile, основанная на непрерывной разработке маленькими итерациями. Именно из этой методологии выросла идея DevOps.
Чтобы понимать, что такое DevOps, нужно иметь представление о его конкретных практиках. В блоке курса CI/CD мы с ними познакомимся.
Основных всего пять:
CI/CD — это комбинация непрерывной интеграции (continuous integration) и непрерывного развертывания (continuous delivery или continuous deployment) программного обеспечения в процессе разработки.
Непрерывная интеграция (continuous integration) - это процесс, при котором продукт регулярно собирается из исходного кода и подвергается исполнению значительной части автоматических тестов, таких как модульные тесты. В случае, если автоматические тесты занимают много времени, их можно запускать реже, например, раз в сутки. Основной подход для организации непрерывной интеграции заключается в использовании инструментов, таких как TeamCity или Jenkins, которые загружают исходный код из системы контроля версий, осуществляют его сборку и запускают тесты.