Непрерывная интеграция
Изменения кода следует интегрировать часто, чтобы обнаруживать и устранять проблемы на ранней стадии. Нет двухнедельных веток, я смотрю на тебя, да ты читатель. Я знаю, что ты делаешь это. Объедини свой код, черт возьми. Объединяйте работающие, функциональные фрагменты кода, когда они будут готовы, вам не нужно ждать, чтобы завершить всю историю. Используйте флаги функций и автоматические тесты, чтобы сделать это возможным.
Подробнее о непрерывной интеграции: https://aws.amazon.com/devops/continuous-integration/
Непрерывная доставка
Изменения кода должны быть доставлены в производство, как только они будут готовы. Нет ожидания окна выпуска или заранее запланированного цикла выпуска.
Непрерывная обратная связь
Помните, что DevOps — это циклы обратной связи, как и CI/CD. Оптимизируйте скорость сбора отзывов. Потерпеть неудачу быстро и потерпеть неудачу тяжело. Вы не хотите ждать неделю, чтобы найти ошибку, когда вы могли бы найти ее за час. Организуйте свою воронку так, чтобы самая быстрая обратная связь была первой. Ваш линтер работает очень быстро, убедитесь, что он запускается как можно быстрее, чтобы разработчики не ждали времени. Спросите себя, как быстрее всего я могу получить эту обратную связь, и помните, что вы можете запустить множество тестов локально, не дожидаясь внешнего конвейера.
Процесс CICD должен включать циклы обратной связи для сбора отзывов об изменениях кода и внесения улучшений на основе этих отзывов.
Полная автоматизация
Это может быть очевидно, да, все дело в автоматизации. Однако подумайте о своем конвейере: есть ли какие-либо ручные шаги, кроме, может быть, кнопки утверждения перед развертыванием продукта? Если это так, вы должны работать над этим.
Вы должны быть в состоянии встать и снести полностью новые среды в автоматическом режиме. Это ключ к быстрому безопасному перемещению.
Автоматизированное тестирование:
Вы все еще не ждете, пока команда ручных тестировщиков проработает модуль Runbook… верно? ВЕРНО? Возможно, вам это сойдет с рук в 2010 году, но это абсолютно неприемлемо в 2022 году. Любой, кто недостаточно автоматизирует свои тесты, выбрасывает деньги на ветер (время — деньги, а ошибки будут проскальзывать и тратить ваше время).
Различные уровни автоматизированных тестов в вашей CI/CD являются одним из ключевых компонентов CI/CD и DevOps. Если у вас этого нет, ВЫ НЕ занимаетесь DevOps.
Мониторинг
Процесс CICD должен включать мониторинг для быстрого обнаружения и устранения проблем.
Безопасность
Процесс CICD должен отдавать приоритет безопасности для защиты от уязвимостей и взломов. Думали ли вы о безопасности при построении своего пайплайна? В настоящее время доступно множество бесплатных инструментов сканирования безопасности, таких как автоматическое сканирование уязвимостей GitHub.
Масштабируемость
Все программы должны быть рассчитаны на рост по мере роста пользовательской базы, CI/CD не исключение. Кто является пользователями CI/CD? Разработчики. Учтите это при создании своего. Возможно, сейчас, пока проект небольшой, хорошо иметь 1 общую среду, но что происходит, когда сложность возрастает, и разработчикам нужно действовать быстро? Сможете ли вы поддерживать эфемерные среды или, по крайней мере, выделенную среду для каждого разработчика для их тестирования?
Устойчивость
Процесс CICD должен быть разработан таким образом, чтобы справляться со сбоями и быстро восстанавливаться. Сможете ли вы быстро откатить неудачное производственное развертывание или это займет час?
Постоянное улучшение
Хотя это и не является строго компонентом архитектуры CI/CD, это ключ к разработке хорошей CI/CD. Регулярно ли команда обсуждает хорошее, плохое и идеи по улучшению? Так и должно быть, если вы хотите заявить, что занимаетесь DevOps или agile.
Культура
Процесс CICD должен поддерживаться культурой сотрудничества, экспериментирования и обучения.
Магистральная разработка
Это стратегия ветвления управления версиями, при которой разработчики работают над общей магистральной ветвью, а не создают отдельные ветки для каждой функции или исправления ошибки. Это может упростить процесс CICD и облегчить интеграцию и развертывание изменений кода.
Флаги функций
Флаги функций позволяют безопасно вносить изменения в код, скрывая их за флагом, который можно включать и выключать. Это позволяет вам развертывать изменения кода и тестировать их в рабочей среде, прежде чем сделать их доступными для всех пользователей.
Инфраструктура как код
Инфраструктура как код относится к практике управления инфраструктурой (например, серверами, сетью и безопасностью) с помощью кода, а не с ее ручной настройкой. Это позволяет автоматизировать подготовку, настройку и управление инфраструктурой, что упрощает развертывание изменений кода.
Заключение
Создание хорошего процесса CICD требует культуры сотрудничества, непрерывного обучения и экспериментов. Поощрение культуры DevOps может способствовать созданию такой среды.
Вы хотите улучшить свои навыки работы с AWS и пообщаться с другими профессионалами в области облачных вычислений?
Присоединяйтесь к дискорд-группе Arcadian Cloud! Наше сообщество экспертов по AWS, DevOps и полному стеку призвано помогать друг другу в подготовке к сертификации, устранении технических неполадок, улучшении резюме и обеспечении лучших рабочих мест в облаке. Не упустите эту ценную возможность учиться и расти вместе с единомышленниками. Нажмите на ссылку ниже, чтобы присоединиться сейчас и начать получать пользу от знаний и поддержки в нашем сообществе.
«Присоединяйтесь к серверу Arcadian Cloud Discord!
Познакомьтесь с сообществом Arcadian Cloud в Discord — общайтесь с 4 другими участниками и наслаждайтесь бесплатным голосовым и текстовым чатом.discord .гарантированная победа"
Не забывайте подписываться на меня, чтобы получать новые обновления, и несколько раз нажмите кнопку аплодисментов, если вам нравится то, что вы читаете👏👏👏— аплодисменты подпитывают мой день и мотивируют меня писать больше классных вещей !