- PVSM.RU - https://www.pvsm.ru -
Разработчики CICD-инструментов часто указывают в качестве клиентов крупные компании — Microsoft, Oculus, Red Hat, даже Ferrari и NASA. Казалось бы, что такие бренды работают только с дорогими системами, которые не сможет позволить себе условный стартап из пары разработчиков и дизайнера. Но значительная часть инструментов доступна и для небольших команд.
На что можно обратить внимание — расскажем далее.
[1]
Фото — Csaba Balazs [2] — Unsplash
CI-сервер с открытым исходным кодом, облегчающий сборку проектов на PHP. Это — форк проекта PHPCI [4]. Сам PHPCI до сих пор развивается, однако не так активно, как прежде.
PHP Censor умеет работать с репозиториями GitHub, GitLab, Mercurial и несколькими другими. Для тестирования кода инструмент использует библиотеки Atoum, PHP Spec, Behat, Codeception. Вот пример файла [5] конфигурации для первого случая:
test:
atoum:
args: "command line arguments go here"
config: "path to config file"
directory: "directory to run tests"
executable: "path to atoum executable"
Считается [6], что PHP Censor неплохо подходит для развертывания небольших проектов, но хостить и настраивать его придется самостоятельно (self-hosted). Эту задачу упрощает довольно подробная документация — она есть на GitHub [7].
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;
};
Начать свое знакомство с инструментом рекомендуем с официального гайда [9] и электронной книги [10], которую в настоящий момент дописывают.
Это — платформа для оптимизации разработки дистрибутивов. Её код открыт и лежит в репозитории на GitHub [12]. Автор инструмента — компания Novell [13]. Она участвовала в разработке дистрибутива SuSE, а этот проект изначально назвала openSUSE Build Service. Неудивительно, что Open Build Service используют [14] для сборки проектов в openSUSE, Tizen и VideoLAN. С инструментом также работают Dell, SGI и Intel. Но есть среди постоянных пользователей и небольшие стартапы. Специально для них авторы собрали (стр.10 [15]) преднастроенный программный пакет [16]. Сама система полностью бесплатна — потратить деньги придется только на или железный сервер для её развертки.
Но за все время существования инструмент так и не обзавелся широким сообществом. Хотя он был [18] частью Linux Developer Network, отвечающей за стандартизацию открытой ОС. Бывает сложно [19] найти на тематических форумах ответ на интересующий вопрос. Но один из резидентов Quora отметил, что в IRC-чате [20] на Freenode участники сообщества отвечают довольно охотно. Проблема маленького комьюнити не глобальна, так как решение многих задач описано в официальной документации [21] (PDF и EPUB). Там же можно найти [22] лучшие практики по работе с OBS (есть примеры и кейсы).
Открытый инструмент (GitHub [24]), автоматизирующий задачи в дата-центре и облаке с помощью скриптов. За их выполнение отвечает специальный сервер сценариев. Можно сказать, что Rundeck — это «дочка» платформы для управления приложениями ControlTier. От неё Rundeck отделился в 2010 году и обзавелся новой функциональностью — например, интеграциями с Puppet, Chef, Git и Jenkins.
Системой пользуются в The Walt Disney Company [25], Salesforce [26] и Ticketmaster [27]. Но проект подходит и для стартапов. Это связано с тем, что Rundeck распространяется по лицензии Apache v2.0. При этом инструмент довольно прост в использовании.
Резидент Reddit, который работал с Rundeck, говорит [28], что решал большую часть трудностей самостоятельно. С этим ему помогли документация и электронные книги [29], опубликованные разработчиками.
Также в сети можно найти краткие руководства по настройке инструмента:
Открытый инструмент (GitHub [33]) автоматизирующий контроль версий кода. Его представила в 2007 году компания ThoughtWorks [34] — тогда проект назывался Cruise.
С GoCD работают инженеры онлайн-ресурса по продаже автомобилей AutoTrader, генеалогический сервис Ancestry и поставщик кредитных карт Barclaycard. Однако четверть пользователей инструмента составляет малый бизнес [35].
Популярность сервиса среди стартапов можно объяснить его открытостью — он распространяется по лицензии Apache v2.0. При этом GoCD имеет [36] плагины для интеграции со сторонним ПО — системами авторизации и облачными решениями. Правда система довольно сложна [37] в освоении — у нее большое число операторов и команд. Также некоторые пользователи жалуются на неудачный интерфейс и необходимость [38] настраивать агенты для масштабирования.

Фото — Matt Wildbore [39] — Unsplash
Если вы хотите опробовать GoCD на практике, то на сайте проекта можно найти официальную документацию [40]. Как источник дополнительной информации также можно рекомендовать блог разработчиков GoCD [41] с руководствами по настройке [42].
Jenkins широко известен и считается [44] своеобразным стандартом в сфере CICD — конечно, без него эта подборка была бы не совсем полной. Инструмент появился в 2011 году, став [45] ответвлением проекта Hudson от Oracle.
Сегодня с Jenkins работают [46] в NASA, Nintendo и других крупных организациях. Однако более 8% [47] пользователей приходится на небольшие коллективы до десяти человек. Продукт полностью бесплатен и распространяется по лицензии MIT [48]. Однако хостить и настраивать Jenkins придется самостоятельно — ему требуется
За все время существования инструмента вокруг него сформировалось обширное сообщество. Пользователи активно общаются в тредах на Reddit [49] и Google Groups [50]. Материалы по Jenkins также регулярно появляются на Хабре. Если вы бы хотели стать частью комьюнити и начать работу с Jenkins, есть официальная документация [51] и справочник от разработчиков [52]. Еще мы рекомендуем следующие гайды и книги:
У Jenkins есть несколько полезных сторонних проектов. Первый — плагин Configuration as Code [58]. Он упрощает настройку Jenkins за счет удобочитаемых API, которые понятны даже администраторам без глубоких познаний инструмента. Второй — система Jenkins X [59] для облака. Она ускоряет доставку приложений, разворачиваемых на масштабной ИТ-инфраструктуре за счет автоматизации некоторых рутинных задач.
Это — continuous integration система для автоматизации цикла сборки и тестирования приложений. Она автоматически проверяет работоспособность кода каждый раз, когда в него вносятся какие-либо изменения.
Автором инструмента выступил инженер Брайан Уорнер (Brian Warner). Сегодня его на посту сменила [61] инициативная группа Buildbot Oversight Committee, в которую входит шесть разработчиков.
Buildbot используется [62] такими проектами, как LLVM, MariaDB, Blender и Dr.Web. Но его также применяют в менее крупных проектах вроде wxWidgets и Flathub. Система поддерживает все современные VCS и обладает гибкими настройками билдов за счет использования Python для их описания. Разобраться со всеми ними поможет официальная документация [63] и сторонние туториалы, например, вот краткое руководство от IBM [64].
Автор: itglobalcom
Источник [69]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/jenkins/324553
Ссылки в тексте:
[1] Image: https://habr.com/ru/company/itglobalcom/blog/460735/
[2] Csaba Balazs: https://unsplash.com/photos/q9URsedw330
[3] PHP Censor: https://github.com/php-censor/php-censor
[4] PHPCI: https://github.com/dancryer/PHPCI
[5] пример файла: https://github.com/php-censor/php-censor/blob/master/docs/en/plugins/atoum.md
[6] Считается: https://twitter.com/4rc4n1ne/status/1071431231592640518
[7] она есть на GitHub: https://github.com/php-censor/php-censor/blob/master/docs/en/README.md
[8] Rex: http://www.rexify.org/
[9] официального гайда: http://www.rexify.org/docs/guides/start_using__r__ex.html
[10] электронной книги: http://www.rexify.org/docs/rex_book/index.html
[11] Open Build Service (OBS): https://openbuildservice.org/
[12] GitHub: https://github.com/openSUSE/open-build-service
[13] Novell: https://ru.wikipedia.org/wiki/Novell
[14] используют: https://build.opensuse.org/
[15] стр.10: https://openbuildservice.org/files/manuals/obs-admin-guide.pdf
[16] программный пакет: https://openbuildservice.org/download/
[17] хостинг: https://www.reg.ru/?rlink=reflink-717
[18] он был: https://web.archive.org/web/20150402164858/http:/www.linuxfoundation.org/node/3444
[19] Бывает сложно: https://www.quora.com/What-are-the-pros-and-cons-of-Open-Build-Service-OBS
[20] IRC-чате: http://irc.lc/freenode/opensuse-buildservice/t4nk@@@
[21] в официальной документации: https://openbuildservice.org/help/
[22] можно найти: https://openbuildservice.org/help/manuals/obs-best-practices/
[23] Rundeck: https://www.rundeck.com/open-source
[24] GitHub: https://github.com/rundeck/rundeck/
[25] The Walt Disney Company: https://www.rundeck.com/resources/case-study/disney
[26] Salesforce: https://www.rundeck.com/resources/case-study/salesforce
[27] Ticketmaster: https://www.rundeck.com/resources/case-study/ticketmaster
[28] говорит: https://www.reddit.com/r/devops/comments/3szdgz/which_rundeck_equivalent_is_better/
[29] документация и электронные книги: https://www.rundeck.com/resources
[30] Пошаговое руководство: как установить Rundeck: https://www.linuxsysadmins.com/rundeck-it-automation-tool-step-by-step-installation-guide/
[31] Пять шагов по созданию заданий (jobs): https://blog.e-zest.com/easy-steps-to-create-jobs-in-rundeck
[32] GoCD: https://www.gocd.org/
[33] GitHub: https://www.github.com/gocd
[34] ThoughtWorks: https://en.wikipedia.org/wiki/ThoughtWorks
[35] составляет малый бизнес: https://www.g2.com/compare/gocd-vs-jenkins
[36] имеет: https://www.gocd.org/plugins/
[37] довольно сложна: https://www.reddit.com/r/devops/comments/8awjig/ci_lovers_which_ci_tool_do_you_prefer/
[38] необходимость: https://amaysim.engineering/auto-scaling-build-agents-for-gocdtags-a10f12d5b77c?gi=942a75340c3e
[39] Matt Wildbore: https://unsplash.com/photos/wF14k8SyGzA
[40] официальную документацию: https://docs.gocd.org/current/
[41] блог разработчиков GoCD: https://www.gocd.org/blog/
[42] по настройке: https://www.gocd.org/2019/05/14/installing-configuring-gocd-gke-using-helm/
[43] Jenkins: https://jenkins.io/
[44] считается: https://opensource.com/article/18/12/cicd-tools-sysadmins
[45] став: https://jenkins.io/blog/2011/01/11/hudsons-future/
[46] работают: https://wiki.jenkins.io/pages/viewpage.action?pageId=58001258
[47] более 8%: https://enlyft.com/tech/products/jenkins
[48] по лицензии MIT: https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_MIT
[49] Reddit: https://www.reddit.com/r/jenkinsci/
[50] Google Groups: https://groups.google.com/forum/?nomobile=true#!forum/jenkinsci-users
[51] официальная документация: https://jenkins.io/doc/
[52] справочник от разработчиков: https://jenkins.io/doc/book/
[53] Начало работы с Jenkins: официальное руководство: https://jenkins.io/doc/pipeline/tour/getting-started/
[54] Полный гайд по Jenkins: https://dzone.com/articles/getting-started-with-jenkins-the-ultimate-guide
[55] Jenkins для начинающих: https://devopscube.com/jenkins-2-tutorials-getting-started-guide/
[56] Jenkins 2. Приступаем к работе: https://d.docs.live.net/3ce1778315e9730e/%D0%A2%D0%B5%D0%BA%D1%81%D1%82%D1%8B/%D0%98%D1%8E%D0%BB%D1%8C%202019/%D0%91%D1%80%D0%B5%D0%BD%D1%82%20%D0%9B%D0%B0%D1%81%D1%82%D0%B5%D1%80
[57] Continuous Delivery с Docker и Jenkins: доставка масштабируемых приложений: https://www.amazon.com/Continuous-Delivery-Docker-Jenkins-Delivering/dp/1787125238
[58] Configuration as Code: https://github.com/jenkinsci/configuration-as-code-plugin
[59] Jenkins X: https://jenkins-x.io/
[60] Buildbot: http://trac.buildbot.net/
[61] сменила: https://github.com/buildbot/botherders
[62] используется: https://github.com/buildbot/buildbot/wiki/SuccessStories
[63] официальная документация: http://docs.buildbot.net/current/tutorial/tour.html
[64] руководство от IBM: https://www.ibm.com/developerworks/library/l-buildbot/index.html
[65] Penetration testing — внешний аудит безопасности: https://blog.itglobal.com/standarty/penetration-testing-vneshnij-audit-bezopasnosti/
[66] NetApp MAX DATA: обзор возможностей решения: https://blog.itglobal.com/resheniya/netapp-max-data/
[67] Краткая история контейнеров: от chroot до Kubernetes: https://blog.itglobal.com/funkcionalnost/vmware-v-mire-kontejnerov/
[68] Защита от DDoS в облаке провайдера: https://blog.itglobal.com/bezopasnost/zashhita-ot-ddos-v-oblake-provajdera/
[69] Источник: https://habr.com/ru/post/460735/?utm_source=habrahabr&utm_medium=rss&utm_campaign=460735
Нажмите здесь для печати.