Целью данной работы является разработка практического мануала для использования непрерывной интеграции и непрерывной доставки в промышленных условиях.
Основным компонентом для данного примера был выбран программный продукт Gitlab, который оснащен набором нативных компонентов, позволяющих организовать в полной мере непрерывную интеграцию, построенную при использовании симбиоза декларативного и императивного подходов. Также непрерывная доставка настраивается с использованием сторонних интеграций, например подключения к Gitlab кластера Kubernetes, которые позволяют, используя веб интерфейс Gitlab, контролировать и настраивать инфраструктуру вокруг приложения.
Данная работа реализует поддержку непрерывной интеграции и непрерывной доставки для тестового приложения, написанного на языке Java. Внутри интеграционного скрипта используются специфичные для Java приложения инструкции сборки и тестирования приложения, а также упаковки в docker контейнер. Но также по аналогии, учитывая специфичность каждого отдельно взятого проекта, есть возможность построить систему для автоматизации процесса доставки функционала приложения от состояния исходного кода и до конечного пользователя.
Глава 1: описывает общие понятия о непрерывной интеграции и непрерывной доставки, а также аргументацию использования тех или иных технологий.
Глава 2: аккумулирует использованные в работе технологии и программные продукты, их преимущества и недостатки, а также уточняется какие компоненты данных продуктов были использованы в работе.
Глава 3: представляет собой имплементацию системы непрерывной интеграции и непрерывной доставки для тестового приложения.
Scopul acestei lucrări este de a dezvolta un manual practic pentru utilizarea integrării continue și a livrării continue într-un cadru industrial.
Componenta principală pentru acest exemplu a fost produsul software Gitlab, care este echipat cu un set de componente native care vă permit să organizați complet integrarea continuă, construită utilizând o simbioză a abordărilor declarative și imperative. Livrarea continuă este, de asemenea, configurată utilizând integrări terțe, cum ar fi conectarea la Gitlab a clusterului Kubernetes, care permit, utilizând interfața web Gitlab, să controleze și să configureze infrastructura din jurul aplicației.
Această lucrare implementează integrarea continuă și suportul de livrare continuă pentru o aplicație de test scrisă în limbajul Java. În cadrul scriptului de integrare, instrucțiunile specifice Java sunt utilizate pentru a construi și testa aplicația, precum și pentru a o împacheta într-un container de andocare. Dar, de asemenea, prin analogie, luând în considerare specificitatea fiecărui proiect individual, este posibil să se construiască un sistem care să automatizeze livrarea funcționalității aplicației din starea codului sursă către utilizatorul final.
Capitolul 1: descrie conceptele generale de integrare continuă și livrare continuă, precum și raționamentul pentru utilizarea anumitor tehnologii.
Capitolul 2: acumulează tehnologii și produse software utilizate în muncă, avantajele și dezavantajele acestora și clarifică, de asemenea, ce componente ale acestor produse au fost utilizate în muncă.
Capitolul 3: introduce implementarea unui sistem de integrare continuă și livrare continuă pentru o aplicație de testare.
The main goal of this work is to develop a practical manual for using continuous integration and continuous delivery in an industrial setting.
The main component for this example was the Gitlab software product, which is equipped with a set of native components that allow you to fully organize continuous integration, built using the symbiosis of declarative and imperative approaches. Continuous delivery is also configured using third-party integrations, such as connecting to Gitlab of the Kubernetes cluster, which allow, using the Gitlab web interface, to control and configure the infrastructure around the application.
This work implements continuous integration and continuous delivery support for a test application written in the Java language. Inside the integration script, Java-specific instructions are used to build and test the application, as well as package it into a docker container. But also by analogy, taking into account the specificity of each individual project, it is possible to build a system to automate the process of delivering application functionality from the state of the source code to the end user.
Chapter 1: describes the general concepts of continuous integration and continuous delivery, as well as the reasoning for the use of certain technologies.
Chapter 2: accumulates technologies and software products used in the work, their advantages and disadvantages, and also clarifies which components of these products were used in the work.
Chapter 3: introduces a continuous integration and continuous delivery system implementation for a test application.