Моя первая работа из колледжа была для крупной программного обеспечения компании. У нас были основные годовые выпуски нашего флагманского продукта и незначительных выпусков каждый месяц или около того. Мы следили за традиционным циклом выпуска программного обеспечения.
Наши клиенты были использованы для этого. Они решили, нужно ли принимать обновление. Они были под контролем. Это было немного страшно, так как мы были продавцом — не их.
Мы решили перейти к CI/CD, превратить процесс на голову и возьмите современный подход к разработке программного обеспечения. Как только функция продукта завершена и проверена, нажмите ее в производство.
Звучит неплохо? Это, но это только верхушка айсберга. Есть намного больше, что идет в предоставление высококачественного опыта для ваших конечных пользователей.
фото Неонбранд на Бессмысленно .
Установите ожидание
При перемещении от традиционного цикла выпуска программного обеспечения до CI/CD, вы можете быть удивлены, чтобы найти столько отблесений от людей внутри, когда вы находитесь внешне от ваших клиентов.
Люди не любят изменения. Это человеческая природа. Дайте кому-то рутину, и они будут счастливы. Переход к постоянному развертыванию — это все равно что рассказать кому-то, «все, что вы сделали до сих пор, не так. Пожалуйста, повторите все это.
Внутренняя борьба
Внутри вашей компании вы собираетесь получить ответ от всех сторон Орг. Они должны переделать договоры клиентов. Они не понимают, как что-то может сделать его до производства без полного цикла тестирования регрессии. Они не доверяют разработчикам не нарушать все.
Там собираются быть икотами. У вас есть около 0% шансов вытащить его без сцепки на первой попытке. Все в порядке. Установите ожидание, что процессы меняются, а вы глажете некоторые детали.
Ожидания клиентов
Ваша существующая клиентская база привыкается к тому, чтобы вы ведете себя определенным образом, но теперь вы собираетесь изменить способ, которым вы работаете на что-то «лучше». » Вам придется доказать вашим клиентам, что эта новая модель лучше, чем вы сейчас делаете.
Вы должны убедить их, что собирается задержать их процесс. Это ваш шанс доказать, что дефектный оборот выходит в экспоненциально быстрее. Там больше нет ожидания определенной даты, чтобы увидеть исправление. Как только изменение было сделано, это в их руках.
фото Гэри Чан на Бессмысленно .
Ritch слово «релиз»
Когда вы переключитесь на CI/CD, стандартная модель выпуска выходит из окна. Вместо этого вы должны сосредоточиться на Небольшие инкрементные изменения Поскольку каждый кодовый толчок собирается на изготовление.
Больше нет «релизов» с этим методом развертывания. Вы не собираетесь доставлять обновленную версию вашего продукта, который в большей части изменения в этом нет. Вместо этого вы будете доставлять крошечные кусочки функциональности, исправления ошибок, улучшений и функций ежедневно.
Частность не должна быть установлена. Всякий раз, когда разработчик заканчивает код, и QA одобряет его, отправить его. Это может означать раз в неделю, или это может означать пять раз в день. Идея состоит в том, что когда она готова, это доступно.
Вам нужно будет выяснить, насколько Verbose вы хотите быть с вашим «заметками выпуска». «Так как вы не выдвигаете релизы, вам их нужно?
У некоторых компаний есть технический писатель, посвященный команде разработки. С каждой кнопкой кода The Tech Writer придумает краткое, удобное для пользователя описание того, что изменилось. Описание нажата на страницу «Что обновлена», которая разбита на день.
Есть много способов выпускания заметок, и ни один из них не лучше других. Делайте то, что лучше всего подходит для вашей компании.
фото Бретт Иордан на Бессмысленно .
Подчеркивать автоматические тесты
Скорость пребывания Ci/CD не позволяет вручную проверку дыма вашего приложения с каждым изменением. Было бы невозможно отстаивать изменения.
Чтобы привить уверенность как внутри, так и снаружи для вашей организации, вы должны создать набор автоматизированных тестов, которые выполняются всякий раз, когда сделано изменение. Автоматизировать дымовые тесты, которые вы сделали бы вручную. Они завершены значительно быстрее. Кроме того, он удаляет возможность человеческой ошибки.
В моей команде мы проводим два набора автоматизированных тестов с каждым изменением кода. Во-первых, у нас есть надежный набор модульных тестов, которые осуществляют код. Они проверяют пути успеха и неудачи для каждой функции в нашей кодовой базе. Если тесты подразделения не удаются, сбор сборки — это означает, что наши изменения не развернуты.
Если блок тестирует пропуск, мы переходим к интеграционным тестам. Мы построили сильный набор Почтальон Коллекции, которые проходят через стандартные бизнес-процессы в нашем приложении. Эти тестирующие все деловые потоки наш приложение поддерживают, и они постоянно развиваются. Еще раз, если какой-либо из этих тестов не удается, наша сборка не удалась — и ничто не развернуто.
Только когда все тесты и тесты единиц и тесты интеграции мы знаем, что мы не нарушили обратную совместимость или не влиять на другой компонент приложения отрицательно.
Автоматизированные тесты — «построить один раз, тестировать навсегда» инвестиции.
С небольшим количеством адапфронтов вы можете гарантировать, что конкретный бизнес-процесс всегда будет работать, когда вы вносите изменения в приложение. Когда вы делаете производство, толкает пять раз в день, имея такую уверенность, является абсолютным должно.
фото Quino Al. на Бессмысленно .
Знать, что делать, когда дела идут не так
Допустим, разработчик выдвинул изменение кода, вызвало отключение системы. Автоматизированные тесты не были обновлены для тестирования сценария, поэтому он пронзил и сделал его в производство.
Вы возвращаете изменения? Вы находите исправления и нажать на другое изменение?
С CI/CD, особенно с архитектурой микросервиса, вам нужно принять менталитет «всегда вперед, никогда не вернуться». Сделайте все возможное, чтобы решить проблемы с изменением кода, которое прогрессирует ваше приложение вперед, а не возвращаться во время более старого совершения.
Вещи пойдут не так. Они всегда делают, и это нормально. Наличие стратегии на месте, прежде чем перейти к CI/CD, поможет обуздать беспокойство разработчиков, поддержки и клиентов.
Одна из лучших вещей, которые вы можете сделать, чтобы помочь поймать, когда все собирается идти ужасно неправильно, — это настроить активное мониторинг.
Вы хотите знать, что есть проблема, прежде чем ваши клиенты делают.
Есть много способов сделать активное мониторинг, и он сильно варьируется в зависимости от вашей архитектуры. Один эффективный метод, который вы можете использовать независимо от того, какая у вас архитектура, это что-то вроде Postman Monitor Отказ
Мониторы запускают набор тестов в течение дня и предупреждают вас, если что-то пойдет не так. Вы можете заставить их проходить через аудиты безопасности, бизнес-процессы или подтверждать контракты API. Все, что вам нужно, это API.
фото Пасхальный на Бессмысленно .
Будь умным о том, как вы разбиваете работу
CI/CD Mantra Маленький, Инкрементные изменения. Мы все знаем, что не все новые функции приложений невелики. Может быть, вы реализуете функцию поиска для вашего приложения.
Добавление поиска требует ряд изменений:
- Настройка elasticsearch.
- Заполнение индексов Elasticsearch.
- Создание способа получения новых данных, добавленных к индексам.
- Создание конечных точек поиска.
- Предоставление способа поиска в пользовательском интерфейсе.
С традиционным циклом выпуска вы просто построили все эти компоненты и отправляли конечный продукт. Но это не то, как он работает с CI/CD.
Каждая пулевая точка выше, будет отдельным толчком к производству. Вы постепенно построили функцию со временем, и самое последнее, что вы делаете, это предоставить способ получить доступ к нему через пользовательский интерфейс.
Вы можете и должны сначала создать функции задней части, чтобы вы могли собрать автоматические тесты и проверять, как и ожидалось. После того, как вы знаете, это работает, тогда Вы можете показать своих пользователей, что существует новая функция.
Вашим клиентам вы только что выпустили гигантскую новую функцию. На самом деле это было там в течение нескольких дней/недель/месяцев — просто невидимым. Вы построили его, проверили его, автоматизировали его, и регрессия все проверила. Тогда вы можете передать ключи.
Заключение
Как и в большинстве вещей, Ci/Cd не так просто, как звучит. Если вы хотите создать безопасное, надежное программное обеспечение, вы должны понимать INS и ауты того, что вы получаете.
Установите ожидания, что вещи меняются заранее. Не просто отрываясь от помощи на полосе.
Попасть в Небольшие, инкрементные изменения мышление. Почувствуйте уверенно настаивая на производство несколько раз в день.
Автоматизировать все. Серьезно, автоматизировать все.
Положите планы в чрезвычайных ситуациях на месте. Имейте процесс для устранения неполадок, исправления, тестирования и развертывания высокой приоритетной проблемы в минутах или на несколько часов — не выходные или недели.
Будь умным о том, как вы строите. Ваше приложение практически мало побольше всего. Держите свои изменения маленькими и ориентированными. Поместите план развития на месте до Вы начинаете кодирование.
CI/CD абсолютно стоит. После того, как вы преодолеете «все разные» шоки, вы удивляетесь, как вы когда-либо делали развитие на любой другой путь. Быстрый поворот на проблемах, функции, разработанные в мгновение ока, и четкий вид здоровья вашей системы.
Удачи!
Как этот контент? Найти оригинальную статью и много больше на мой блог !
Оригинал: «https://dev.to/allenheltondev/are-you-really-ready-for-ci-cd-321h»