Одним з технологічних оновлень останнього часу для наших продуктів став перехід до застосування технологій Git(ґіт).

До появи Git всі ми користувалися іншими засобами керування версіями, що мали відомий недолік - однорівневу систему коміту, що не дозволяє виправити помилки без втручання в репозиторій.

Тож саме з появою Git система керування версіями  отримала дворівневу систему запису інформації до репозиторію, а отже і додатковий простір локального сховища, що дозволяє якісно узгоджувати зміни перед демонстрацією проміжних результатів для всіх учасників будь-якого окремого проєкту.

image.png        Використання розподілених систем керування версіями файлів та спільної роботи дозволяє забезпечувати стійкість версій та надає гнучкі засоби нелінійної розробки, що базуються на відгалуженні і злитті гілок.      Завдяки методиці Git flow з’явилася можливість ділити проєкт на різні середовища (гілки), які можна вести і запускати паралельно для виконання різноманітних задач, порівнянь, тестів тощо.

Оскільки Git це система керування версіями, то для організації спільної розробки програмного забезпечення з’явилися веб-сервіси для узгоджених дій з кодом проєкту та відстеження змін. Першим і досі найпопулярнішим з таких веб-сервісів став GitHub, а трохи згодом з’явився  та зайняв свою нішу GitLab, маючи ширші функції і можливості виконувати CI/CD.

image.png

Для реалізації проєктів ми зазвичай використовуємо GitLab оскільки він  дозволяє одночасно, не заважаючи один одному, проводити роботу над різними задачами з персональним рівнем відповідальності, тримати весь вихідний код в одному місці, контролювати версії програми та створювати бекапи, тестування, розгортання в автоматичному режимі.

Метою переходу до використання GitLab  було покращення безпеки програмного забезпечення та середовища розробки, збільшення ефективності та покращення процесу розробки, тестування та ведення проєкта в цілому.

Процес розробки згідно з методологією безперервної інтеграції змін та розгортання(CI/CD) реалізується шляхом автоматизації всіх організаційних задач розробки - тестування та розгортання, перенесення, інтеграція коду, тощо. Це допомагає уникнути помилок і збоїв коду та підвищити якість продукції в цілому.

Система забезпечує унеможливлення стороннього втручання в код, а також персональну відповідальність за редагування будь-якого файлу репозиторія. Всі зміни кожного користувача логуються та відображаються іншим членам команди, яким надано доступ до репозиторія.

image.png          Git дозволяє створювати теги (Tag), які являють собою знімок програми в потрібному моменті, таким чином можна створювати й керувати історією версій програми. Теги дозволяють дуже зручно оновлювати основну програму, за потреби будь яку іншу попередню версію, чи розгортати паралельно буді які версії програми для різних цілей, наприклад, порівняння, тестування, тощо.

Перехід на гіт відкриває широкі можливості для проєкта. Однією з цих можливостей є створення автотестувань. Тестування коду запускається автоматично або ж їх можна запускати в довільний проміжок часу.  Повна історія змін програми завдяки гіт генерується автоматично та дає змогу підсумувати виконані роботи над проєктом.

Проєкт GitLab від моменту заснування створювався для особистого використання, тож можливість розгортання GitLab на власних серверах була опцією за замовчуванням.

Ми вдячні авторам і власникам цього чудового продукту, що дозволяють користуватися ним і в хмарному варіанті, і завантажити все необхідне та встановити цей веб-сервіс на власних потужностях.

Однією з численних переваг використання GitLab відзначимо ще зручне створення технічної і проєктної документації в форматі markdown та готове веб-рішення для її відображення й зручне читання. Розміщується вона в корені репозиторія та доступна по відносному посиланню.