Одним з технологічних оновлень останнього часу для наших продуктів став перехід до застосування технологій Git(ґіт).
До появи Git всі ми користувалися іншими засобами керування версіями, що мали відомий недолік - однорівневу систему коміту, що не дозволяє виправити помилки без втручання в репозиторій.
Тож саме з появою Git система керування версіями отримала дворівневу систему запису інформації до репозиторію, а отже і додатковий простір локального сховища, що дозволяє якісно узгоджувати зміни перед демонстрацією проміжних результатів для всіх учасників будь-якого окремого проєкту.
Використання розподілених систем керування версіями файлів та спільної роботи дозволяє забезпечувати стійкість версій та надає гнучкі засоби нелінійної розробки, що базуються на відгалуженні і злитті гілок.
Завдяки методиці Git flow з’явилася можливість ділити проєкт на різні середовища (гілки), які можна вести і запускати паралельно для виконання різноманітних задач, порівнянь, тестів тощо.
Оскільки Git це система керування версіями, то для організації спільної розробки програмного забезпечення з’явилися веб-сервіси для узгоджених дій з кодом проєкту та відстеження змін. Першим і досі найпопулярнішим з таких веб-сервісів став GitHub, а трохи згодом з’явився та зайняв свою нішу GitLab, маючи ширші функції і можливості виконувати CI/CD.
Для реалізації проєктів ми зазвичай використовуємо GitLab оскільки він дозволяє одночасно, не заважаючи один одному, проводити роботу над різними задачами з персональним рівнем відповідальності, тримати весь вихідний код в одному місці, контролювати версії програми та створювати бекапи, тестування, розгортання в автоматичному режимі.
Метою переходу до використання GitLab було покращення безпеки програмного забезпечення та середовища розробки, збільшення ефективності та покращення процесу розробки, тестування та ведення проєкта в цілому.
Процес розробки згідно з методологією безперервної інтеграції змін та розгортання(CI/CD) реалізується шляхом автоматизації всіх організаційних задач розробки - тестування та розгортання, перенесення, інтеграція коду, тощо. Це допомагає уникнути помилок і збоїв коду та підвищити якість продукції в цілому.
Система забезпечує унеможливлення стороннього втручання в код, а також персональну відповідальність за редагування будь-якого файлу репозиторія. Всі зміни кожного користувача логуються та відображаються іншим членам команди, яким надано доступ до репозиторія.
Git дозволяє створювати теги (Tag), які являють собою знімок програми в потрібному моменті, таким чином можна створювати й керувати історією версій програми. Теги дозволяють дуже зручно оновлювати основну програму, за потреби будь яку іншу попередню версію, чи розгортати паралельно буді які версії програми для різних цілей, наприклад, порівняння, тестування, тощо.
Перехід на гіт відкриває широкі можливості для проєкта. Однією з цих можливостей є створення автотестувань. Тестування коду запускається автоматично або ж їх можна запускати в довільний проміжок часу. Повна історія змін програми завдяки гіт генерується автоматично та дає змогу підсумувати виконані роботи над проєктом.
Проєкт GitLab від моменту заснування створювався для особистого використання, тож можливість розгортання GitLab на власних серверах була опцією за замовчуванням.
Ми вдячні авторам і власникам цього чудового продукту, що дозволяють користуватися ним і в хмарному варіанті, і завантажити все необхідне та встановити цей веб-сервіс на власних потужностях.
Однією з численних переваг використання GitLab відзначимо ще зручне створення технічної і проєктної документації в форматі markdown та готове веб-рішення для її відображення й зручне читання. Розміщується вона в корені репозиторія та доступна по відносному посиланню.