3 популарни алатки за организирање континуирано распоредување (Континуирано распоредување)

3 популарни алатки за организирање континуирано распоредување (Континуирано распоредување)

Континуираното распоредување е посебен пристап во развојот на софтвер кој се користи за брзо, безбедно и ефикасно спроведување на различни функции во софтверот.

Главната идеја е да се создаде сигурен автоматизиран процес кој му овозможува на развивачот брзо да го достави готовиот производ до корисникот. Во исто време, се прават постојани промени во производството - ова се нарекува цевковод за континуирана испорака (CD Pipeline).

Skillbox препорачува: Практичен курс „Програма за мобилни програмери“.

Потсетуваме: за сите читатели на „Хабр“ - попуст од 10 рубли при запишување на кој било курс Skillbox користејќи го промотивниот код „Хабр“.

3 популарни алатки за организирање континуирано распоредување (Континуирано распоредување)

За да го контролирате протокот, можете да користите широк спектар на алатки, вклучувајќи и платени и потполно бесплатни. Оваа статија опишува три од најпопуларните решенија меѓу програмерите кои можат да бидат корисни за секој програмер.

Џенкинс

Целосно самостоен сервер за автоматизација со отворен код. Вреди да се работи за да се автоматизираат сите видови задачи поврзани со градење, тестирање, испорака или распоредување софтвер.

Минимални барања за компјутер:

  • 256 MB RAM, 1 GB простор за датотеки.

Оптимално:

  • 1 GB RAM, 50 GB хард диск.

За да работите, ќе ви треба и дополнителен софтвер - Java Runtime Environment (JRE) верзија 8.

Архитектурата (дистрибуирано пресметување) изгледа вака:
3 популарни алатки за организирање континуирано распоредување (Континуирано распоредување)

Серверот Џенкинс е инсталација која е одговорна за хостирање на GUI, како и за организирање и извршување на целата градба.

Jenkins Node/Slave/Build Server - уреди кои можат да се конфигурираат да вршат градежна работа во име на Master (главен јазол).

Инсталација за Linux

Прво треба да го додадете складиштето Џенкинс во системот:

cd /tmp && wget -q -O — pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - echo 'deb pkg.jenkins.io/debian-stable бинарни/' | sudo tee -a /etc/apt/sources.list.d/je

Ажурирајте го складиштето за пакети:

адо апод ажурирање

Инсталирајте Џенкинс:

sudo apt инсталирај џенкинс

После ова, Џенкинс ќе биде достапен во системот преку стандардната порта 8080.

За да ја проверите функционалноста, треба да ја отворите адресата во прелистувачот localhost:8080. Системот потоа ќе ве поттикне да ја внесете почетната лозинка за root корисникот. Оваа лозинка се наоѓа во датотеката /var/lib/jenkins/secrets/initialAdminPassword.

Сега сè е подготвено, можете да започнете да создавате текови на CI/CD. Графичкиот интерфејс на работната маса изгледа вака:

3 популарни алатки за организирање континуирано распоредување (Континуирано распоредување)

3 популарни алатки за организирање континуирано распоредување (Континуирано распоредување)

Јаки страни на Џенкинс:

  • приспособливост обезбедена од архитектурата Master/Slave;
  • достапност на REST XML/JSON API;
  • можност за поврзување на голем број екстензии благодарение на приклучоците;
  • активна и постојано се развива заедница.

Конс:

  • нема аналитички блок;
  • не многу лесен интерфејс.

Тимски тим

Комерцијален развој од JetBrains. Серверот е добар со едноставно поставување и одличен интерфејс. Стандардната конфигурација има голем број на функции, а бројот на достапни додатоци постојано се зголемува.

Потребна е Java Runtime Environment (JRE) верзија 8.

Барањата за хардверот на серверот се некритични:

  • RAM меморија - 3,2 GB;
  • процесор - двојадрен, 3,2 GHz;
  • канал за комуникација со капацитет од 1 Gb/s.

Серверот ви овозможува да постигнете високи перформанси:

  • 60 проекти со 300 build конфигурации;
  • одвои 2 MB за дневникот за изградба;
  • 50 агенти за изградба;
  • можност за работа со 50 корисници во веб верзијата и 30 корисници во IDE;
  • 100 врски на надворешни VCS, обично Perforce и Subversion. Просечното време на промена е 120 секунди;
  • повеќе од 150 модификации дневно;
  • работа со базата на податоци на еден сервер;
  • Поставки за процесот на JVM серверот: -Xmx1100m -XX:MaxPermSize=120m.

Барањата за агентот се засноваат на склопови кои работат. Главната задача на серверот е да ги следи сите поврзани агенти и да ги дистрибуира склоповите од редот до овие агенти врз основа на барањата за компатибилност, известувајќи ги резултатите. Агентите доаѓаат во различни платформи и оперативни системи, плус претходно конфигурирана околина.

Сите информации за резултатите од изградбата се зачувани во базата на податоци. Ова е првенствено историја и други слични податоци, промени на VCS, агенти, редици за градење, кориснички сметки и дозволи. Базата на податоци не вклучува само логови за изградба и артефакти.

3 популарни алатки за организирање континуирано распоредување (Континуирано распоредување)

Инсталација за Linux

За рачно инсталирање на TeamCity со контејнер за сервлет на Tomcat, треба да ја користите архивата на TeamCity: TeamCity .tar.gz. Преземи можете да го добиете од тука.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [почеток|стоп]

Кога првпат ќе започнете, треба да го изберете типот на базата на податоци во која ќе се складираат податоците за склопување.

3 популарни алатки за организирање континуирано распоредување (Континуирано распоредување)

Стандардната конфигурација работи localhost:8111/ со еден регистриран build агент кој работи на истиот компјутер.

Јаки страни на TeamCity:

  • лесно поставување;
  • лесен интерфејс;
  • голем број на вградени функции;
  • Услуга за поддршка;
  • постои RESTful API;
  • добра документација;
  • добра безбедност.

Конс:

  • ограничена интеграција;
  • Ова е платена алатка;
  • мала заедница (која, сепак, расте).

GoCD

Проект со отворен код кој бара Java Runtime Environment (JRE) верзија 8 за инсталација и работа.

Системски побарувања:

  • RAM меморија - 1 GB минимум, повеќе е подобро;
  • процесор - двојадрен, со основна фреквенција од 2 GHz;
  • хард диск - најмалку 1 GB слободен простор.

Агент:

  • RAM меморија - најмалку 128 MB, повеќе е подобро;
  • процесор - најмалку 2 GHz.

Серверот обезбедува работа на агентите и обезбедува удобен интерфејс за корисникот:

3 популарни алатки за организирање континуирано распоредување (Континуирано распоредување)

Фази/Работа/Задачи:

3 популарни алатки за организирање континуирано распоредување (Континуирано распоредување)

Инсталација за Linux

ехо "деб download.gocd.org /“ | sudo tee /etc/apt/sources.list.d/gocd.list

навивам download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key add -
add-apt-repository ppa:openjdk-r/ppa

apt-get update

apt-get install -y openjdk-8-jre

apt-get инсталирај го-сервер

apt-get install go-agent

/etc/init.d/go-server [почеток|стоп|статус|рестартирање]

/etc/init.d/go-agent [start|stop|status|restart]

Стандардно GoCd работи localhost: 8153.

Јаки страни на GoCd:

  • отворен извор;
  • едноставна инсталација и конфигурација;
  • добра документација;

  • Одличен кориснички интерфејс:

3 популарни алатки за организирање континуирано распоредување (Континуирано распоредување)

  • способност да се прикаже чекор-по-чекор патека на распоредување GoCD во еден приказ:

3 популарни алатки за организирање континуирано распоредување (Континуирано распоредување)

  • одличен приказ на структурата на цевководот:

3 популарни алатки за организирање континуирано распоредување (Континуирано распоредување)

  • GoCD го оптимизира работниот тек на ЦД во најпопуларните облачни средини, вклучувајќи ги Docker, AWS;
  • алатката овозможува да се поправат проблемите во нафтоводот, за што се следи секоја промена од обврзување до распоредување во реално време.

Конс:

  • потребен е барем еден агент;
  • нема конзола за прикажување на сите завршени задачи;
  • за да ја извршите секоја команда, треба да креирате една задача за конфигурацијата на гасоводот;
  • За да го инсталирате додатокот, треба да ја преместите датотеката .jar во /приклучоци/надворешни и рестартирајте го серверот;
  • релативно мала заедница.

Како заклучок

Ова се само три алатки, всушност има многу повеќе. Тешко е да се избере, па дефинитивно треба да обрнете внимание на дополнителни аспекти.

Отворениот изворен код на алатката овозможува да се разбере што е тоа, плус да се додаваат нови функции побрзо. Но, ако нешто не функционира, тогаш треба да се потпрете само на себе и на помошта од заедницата. Платените алатки обезбедуваат поддршка што понекогаш може да биде критична.

Ако безбедноста ви е главен приоритет, вреди да работите со локална алатка. Ако не, тогаш изборот на решение SaaS е добра опција.

И на крај, за да обезбедите навистина ефективен континуиран процес на распоредување, треба да формулирате критериуми чии специфики ќе ви овозможат да го намалите опсегот на достапни алатки.

Skillbox препорачува:

Извор: www.habr.com

Додадете коментар