ProHoster > Блог > интернет новини > 3 популярни инструмента за организиране на непрекъснато внедряване (Continuous Deployment)
3 популярни инструмента за организиране на непрекъснато внедряване (Continuous Deployment)
Непрекъснатото внедряване е специален подход в разработката на софтуер, който се използва за бързо, безопасно и ефективно внедряване на различни функции в софтуера.
Основната идея е да се създаде надежден автоматизиран процес, който позволява на разработчика бързо да достави крайния продукт на потребителя. В същото време се правят постоянни промени в производството - това се нарича тръбопровод за непрекъсната доставка (CD Pipeline).
Напомняме ви:за всички читатели на "Habr" - отстъпка от 10 000 рубли при записване във всеки курс Skillbox, използвайки промоционалния код на "Habr".
За да контролирате потока, можете да използвате широк набор от инструменти, включително платени и напълно безплатни. Тази статия описва три от най-популярните решения сред разработчиците, които могат да бъдат полезни на всеки програмист.
Дженкинс
Напълно самостоятелен сървър за автоматизация с отворен код. Струва си да работите с него, за да автоматизирате всички видове задачи, свързани с изграждането, тестването, доставката или внедряването на софтуер.
Минимални изисквания към компютъра:
256 MB RAM, 1 GB файлово пространство.
Оптимално:
1 GB RAM, 50 GB твърд диск.
За работа ще ви е необходим и допълнителен софтуер - Java Runtime Environment (JRE) версия 8.
Архитектурата (разпределени изчисления) изглежда така:
Jenkins Server е инсталация, която отговаря за хостинга на GUI, както и за организирането и изпълнението на цялата компилация.
Jenkins Node/Slave/Build Server – устройства, които могат да бъдат конфигурирани да извършват работа по изграждане от името на главния (главен възел).
Инсталация за Linux
Първо трябва да добавите хранилището на Jenkins към системата:
След това Jenkins ще бъде достъпен в системата чрез порта по подразбиране 8080.
За да проверите функционалността, трябва да отворите адреса в браузъра Localhost:8080. След това системата ще ви подкани да въведете първоначалната парола за root потребител. Тази парола се намира във файла /var/lib/jenkins/secrets/initialAdminPassword.
Сега всичко е готово за работа, можете да започнете да създавате CI/CD потоци. Графичният интерфейс на работната маса изглежда така:
Дженкинс Силни страни:
скалируемост, осигурена от архитектурата 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 промени, агенти, опашки за изграждане, потребителски акаунти и разрешения. Базата данни не включва само регистрационни файлове за изграждане и артефакти.
Инсталация за Linux
За да инсталирате ръчно TeamCity с контейнер за сървлети Tomcat, трябва да използвате архива на TeamCity: TeamCity .tar.gz. Изтегли можете да го получите от тук.
tar -xfz TeamCity.tar.gz
/bin/runAll. sh [старт|стоп]
Когато стартирате за първи път, трябва да изберете типа база данни, в която ще се съхраняват данните за асемблирането.
Конфигурацията по подразбиране работи на Localhost:8111/ с един регистриран агент за изграждане, работещ на същия компютър.
Силните страни на TeamCity:
лесна настройка;
лесен за ползване интерфейс;
голям брой вградени функции;
поддържа;
има RESTful API;
добра документация;
добра сигурност.
против:
ограничена интеграция;
Това е платен инструмент;
малка общност (която обаче се разраства).
GoCD
Проект с отворен код, който изисква Java Runtime Environment (JRE) версия 8 за инсталиране и работа.
Системни изисквания:
RAM - 1 GB минимум, повече е по-добре;
процесор - двуядрен, с честота на ядрото 2 GHz;
твърд диск - поне 1 GB свободно пространство.
Агент:
RAM - поне 128 MB, повече е по-добре;
процесор - поне 2 GHz.
Сървърът осигурява работата на агентите и предоставя удобен интерфейс за потребителя:
Етапи/работи/задачи:
Инсталация за Linux
ехо "deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list
възможност за показване стъпка по стъпка пътя на внедряване на GoCD в един изглед:
отлично показване на структурата на тръбопровода:
GoCD оптимизира работния процес на CD в най-популярните облачни среди, включително Docker, AWS;
инструментът прави възможно коригирането на грешки в тръбопровода, за което има проследяване на всяка промяна от ангажиране до внедряване в реално време.
против:
необходим е поне един агент;
няма конзола за показване на всички изпълнени задачи;
за да изпълните всяка команда, трябва да създадете една задача за конфигурацията на тръбопровода;
За да инсталирате плъгина, трябва да преместите .jar файла в /plugins/external и рестартирайте сървъра;
сравнително малка общност.
Като заключение
Това са само три инструмента, всъщност има много повече. Трудно е да изберете, така че определено трябва да обърнете внимание на допълнителни аспекти.
Отвореният изходен код на инструмента позволява да се разбере какво представлява, както и да се добавят нови функции по-бързо. Но ако нещо не работи, тогава трябва да разчитате само на себе си и на помощта на общността. Платените инструменти предоставят поддръжка, която понякога може да бъде критична.
Ако сигурността е ваш основен приоритет, струва си да работите с локален инструмент. Ако не, тогава изборът на SaaS решение е добър вариант.
И накрая, за да осигурите наистина ефективен процес на непрекъснато внедряване, трябва да формулирате критерии, чиято специфика ще ви позволи да стесните обхвата на наличните инструменти.