CICD za startupe: koji alati postoje i zašto ih ne koriste samo velike i poznate kompanije

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

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

CICD za startupe: koji alati postoje i zašto ih ne koriste samo velike i poznate kompanije
Foto - Csaba Balazs — Unsplash

PHP Censor

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"

Razmatrano, что PHP Censor неплохо подходит для развертывания небольших проектов, но хостить и настраивать его придется самостоятельно (self-hosted). Эту задачу упрощает довольно подробная документация — она есть на GitHub.

Rex

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-knjiga, которую в настоящий момент дописывают.

Open Build Service (OBS)

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

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

Rundeck

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

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

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

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

GoCD

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

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

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

CICD za startupe: koji alati postoje i zašto ih ne koriste samo velike i poznate kompanije
Foto - Matt Wildbore — Unsplash

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

Jenkins

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

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

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

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

Buildbot

Это — continuous integration система для автоматизации цикла сборки и тестирования приложений. Она автоматически проверяет работоспособность кода каждый раз, когда в него вносятся какие-либо изменения.

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

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

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

O čemu pišemo na korporativnom blogu:

izvor: www.habr.com

Dodajte komentar