ProHoster > BLOG > știri pe internet > CICD pentru startup-uri: ce instrumente există și de ce nu doar companiile mari și cunoscute le folosesc
CICD pentru startup-uri: ce instrumente există și de ce nu doar companiile mari și cunoscute le folosesc
Разработчики CICD-инструментов часто указывают в качестве клиентов крупные компании — Microsoft, Oculus, Red Hat, даже Ferrari и NASA. Казалось бы, что такие бренды работают только с дорогими системами, которые не сможет позволить себе условный стартап из пары разработчиков и дизайнера. Но значительная часть инструментов доступна и для небольших команд.
CI-сервер с открытым исходным кодом, облегчающий сборку проектов на PHP. Это — форк проекта PHPCI. Сам PHPCI до сих пор развивается, однако не так активно, как прежде.
PHP Censor умеет работать с репозиториями GitHub, GitLab, Mercurial и несколькими другими. Для тестирования кода инструмент использует библиотеки Atoum, PHP Spec, Behat, Codeception. Вот пример файла конфигурации для первого случая:
test:
atoum:
args: "command line arguments go here"
config: "path to config file"
directory: "directory to run tests"
executable: "path to atoum executable"
Este considerat, что 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;
};
Начать свое знакомство с инструментом рекомендуем с официального гайда и e-carte, которую в настоящий момент дописывают.
Это — платформа для оптимизации разработки дистрибутивов. Её код открыт и лежит в репозитории на GitHub. Автор инструмента — компания Novell. Она участвовала в разработке дистрибутива SuSE, а этот проект изначально назвала openSUSE Build Service. Неудивительно, что Open Build Service utilizare для сборки проектов в openSUSE, Tizen и VideoLAN. С инструментом также работают Dell, SGI и Intel. Но есть среди постоянных пользователей и небольшие стартапы. Специально для них авторы собрали (pagina 10) преднастроенный программный пакет. Сама система полностью бесплатна — потратить деньги придется только на хостинг или железный сервер для её развертки.
Но за все время существования инструмент так и не обзавелся широким сообществом. Хотя el a fost частью Linux Developer Network, отвечающей за стандартизацию открытой ОС. Бывает сложно найти на тематических форумах ответ на интересующий вопрос. Но один из резидентов Quora отметил, что в IRC-чате на Freenode участники сообщества отвечают довольно охотно. Проблема маленького комьюнити не глобальна, так как решение многих задач описано în documentația oficială (PDF и EPUB). Там же poate găsi лучшие практики по работе с OBS (есть примеры и кейсы).
Открытый инструмент (GitHub), автоматизирующий задачи в дата-центре и облаке с помощью скриптов. За их выполнение отвечает специальный сервер сценариев. Можно сказать, что Rundeck — это «дочка» платформы для управления приложениями ControlTier. От неё Rundeck отделился в 2010 году и обзавелся новой функциональностью — например, интеграциями с Puppet, Chef, Git и Jenkins.
Системой пользуются в Walt Disney Company, Salesforce и Ticketmaster. Но проект подходит и для стартапов. Это связано с тем, что Rundeck распространяется по лицензии Apache v2.0. При этом инструмент довольно прост в использовании.
Резидент Reddit, который работал с Rundeck, El vorbește, что решал большую часть трудностей самостоятельно. С этим ему помогли документация и электронные книги, опубликованные разработчиками.
Также в сети можно найти краткие руководства по настройке инструмента:
Открытый инструмент (GitHub) автоматизирующий контроль версий кода. Его представила в 2007 году компания ThoughtWorks — тогда проект назывался Cruise.
С GoCD работают инженеры онлайн-ресурса по продаже автомобилей AutoTrader, генеалогический сервис Ancestry и поставщик кредитных карт Barclaycard. Однако четверть пользователей инструмента составляет малый бизнес.
Популярность сервиса среди стартапов можно объяснить его открытостью — он распространяется по лицензии Apache v2.0. При этом GoCD Are плагины для интеграции со сторонним ПО — системами авторизации и облачными решениями. Правда система довольно сложна в освоении — у нее большое число операторов и команд. Также некоторые пользователи жалуются на неудачный интерфейс и necesitate настраивать агенты для масштабирования.
Jenkins широко известен и luate în considerare своеобразным стандартом в сфере CICD — конечно, без него эта подборка была бы не совсем полной. Инструмент появился в 2011 году, atitudine ответвлением проекта Hudson от Oracle.
Сегодня с Jenkins sunt de lucru в NASA, Nintendo и других крупных организациях. Однако mai mult de 8% пользователей приходится на небольшие коллективы до десяти человек. Продукт полностью бесплатен и распространяется по лицензии MIT. Однако хостить и настраивать Jenkins придется самостоятельно — ему требуется выделенный сервер.
За все время существования инструмента вокруг него сформировалось обширное сообщество. Пользователи активно общаются в тредах на Reddit и Grupuri Google. Материалы по Jenkins также регулярно появляются на Хабре. Если вы бы хотели стать частью комьюнити и начать работу с Jenkins, есть documentație oficială и справочник от разработчиков. Еще мы рекомендуем следующие гайды и книги:
У Jenkins есть несколько полезных сторонних проектов. Первый — плагин Configuration as Code. Он упрощает настройку Jenkins за счет удобочитаемых API, которые понятны даже администраторам без глубоких познаний инструмента. Второй — система Jenkins X для облака. Она ускоряет доставку приложений, разворачиваемых на масштабной ИТ-инфраструктуре за счет автоматизации некоторых рутинных задач.
Это — continuous integration система для автоматизации цикла сборки и тестирования приложений. Она автоматически проверяет работоспособность кода каждый раз, когда в него вносятся какие-либо изменения.
Автором инструмента выступил инженер Брайан Уорнер (Brian Warner). Сегодня его на посту сменила инициативная группа Buildbot Oversight Committee, в которую входит шесть разработчиков.
Buildbot utilizat такими проектами, как LLVM, MariaDB, Blender и Dr.Web. Но его также применяют в менее крупных проектах вроде wxWidgets и Flathub. Система поддерживает все современные VCS и обладает гибкими настройками билдов за счет использования Python для их описания. Разобраться со всеми ними поможет documentație oficială и сторонние туториалы, например, вот краткое руководство от IBM.
Desigur, это не все DevOps инструменты, на которые стоит обратить внимание небольшим организациям и стартапам. Приводите свои любимые инструменты в комментариях, и мы постараемся рассказать о них в одном из следующих материалов.