SCM

Для нашого подальшого навчання і розуміння, як працювати у команді з використанням підходу GitOps (всі наші дії відбуваються через код), ми повинні навчитися користуватися Git. Тому цей розділ присвяченний розумінню систем контролю версій (SCM - Source Code Management) . Цей підхід нам дозволить освоїти IaC

GitOps

Історія створення. Патчі

На початкових етапах розвитку розробки програмної продукції розробники використовували патчі для виправлення багів та недоліків в коді. Патчі були невеликими фрагментами коду, які заміняли необхідний код у вихідних файлах програми. Це допомагало досить швидко розробникам розв'язувати проблеми, що з’являлися у програмах.

Однак з часом комп’ютерні системи стали ускладнюватися, а програмні продукти стали включати значно більшу кількість файлів і коду. Це призвело до того, що відновлення цілісності програм стало набагато складніше. Тоді розробники почали використовувати системи контролю версій, щоб зберігати всі версії програми, на якій працюють розробники.

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

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

[!TIP] Сучасні IDE і досі підтримують роботу з патчами. Розробка однієї з найвідоміших CMF Drupal і досі організована з використанням патчів. Тому я раджу ознайомитися з матеріалом Use patches самостійно, щоб ви мали уяву як з ними працювати.

Системи контролю версій

Control Version System (CVS) – це система, що записує зміни у файл або набір файлів протягом часу. Вона дозволяє повертатися до попередніх версій файлів, відновлювати втрачені дані та співпрацювати з іншими розробниками. Існує три основні типи систем:

  • локальні - зберігають зміни на локальному комп'ютері
  • централізовані - (CVS, SVN) мають один сервер для зберігання версій файлів
  • децентралізовані - (Git, Mercurial) копіюють повний репозиторій з історією на кожен клієнтський комп'ютер, що дозволяє легко відновити дані при виході з ладу сервера.

[!TIP] Більш наочно прочитати про відмінності ви можете тут у Git Book

Зараз найпопулярніша система контролю версій є Git, яка є децентралізованою.

Децентралізований Git

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

results matching ""

    No results matching ""