Одно из важных направлений работы Friflex — DevOps. Мы объединяем разработку и эксплуатацию в непрерывный цикл, чтобы приложения и сайты стабильно функционировали. В этой статье рассказываем про популярную DevOps-практику — CI/CD.
Многие определения CI/CD начинаются с того, что это философия. С этим трудно поспорить. Интересно другое: философия CI/CD перекликается с японской культурой Кайдзен.
Что такое CI/CD
СI/CD расшифровывается как continuous integration, continuous delivery, непрерывная интеграция и непрерывная доставка. Это практики, которые помогают автоматизировать разработку, тестирование и развертывание. Можно выделить шесть основных этапов СI/CD:
CI и CD появились как отдельные концепции. CI бурно обсуждали в девяностых, когда появилось экстремальное программирование. Эта методология предполагала, что разработчики должны часто вносить свой код в общий репозиторий, а каждая итерация — проверяться тестами.
CD популяризировали Джез Хамбл и Дэвид Фарли. В 2010 у них вышла книга Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation («Непрерывная доставка: надежные релизы программного обеспечения путем автоматизации сборки, тестирование и развертывания»). Если вы когда-нибудь решите почитать про CD что-то действительно основополагающее, эта книга — отличный выбор.
CD продолжает процесс, который начинается с CI, и расширяет его до автоматической доставки изменений в коде до тестовой и производственной среды.
У CI и СD настолько схожие цели, что их объединение произошло совершенно естественно. CI создает стабильный фундамент, устраняет «интеграционный ад» при объединении кода из разных источников и поддерживает качество кода. CD позволяет быстро развертывать изменения, улучшать продукт и реагировать на изменения рынка.
Что такое Кайдзен
Если поближе приглядеться к японской философии Кайдзен, можно рассмотреть американский след. После Второй мировой войны экономика Японии была в тяжелом положении. Власти пригласили из США ученого Уильяма Деминга. Он прочитал серию лекций, которые так впечатлили японских инженеров и менеджеров, что те вскоре совершили экономическое чудо. (Конечно, степень влияния методов статистического контроля качества Деминга на японское экономическое чудо остается предмет споров).
Идеи Деминга вдохновили японского инженера и менеджера Тайити Оно. Он стал одним из главных архитекторов философии Кайдзен и разработал систему производства Toyota (TPS) — эталон бережливого производства. Кайдзен основана на пяти принципах:
Вскоре философия распространилась далеко за пределы производства. Оказалось, что она отлично работает в разных контекстах, от образования до личной жизни.
Что общего у CI/CD с Кайдзен
Непрерывное совершенствование
CI/CD: постоянно улучшает процесс разработки, ускоряет запуск новых функций и минимизирует риски, связанные с развертыванием.
Кайдзен: учит, что даже небольшие и постепенные изменения могут привести к значительным результатам, если проявить настойчивость.
Циклический подход
CI/CD: использует циклический подход. Он включает в себя планирование, разработку, тестирование, развертывание и мониторинг. Этот цикл бесконечно и непрерывно повторяется.
Кайдзен: тоже использует циклический подход. Он известен как цикл PDCA (Plan-Do-Check-Act). PDCA включает планирование, действие, проверка и снова действие. Его используют многие компании. Например, General Electric и Honeywell.
Сосредоточенность на людях
CI/CD: подчеркивает важность сотрудничества между членами команды разработчиков. Успех в CI/CD невозможен без командной работы, обмена знаниями и поддержки между участниками.
Кайдзен: говорит, что нужно уважать сотрудников, вовлекать их во все аспекты улучшения процессов, обучать и развивать.
Культура обучения
CI/CD: продвигает непрерывное обучение. Каждая ошибка — это возможность улучшить продукт. Команды постоянно изучают новые инструменты, методы и практики.
Кайдзен: говорит, что учиться и развиваться могут и должны все. В компаниях, которые следуют принципам японской корпоративной философии, постоянное совершенствование — это норма.
Улучшение качества
CI/CD: уделяет много внимания качеству. Автоматическое тестирование на каждом этапе интеграции помогает уловить дефекты раньше, поэтому исправить их гораздо проще. Это поддерживает высокий стандарт качества продукта на протяжении всего цикла разработки.
Кайдзен: учит, что нужно устранять любые недостатки в продукте или процессе. Считает качество ключевым аспектом улучшений.
Как видите, у CI/CD и кайдзен действительно много общего. Но это не совсем одно и то же. Например, практики CI/CD подходят большим командам, а кайдзен может быть сложно внедрить в крупных организациях, где уже сложилась своя корпоративная культура. И, самое главное, CI/CD применяется только в разработке, а кайдзен — во всех сферах.
Подробнее о том, как работает техподдержка Friflex, можно почитать на нашем сайте.