Рубрики
Uncategorized

Советы по выбору правильных инструментов CI/CD

CI/CD позволяет командам DevOps перейти от разработки к производству, занимаясь неожиданными глюками …. Tagged с DevOps, SRE.

CI/CD позволяет командам DevOps перейти от разработки к производству, занимаясь неожиданными глюками. Но выбор правильного инструмента CI/CD всегда является проблемой. В этом блоге мы рассмотрели советы, которые помогут вам выбрать правильный инструмент CI/CD для вашей команды.

Несколько лет назад было почти невозможно найти магазин разработки программного обеспечения, который не развертывал свой код, используя какой -то своего рода Непрерывная интеграция и непрерывная доставка (CI/CD) Инструмент. Преимущества CI ясны: при автоматическом тестировании новые сборки всегда могут быть протестированы и развернуты быстро. Это означает, что вам нужно меньше времени для ручного капитала QA, и вы можете развернуть обновления быстрее, не разбивая ничего слишком плохого.

Но теперь, согласно недавнему исследованию Gartner, «процент организаций, не использующих CI, вырос с 8% до 10%, в то время как 31% сократились от использования CI, потому что они считают, что это больше не актуально. » Что дало? Согласно анализу Форрестера, существует три основных причин для этого: влияние развертываний недооценено и не может быть предсказано для всех приложений.

Это проблема, когда необходимо запланировать работу, связанную с развертыванием (и побочные эффекты) в нерабочее время или по выходным. В этих условиях большинство инженеров предпочли бы просто не беспокоиться об этом вообще, если они смогут избежать этого. Решение, часто данное CI/CD Systems: «Вам не нужно беспокоиться об этом, если вы действительно не хотите!»

Это приводит нас непосредственно во вторую проблему: Инструменты CI/CD не поддерживают нефункциональные требования, такие как безопасность, производительность и управление рисками.

Другими словами, ваши разработчики не так сильно отвергают концепцию автоматических тестов, а скорее возражают против того, чтобы их вынуждены использовать те же инструменты, которые QA будет использовать для их тестирования, полной остановки. Что еще хуже, ты тоже не можешь их винить: Допустим, вы разрабатываете систему обмена сообщениями — как, черт возьми, все ваши тесты способствуют безопасности или производительности?

Инструменты CI/CD не имеют возможности настраивать и расширять свои возможности. Что происходит, когда половина вашей команды использует один инструмент CI, а другая половина другая? Естественно, у этих двух команд будет много проблем с общением и обменами идеями; Это также значительно увеличивает частоту ошибок.

И если бы были улучшения, которые могли бы принести пользу обеим группам, они когда -нибудь узнали об этом? Увеличение сложности интеграции не стоит просто для проведения автоматических тестов.

1. Приоритет вашим потребностям

Посмотрите на потребности и цели вашей организации. Что вы пытаетесь улучшить? В идеале постарайтесь увидеть, как каждый инструмент измеряется с точки зрения функций, которые устраняют эти цели. Например, если одна система CI/CD имеет лучшие инструменты определения теста, в то время как другая лучше настройка настройки или легче масштабировать горизонтально, вам необходимо решить, какая функция важнее для вас.

2. Найдите решение с открытым исходным кодом

Многие компании сегодня обращаются к Открытый исходный код решения для их потребностей в разработке программного обеспечения; В конце концов, они менее дороги, более гибкие и во многих случаях столь же хороши (если не лучше), чем их собственные конкуренты. Есть также шанс, что кто -то там уже сделал необходимые сценарии или плагины; Если это так, то сначала найдите их, прежде чем задуматься о покупке другого решения, либо попытка создать его самостоятельно — вероятность того, что кто -то другой прошел тот же процесс перед вами!

Также помните, что если вы решите пойти по этому пути, вам нужно точно знать, на что способны ваш язык сценариев и базовые библиотеки. Это не так сложно, как кажется; Начните со списка всех плагинов и расширений, которые, по вашему мнению, могут быть полезны. Если есть что -то, что выглядит удаленно применимым к вашему проекту, добавьте его.

А затем запятнана руки — попробуйте сделать пример плагина или настройка экземпляра приложения локально (не забудьте протестировать в различных операционных системах), чтобы у вас было некоторое представление о том, как все работает, прежде чем выполнять какие -либо обязательства по коммерческим решениям Это может быть слишком сложным для вас, чтобы работать.

3. Найдите свое «сладкое место» для того, чтобы выбрать инструменты, чтобы выбрать

Некоторые организации используют много различных видов инструментов — некоторые специально разработанные для CI/CD, в то время как другие не были сделаны с учетом таких задач; Вот почему некоторые люди предлагают использовать перевозки тестовых рамках, чтобы они могли сразу же начать работу, не беспокоясь обо всех сложностях, связанных с созданием действительно хорошей среды CI/CD.

Например, сегодня на рынке есть много разных инструментов. Вопрос в том, где вы должны начать с вашего проекта автоматизации. Если вы начинаете с совершенно нового приложения, которое никогда не было проверено ранее, вам было бы больше смысла сначала создать тестовую структуру, а затем перейти к автоматизации процессов развертывания (что может произойти позже в будущем) Анкет Это позволит вам получить ранний разряд в отношении того, насколько хорошо автоматоцированное тестирование может помочь вашей команде улучшить их методы развития.

4. Начните с небольших задач и проблем сначала

Как только ваши разработчики оказались в болевых точках при совместной работе, пришло время увидеть, какие из этих проблем будут легко решить быстро с инструментами, которые у вас есть.

Настройка CI/CD — это не только выбор инструмента. Вам также нужна хорошая стратегия, и все должно работать вместе беспрепятственно. Это может занять время, но убедиться, что все эти различные компоненты настроены правильно с самого начала, облегчит вам в долгосрочной перспективе, особенно когда масштабирование горизонтально становится приоритетом для вашей команды.

5. Выберите инструменты, которые легко масштабируются (горизонтально)

Одной из самых больших проблем с созданием конвейеров CI/CD является обеспечение того, чтобы они могли масштабироваться, поскольку все больше и больше разработчиков или членов QA присоединяются к вашей команде. Есть много способов сделать это в зависимости от того, с каким решением хостинга вы собираетесь; Если бы в вашей компании уже есть свои специальные локальные машины, доступные, было бы легко эффективно обрабатывать сценарии масштабирования, внедряя больше серверов по мере необходимости.

6. Настройка CI/CD никогда не завершена

Недостаточно просто иметь элементы управления на месте. Вам также нужна веская причина, по которой они есть, то есть вам нужно постоянно обучать свою команду о том, почему они важны, и на самом деле использовать их, когда это возможно. Потребуется время, прежде чем каждый сможет соответствующим образом скорректировать свое поведение; Отсюда и важность настройки инструментов CI/CD небольшими шагами, обеспечивая, чтобы все они хорошо работали вместе.

Нелегко все настроить и готово к использованию за один день, но это то, что нужно, если вы хотите, чтобы ваши команды были максимально продуктивными. Однако первое, что вам нужно сделать, это установить хорошее общение с членами вашей команды; Убедитесь, что все знают, кто будет справляться с тем проектом (и как) с самого начала.

7. Не забывайте о контроле безопасности

Тот факт, что большинство инструментов CI/CD, доступных сегодня, открыты, не означает, что они недостаточно безопасны для профессионального использования. На самом деле, некоторые из них даже поставляются со встроенными средствами управления безопасности, поэтому у вас есть меньше работы, чтобы выполнить свою цель при разработке или развертывании новых приложений.

Если пока нет конкретных контролей безопасности, вы все равно можете помочь вашей команде переходить к процессам CI/CD, следя за тем, чтобы все знали, как защитить свои машины — и друг друга — от злонамеренных атак или других форм нарушений безопасности.

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

8. Практика идеально подходит

Создание хороших фреймворков автоматизации не происходит в одночасье. И даже когда они работают правильно в течение некоторого времени, могут возникнуть непредвиденные проблемы, такие как сбои во время развертывания (и т. Д.), Которые могут оставить всю вашу работу в опасности, если вы недостаточно осторожны. Не бойтесь практиковать, практиковать, а затем практиковать еще немного.

9. Дайте своим ошибкам дом

Все делают ошибки — особенно разработчики и QA Инженеры которые являются новичками в процессах CI/CD. Для них важно иметь место, где они могут представить все свои ошибки, чтобы другие члены вашей команды могли придумать решения (и исправления) соответственно. Это позволяет усилиям вашей компании по развитию проходить гладко, не вызывая слишком много нарушений на этом пути. Существует также конкретное программное обеспечение, доступное в Интернете, которое помогает вам автоматически обрабатывать ошибки; Он даже хорошо интегрируется во многие существующие инструменты фреймворта управления, такие как Travis CI или Circleci.

10. Иметь наставника на месте

Уверенность хороша. Однако чрезмерная уверенность может привести к тому, что не может привести к неприязни, когда дело доходит до автоматизации CI/CD. Вот почему вы хотите иметь наставника на месте-кого-то, кто может эффективно направлять вашу команду на каждом этапе процесса. Наличие кого -то за пределами вашей компании с новой перспективой также поможет продвигать вещи вперед, если вы застряли или перегружены техническими проблемами в любой момент. Это может показаться излишним для небольших команд, работающих над проектами, которые не слишком сложны, но поверьте нам: вы будете рады, что это там, когда вам это нужно больше всего.

11. Вам не нужно совершенство Немедленно

Важно не торопиться ни на что и в конечном итоге получить продукт плохого качества. Начните с автоматизации наиболее важных частей вашего процесса разработки; Затем, медленно, но верно, вы можете начать переходить к более сложным компонентам. Это позволит вам учиться на своих ошибках, а также укрепить уверенность в новых инструментах CI/CD, а также поможет им выполнять свою работу должным образом.

12. Следите за призом

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

13. Общайтесь со своей командой Тщательно

Теперь пришло время сделать шаг назад и оценить, что пошло правильно (и неправильно) на протяжении всего процесса автоматизации CI/CD. Убедитесь, что все четко понимают свои рабочие обязанности и соответствующие роли, включая как новичка в команде, так и тех, кто уже некоторое время работал в вашей компании. Это должно гарантировать, что в будущем не будет никаких проблем с лидерством или лидерства, когда дело доходит до развертывания новых программных приложений. Опять же, убедитесь, что всегда есть кто -то, кто готов предоставить руководство по мере необходимости, и вам будет хорошо.

14. Держите свою структуру в курсе

Наконец, не забудьте обновить свой CI/CD структура время от времени. Как часто вы делаете Это будет зависеть от того, как часто выпускаются новые обновления программного обеспечения; Но само собой разумеется, чем быстрее цикл обновления, тем важнее для вас идти в ногу. Даже делать это раз в шесть месяцев или около того должно работать достаточно хорошо. Вы также захотите убедиться, что все знают об этих изменениях (или, по крайней мере, тех, кто непосредственно вовлечен); В противном случае они могут не знать, что они должны делать, когда вещи ломаются где -то вдоль линии.

Инструменты CI/CD могут быть сложной задачей на выбор. Существует множество различных вариантов, поэтому важно учитывать свои потребности и возможности каждого инструмента CI/CD, прежде чем принимать какие -либо окончательные решения. Эта статья предоставит вам несколько советов по выбору правильных инструментов CI/CD, которые должны помочь сократить время, затрачиваемое на исследование различных продуктов, что позволяет вам сосредоточиться на том, как лучше всего использовать эти инструменты для автоматизации усилий по разработке, не жертвуя качеством или эффективность.

Отборка является инструментом управления инцидентами, который построен для SRE. Ваша команда может избавиться от нежелательных оповещений, получать соответствующие уведомления, работать в сотрудничестве с использованием виртуальных военных залов инцидентов и использовать автоматизированные инструменты, такие как Runbooks, чтобы устранить труд.

Оригинал: «https://dev.to/squadcast/tips-for-choosing-the-right-ci-cd-tools-2ngg»