Хабрахабр

CI\CD для стартапа: какие есть инструменты, и почему ими пользуются не только крупные и известные компании

Разработчики CI\CD-инструментов часто указывают в качестве клиентов крупные компании — Microsoft, Oculus, Red Hat, даже Ferrari и NASA. Казалось бы, что такие бренды работают только с дорогими системами, которые не сможет позволить себе условный стартап из пары разработчиков и дизайнера. Но значительная часть инструментов доступна и для небольших команд.

На что можно обратить внимание — расскажем далее.


Фото — Csaba Balazs — Unsplash

CI-сервер с открытым исходным кодом, облегчающий сборку проектов на PHP. Это — форк проекта PHPCI. Сам PHPCI до сих пор развивается, однако не так активно, как прежде.

Для тестирования кода инструмент использует библиотеки Atoum, PHP Spec, Behat, Codeception. PHP Censor умеет работать с репозиториями GitHub, GitLab, Mercurial и несколькими другими. Вот пример файла конфигурации для первого случая:

test: atoum: args: "command line arguments go here" config: "path to config file" directory: "directory to run tests" executable: "path to atoum executable"

Считается, что PHP Censor неплохо подходит для развертывания небольших проектов, но хостить и настраивать его придется самостоятельно (self-hosted). Эту задачу упрощает довольно подробная документация — она есть на GitHub.
Rex — это сокращение от Remote Execution. Систему разработал инженер Ференц Эрки (Ferenc Erki), чтобы автоматизировать процессы в дата-центре. Работа Rex строится на Perl-скриптах, но знать этот язык для взаимодействия с инструментом необязательно — большинство операций (например, копирование файлов) описано в библиотеке функций, а скрипты часто умещаются в десять строк. Вот пример для входа на нескольких серверах и запуска uptime:

use Rex -feature => ['1.3']; user "my-user";
password "my-password"; group myservers => "mywebserver", "mymailserver", "myfileserver"; desc "Get the uptime of all servers";
task "uptime", group => "myservers", sub { my $output = run "uptime"; say $output;
};

Начать свое знакомство с инструментом рекомендуем с официального гайда и электронной книги, которую в настоящий момент дописывают.
Это — платформа для оптимизации разработки дистрибутивов. Её код открыт и лежит в репозитории на GitHub. Автор инструмента — компания Novell. Она участвовала в разработке дистрибутива SuSE, а этот проект изначально назвала openSUSE Build Service. Неудивительно, что Open Build Service используют для сборки проектов в openSUSE, Tizen и VideoLAN. С инструментом также работают Dell, SGI и Intel. Но есть среди постоянных пользователей и небольшие стартапы. Специально для них авторы собрали (стр.10) преднастроенный программный пакет. Сама система полностью бесплатна — потратить деньги придется только на хостинг или железный сервер для её развертки.

Хотя он был частью Linux Developer Network, отвечающей за стандартизацию открытой ОС. Но за все время существования инструмент так и не обзавелся широким сообществом. Но один из резидентов Quora отметил, что в IRC-чате на Freenode участники сообщества отвечают довольно охотно. Бывает сложно найти на тематических форумах ответ на интересующий вопрос. Там же можно найти лучшие практики по работе с OBS (есть примеры и кейсы). Проблема маленького комьюнити не глобальна, так как решение многих задач описано в официальной документации (PDF и EPUB).

Открытый инструмент (GitHub), автоматизирующий задачи в дата-центре и облаке с помощью скриптов. За их выполнение отвечает специальный сервер сценариев. Можно сказать, что Rundeck — это «дочка» платформы для управления приложениями ControlTier. От неё Rundeck отделился в 2010 году и обзавелся новой функциональностью — например, интеграциями с Puppet, Chef, Git и Jenkins.

Но проект подходит и для стартапов. Системой пользуются в The Walt Disney Company, Salesforce и Ticketmaster. 0. Это связано с тем, что Rundeck распространяется по лицензии Apache v2. При этом инструмент довольно прост в использовании.

Резидент Reddit, который работал с Rundeck, говорит, что решал большую часть трудностей самостоятельно. С этим ему помогли документация и электронные книги, опубликованные разработчиками.

Также в сети можно найти краткие руководства по настройке инструмента:

Открытый инструмент (GitHub) автоматизирующий контроль версий кода. Его представила в 2007 году компания ThoughtWorks — тогда проект назывался Cruise.

Однако четверть пользователей инструмента составляет малый бизнес. С GoCD работают инженеры онлайн-ресурса по продаже автомобилей AutoTrader, генеалогический сервис Ancestry и поставщик кредитных карт Barclaycard.

0. Популярность сервиса среди стартапов можно объяснить его открытостью — он распространяется по лицензии Apache v2. Правда система довольно сложна в освоении — у нее большое число операторов и команд. При этом GoCD имеет плагины для интеграции со сторонним ПО — системами авторизации и облачными решениями. Также некоторые пользователи жалуются на неудачный интерфейс и необходимость настраивать агенты для масштабирования.


Фото — Matt Wildbore — Unsplash

Как источник дополнительной информации также можно рекомендовать блог разработчиков GoCD с руководствами по настройке. Если вы хотите опробовать GoCD на практике, то на сайте проекта можно найти официальную документацию.

Jenkins широко известен и считается своеобразным стандартом в сфере CI\CD — конечно, без него эта подборка была бы не совсем полной. Инструмент появился в 2011 году, став ответвлением проекта Hudson от Oracle.

Однако более 8% пользователей приходится на небольшие коллективы до десяти человек. Сегодня с Jenkins работают в NASA, Nintendo и других крупных организациях. Однако хостить и настраивать Jenkins придется самостоятельно — ему требуется выделенный сервер. Продукт полностью бесплатен и распространяется по лицензии MIT.

Пользователи активно общаются в тредах на Reddit и Google Groups. За все время существования инструмента вокруг него сформировалось обширное сообщество. Если вы бы хотели стать частью комьюнити и начать работу с Jenkins, есть официальная документация и справочник от разработчиков. Материалы по Jenkins также регулярно появляются на Хабре. Еще мы рекомендуем следующие гайды и книги:

У Jenkins есть несколько полезных сторонних проектов. Первый — плагин Configuration as Code. Он упрощает настройку Jenkins за счет удобочитаемых API, которые понятны даже администраторам без глубоких познаний инструмента. Второй — система Jenkins X для облака. Она ускоряет доставку приложений, разворачиваемых на масштабной ИТ-инфраструктуре за счет автоматизации некоторых рутинных задач.
Это — continuous integration система для автоматизации цикла сборки и тестирования приложений. Она автоматически проверяет работоспособность кода каждый раз, когда в него вносятся какие-либо изменения.

Сегодня его на посту сменила инициативная группа Buildbot Oversight Committee, в которую входит шесть разработчиков. Автором инструмента выступил инженер Брайан Уорнер (Brian Warner).

Web. Buildbot используется такими проектами, как LLVM, MariaDB, Blender и Dr. Система поддерживает все современные VCS и обладает гибкими настройками билдов за счет использования Python для их описания. Но его также применяют в менее крупных проектах вроде wxWidgets и Flathub. Разобраться со всеми ними поможет официальная документация и сторонние туториалы, например, вот краткое руководство от IBM.

Разумеется, это не все DevOps инструменты, на которые стоит обратить внимание небольшим организациям и стартапам. Приводите свои любимые инструменты в комментариях, и мы постараемся рассказать о них в одном из следующих материалов.
О чем мы пишем в корпоративном блоге:

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть