Оглавление

1. Теоретический материал

1.1 Что такое DevOps

DevOps - это методология совместной работы разработчиков, тестировщиков и других специалистов в команде IT-отдела. Она направлена на повышение эффективности работы команды, своевременное исправление ошибок и грамотное взаимодействие между участниками процесса. DevOps-инженер, представляет собой специалиста, работающего в соответствии с этой методологией.

DevOps можно описывать как идеологию, подход или набор методов. В простых словах, это и процессы, и специальные технические решения, которые обеспечивают создание единой среды для работы команды. Основная цель методологии - улучшить взаимодействие между разными специалистами IT-отдела.

Название DevOps происходит от сокращений "dev" - development (разработка) и "ops" - operations (поддержка). Ранее разработка и поддержка были двумя отдельными сферами. Идея DevOps заключается в том, чтобы сблизить эти сферы и установить эффективное взаимодействие между ними.

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

Untitled

1.1.1 Практики DevOps

Чтобы понимать, что такое DevOps, нужно иметь представление о его конкретных практиках. В блоке курса CI/CD мы с ними познакомимся.

Основных всего пять:

1.2 Что такое CI/CD

CI/CD  — это комбинация непрерывной интеграции (continuous integration) и непрерывного развертывания (continuous delivery или continuous deployment) программного обеспечения в процессе разработки.

Непрерывная интеграция (continuous integration) - это процесс, при котором продукт регулярно собирается из исходного кода и подвергается исполнению значительной части автоматических тестов, таких как модульные тесты. В случае, если автоматические тесты занимают много времени, их можно запускать реже, например, раз в сутки. Основной подход для организации непрерывной интеграции заключается в использовании инструментов, таких как TeamCity или Jenkins, которые загружают исходный код из системы контроля версий, осуществляют его сборку и запускают тесты.