24.08.2022
DevOps – это акроним от словосочетания «development and operations», что переводится, как «разработка и эксплуатация». Это не является каким-либо набором языков программирования и методов тестирования программного обеспечения (ПО), DevOps https://wiki.merionet.ru/servernye-resheniya/36/vse-chto-vam-nuzhno-znat-pro-devops/ – это, скорее, идеология слияния разработки ПО, его отладки и развертывания у потребителя.
Причины появления DevOps
Традиционный цикл создания большого программного продукта состоит из следующих этапов:
- Написание программного кода для набора модулей, на которые разбит проект. Выполняется отделом программистов.
- Тестирование каждого модуля в отдельности отделом тестирования. При обнаружении ошибок модуль отправляется на доработку в отдел программирования.
- Сбор проекта из готовых модулей и его тестирование. В случае ошибок повторяется пункт 2 для модулей, где выявлены ошибки работы в составе проекта.
- Передача в отдел развертывания работающего проекта, где на его основе собирают дистрибутив для продажи.
Как видно, в такой схеме нет сквозной связи между отделами, каждая команда в конкретный момент времени занята лишь собственной задачей и не знает, что происходит с проектом в целом.
Теперь представим ситуацию, что на этапах 3 или 4 выясняется, что нужно изменить или добавить некий функционал в продукт. Например, изменились требования заказчика или рынка, ведь большое промышленное ПО разрабатывается годами. И снова запускается конвейер из пунктов 1-4, причем переделывать ПО часто сложнее, чем разрабатывать с нуля.
Именно с целью упростить вышеприведенный конвейер и сделать его работу более гибкой и была разработана концепция DevOps. Важной задачей является слияние отделов в единую команду, где сотрудник одного отдела может, в случае нужды, выполнить задачи другого и знает их средства разработки. Также вводится автоматизация такого взаимодействия.
Результатом внедрения DevOps в идеале должно стать ускорение процесса разработки продукта и увеличение гибкости и прозрачности его изменения. На практике это новая и развивающаяся технология, которой противится часть разработчиков, так как она нарушает их привычный стиль деятельности, требует от сотрудника больших знаний и способности работать в многозадачном режиме.