3 популярни инструмента за организиране на непрекъснато внедряване (Continuous Deployment)

3 популярни инструмента за организиране на непрекъснато внедряване (Continuous Deployment)

Непрекъснатото внедряване е специален подход в разработката на софтуер, който се използва за бързо, безопасно и ефективно внедряване на различни функции в софтуера.

Основната идея е да се създаде надежден автоматизиран процес, който позволява на разработчика бързо да достави крайния продукт на потребителя. В същото време се правят постоянни промени в производството - това се нарича тръбопровод за непрекъсната доставка (CD Pipeline).

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

Напомняме ви: за всички читатели на "Habr" - отстъпка от 10 000 рубли при записване във всеки курс Skillbox, използвайки промоционалния код на "Habr".

3 популярни инструмента за организиране на непрекъснато внедряване (Continuous Deployment)

За да контролирате потока, можете да използвате широк набор от инструменти, включително платени и напълно безплатни. Тази статия описва три от най-популярните решения сред разработчиците, които могат да бъдат полезни на всеки програмист.

Дженкинс

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

Минимални изисквания към компютъра:

  • 256 MB RAM, 1 GB файлово пространство.

Оптимално:

  • 1 GB RAM, 50 GB твърд диск.

За работа ще ви е необходим и допълнителен софтуер - Java Runtime Environment (JRE) версия 8.

Архитектурата (разпределени изчисления) изглежда така:
3 популярни инструмента за организиране на непрекъснато внедряване (Continuous Deployment)

Jenkins Server е инсталация, която отговаря за хостинга на GUI, както и за организирането и изпълнението на цялата компилация.

Jenkins Node/Slave/Build Server – устройства, които могат да бъдат конфигурирани да извършват работа по изграждане от името на главния (главен възел).

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

Първо трябва да добавите хранилището на Jenkins към системата:

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 актуализация

Инсталирайте Jenkins:

sudo apt инсталирайте jenkins

След това Jenkins ще бъде достъпен в системата чрез порта по подразбиране 8080.

За да проверите функционалността, трябва да отворите адреса в браузъра Localhost:8080. След това системата ще ви подкани да въведете първоначалната парола за root потребител. Тази парола се намира във файла /var/lib/jenkins/secrets/initialAdminPassword.

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

3 популярни инструмента за организиране на непрекъснато внедряване (Continuous Deployment)

3 популярни инструмента за организиране на непрекъснато внедряване (Continuous Deployment)

Дженкинс Силни страни:

  • скалируемост, осигурена от архитектурата Master/Slave;
  • наличие на REST XML/JSON API;
  • възможност за свързване на голям брой разширения благодарение на плъгини;
  • активна и постоянно развиваща се общност.

против:

  • няма аналитичен блок;
  • не много удобен за потребителя интерфейс.

TeamCity

Търговска разработка от JetBrains. Сървърът е добър с проста настройка и отличен интерфейс. Конфигурацията по подразбиране има голям брой функции и броят на наличните добавки непрекъснато се увеличава.

Изисква Java Runtime Environment (JRE) версия 8.

Хардуерните изисквания на сървъра не са критични:

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

Сървърът ви позволява да постигнете висока производителност:

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

Изискванията на агента се основават на работещи модули. Основната задача на сървъра е да наблюдава всички свързани агенти и да разпределя комплекти на опашка към тези агенти въз основа на изискванията за съвместимост, отчитайки резултатите. Агентите се предлагат в различни платформи и операционни системи, плюс предварително конфигурирана среда.

Цялата информация за резултатите от изграждането се съхранява в базата данни. Основно това е история и други подобни данни, VCS промени, агенти, опашки за изграждане, потребителски акаунти и разрешения. Базата данни не включва само регистрационни файлове за изграждане и артефакти.

3 популярни инструмента за организиране на непрекъснато внедряване (Continuous Deployment)

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

За да инсталирате ръчно TeamCity с контейнер за сървлети Tomcat, трябва да използвате архива на TeamCity: TeamCity .tar.gz. Изтегли можете да го получите от тук.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [старт|стоп]

Когато стартирате за първи път, трябва да изберете типа база данни, в която ще се съхраняват данните за асемблирането.

3 популярни инструмента за организиране на непрекъснато внедряване (Continuous Deployment)

Конфигурацията по подразбиране работи на Localhost:8111/ с един регистриран агент за изграждане, работещ на същия компютър.

Силните страни на TeamCity:

  • лесна настройка;
  • лесен за ползване интерфейс;
  • голям брой вградени функции;
  • поддържа;
  • има RESTful API;
  • добра документация;
  • добра сигурност.

против:

  • ограничена интеграция;
  • Това е платен инструмент;
  • малка общност (която обаче се разраства).

GoCD

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

Системни изисквания:

  • RAM - 1 GB минимум, повече е по-добре;
  • процесор - двуядрен, с честота на ядрото 2 GHz;
  • твърд диск - поне 1 GB свободно пространство.

Агент:

  • RAM - поне 128 MB, повече е по-добре;
  • процесор - поне 2 GHz.

Сървърът осигурява работата на агентите и предоставя удобен интерфейс за потребителя:

3 популярни инструмента за организиране на непрекъснато внедряване (Continuous Deployment)

Етапи/работи/задачи:

3 популярни инструмента за организиране на непрекъснато внедряване (Continuous Deployment)

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

ехо "deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

Curl download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key add -
add-apt-repository ppa:openjdk-r/ppa

ап-GET актуализация

apt-get install -y openjdk-8-jre

apt-get инсталирате go-сървър

apt-get инсталирайте go-agent

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

/etc/init.d/go-agent [старт|стоп|статус|рестартиране]

По подразбиране GoCd работи Localhost: 8153.

Силните страни на GoCd:

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

  • Страхотен потребителски интерфейс:

3 популярни инструмента за организиране на непрекъснато внедряване (Continuous Deployment)

  • възможност за показване стъпка по стъпка пътя на внедряване на GoCD в един изглед:

3 популярни инструмента за организиране на непрекъснато внедряване (Continuous Deployment)

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

3 популярни инструмента за организиране на непрекъснато внедряване (Continuous Deployment)

  • GoCD оптимизира работния процес на CD в най-популярните облачни среди, включително Docker, AWS;
  • инструментът прави възможно коригирането на грешки в тръбопровода, за което има проследяване на всяка промяна от ангажиране до внедряване в реално време.

против:

  • необходим е поне един агент;
  • няма конзола за показване на всички изпълнени задачи;
  • за да изпълните всяка команда, трябва да създадете една задача за конфигурацията на тръбопровода;
  • За да инсталирате плъгина, трябва да преместите .jar файла в /plugins/external и рестартирайте сървъра;
  • сравнително малка общност.

Като заключение

Това са само три инструмента, всъщност има много повече. Трудно е да изберете, така че определено трябва да обърнете внимание на допълнителни аспекти.

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

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

И накрая, за да осигурите наистина ефективен процес на непрекъснато внедряване, трябва да формулирате критерии, чиято специфика ще ви позволи да стесните обхвата на наличните инструменти.

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

Източник: www.habr.com

Добавяне на нов коментар