• База знань
  • /
  • Блог
  • /
  • Wiki
  • /
  • ONLINE CHAT
+380 (44) 364 05 71

Стаття також доступна російською (перейти до перегляду).

Еволюція бекапа в DevOps та CI/CD: ключові підходи, тренди та методи захисту даних у швидких циклах розробки

Зміст:

Розвиток методологій розгалуженої розробки та супроводу веб-проектів призвели до концептуальних змін у організації та роботі систем резервного копіювання даних. З'явилися нові програмні засоби для автоматизації процесу створення та завантаження резервних копій, а самі сховища даних трансформувалися та повністю або частково «перейшли у хмару». І тому актуальним завданням є пошук оптимального варіанту організації системи резервного копіювання, котра б була позбавлена недоліків «класичних» схем створення бекапів та орієнтувалась на конкретний веб-проект.

Принципи, на котрі спираються системи резервування

Принципи побудови «класичних» схем створення бекапів спираються на всім відому формулу «3-2-1», згідно якої система повинна відповідати наступним вимогам:

  • Постійна наявність трьох копій даних;

  • Використання двох різних типів носіїв для зберігання інформації;

  • Віддалене зберігання однієї з копій.

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

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

Виділимо складові елементи системи резервування, від рівня розвитку яких напряму залежить її динамічність та ефективність використання:

  • Методи формування копій даних;

  • ПЗ для виконання операцій копіювання та автоматизації;

  • Організація та тип сховища.

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

Методи формування копій даних

Виділимо основні методи створення копій даних, котрі застосовуються у світі IT для отримання надійного бекапу для своїх веб-проектів:

  • Активне повне копіювання;

  • Інкрементне;

  • Диференційне;

  • Синтетичне повне;

  • Інкрементне постійне.

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

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

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

Метод диференційного копіювання використовується для створення копій із даними, котрі зазнали змін вже після часу створення останньої повної резервної копії. Його найкраща характеристика – швидкість відновлення. Усі інші параметри займають проміжні значення між активним повним та інкрементним методами копіювання.

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

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

ПЗ для виконання копіювання та автоматизації

Склад та функції такого ПЗ зазнали значних змін протягом останніх років, що пов'язане із розвитком систем віртуалізації, конвеєрних та інших програмних середовищ. Із врахуванням потреб сучасного рівня DevOps такі програми, зокрема, повинні забезпечувати наступні функції:

  • Робота з даними віртуальних середовищ,VPS та фізичних хостів;

  • Підтримка протоколів FTP, SSH та WebDAV;

  • Підтримка VSS (Volume Snapshot Service) та версіонування файлів;

  • Кросплатформність;

  • Підтримка роботи з NAS;

  • Широкий вибір провайдерів та робота з API;

  • Використання різних стратегій або методів формування копій даних;

  • Виконання операцій синхронізації, клонування та реплікації даних;

  • Широкі можливості автоматизації.

Розглянемо лише декотрі з програм резервування даних, котрі в тій або іншій мірі задовольняють вказаним вимогам. Це наступні ПЗ:

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

Duplicati – має безкоштовний тарифний план та може використовуватися для будь-якої платформи. Характерна підтримка обмеженої кількості «хмарних» провайдерів. Для управління програмою можна використовувати веб-інтерфейс або інтерфейс командної строчки. Підтримуються протоколи FTP, SSH та WebDAV. Є підтримка снапшотів VSS та можливість шифрування бекапів. Автоматичне інкрементне резервне копіювання даних. Хмарна синхронізація. Версіонування файлів.

Rclone – безкоштовне використання в режимі командної строчки для більшості існуючих платформ. Підтримує список із більш ніж 70 провайдерів. Підтримка Cephs. Можливість налагодження конфігурації програми через веб-інтерфейс. Хмарна синхронізація. Не вимагає інсталяції. «Просте» резервне копіювання. Відсутні можливості планування завдань. Мале споживання ресурсів.

Acronis Cyber Backup – потужний платний засіб для здійснення диференційного та інкрементного резервного копіювання для платформ MS Windows, macOS, iOS та Android. Підтримка снапшотів VSS та NAS. Має власне сховище даних.

Veeam Backup & Replication – є частиною сервісу Veeam Availability Suite та перший ПЗ, котрий почав здійснювати резервування, відновлення та реплікацію даних для віртуальних машин (ВМ) на базі гіпервізорів VMware vSphere та Hyper-V. Автоматичне інкрементне резервне копіювання. Підтримка платформи MS Windows. Підтримка NAS, VSS та версіонування файлів. Підтримка великої кількості провайдерів.

Proxmox Backup Server – використовується на базі Debian для автоматичного резервного копіювання ВМ, контейнерів та даних окремих фізичних хостів. Оптимізований для платформи Proxmox VE. Проста інсталяція та налаштування. Управління за допомогою веб-інтерфейсу та командної строчки. Підтримка снапшотів VSS та NAS. Висока швидкість відновлення копій за рахунок використання флеш-пам’яті. Мінімальні об’єми сховища. Ми детально розповідали про цей інструмент в одній за наших попередніх статей.

Розглянуті ПЗ можуть використовуватися не лише окремо один від одного, але й разом. Прикладом тому може бути комбінація програм Duplicati та Rclone для організації роботи сховища. Перший з них може забезпечувати створення резервних копій з використанням VSS та планувальника завдань. Другий можна використовувати в якості основного завантажувача даних у «хмару». Існують й інші варіанти комбінацій ПЗ, головне тут виконати потреби конкретного веб-проекту.

Організація та тип сховища

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

  • На основі спеціалізованих хмарних сервісів;

  • На основі відкритих глобальних хмарних сховищ;

  • На базі використання відокремлених серверів.

Розглянемо кожний із варіантів.

Спеціалізовані хмарні сервіси

Існує кілька спеціалізованих сервісів для зберігання великих об’ємів даних на «хмарі», кожен з яких є платним. Вони використовують власні ПЗ для роботи з даними та, як правило, підтримують WebDAV, API та VSS. Наведемо декотрі з них:

  • Amazon Glacier

  • Amazon S3

  • Acronis Cloud Storage

Amazon Glacier орієнтований на довгострокове зберігання резервних копій даних на великій кількості HDD-носіїв. Його особливістю є складна цінова політика, котра встановлює різні рівні тарифів на завантаження, зберігання та скачування файлів з даними. Наприклад, завантажити файли можна безкоштовно, їх зберігання буде коштувати близько $1 за один ТВ на місяць, а ось скачування файлів обійдеться значно дорожче.

Amazon S3 прийнято вважати «класичним» сховищем для довготривалого зберігання даних. Однак, тарифи тут не такі вже й малі – $10 за один ТВ та вище.

Acronis Cloud Storage створений на базі програмних продуктів компанії Acronis та здатний забезпечити автоматичне резервування даних об'ємом у 250 Гб «лише» за $299 на рік. Його особливістю є широке використання тарифного плану типу «все включено», що може задовольнити потреби декотрих клієнтів.

Відкриті хмарні сховища

Цей вид сховища орієнтований на зберігання порівняно незначних об'ємів даних для пересічних користувачів. Лише в деяких з них на безоплатній основі доступні VSS або WebDAV, що, вочевидь, є суттєвим обмеженням.

Наведемо найбільш відомі сховища такого типу:

  • Mega

  • Google Drive

  • Dropbox

  • OneDrive

Тепер ми можемо резюмувати питання використання спеціалізованих та відкритих глобальних сервісів у якості основи для побудови системи резервування для свого проекту. Отже, глобальні сервіси мають наступні переваги:

  • Надають свій майданчик для зберігання даних компанії або веб-проекту;

  • Беруть на себе завдання адміністрування, підбір та оновлення ПЗ для роботи з даними.

Серед недоліків їх використання можна виділити наступні:

  • Нестійка цінова політика, котра направлена на прив’язування клієнта до сервісу;

  • Наявність вузько направлених інфраструктурних рішень у конфігурації сховища, що ускладнює зміну хмарного провайдера;

  • Рівень безпеки даних напряму залежить від репутації провайдера;

  • Відсутність врахування питань регіонального ринку;

  • Відсутність індивідуального підходу до клієнта.

Відокремлені сервери

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

Серед переваг організації сховища на базі відокремленого серверу можна виділити наступні кейси:

  • Підвищений рівень безпеки – доступ до «хмари» ззовні обмежений – лише Адміністратор сайту або служба підтримки хостингу;

  • Індивідуальний підхід з боку хостінг-провайдера;

  • Оптимізація під вимоги регіонального ринку;

  • Можливість встановлення будь-якого клієнт-серверного ПЗ для роботи з даними;

  • Широкі можливості інтеграції системи резервування із автоматизованим пайплайном веб-проекту.

У якості прикладу побудови системи резервування на основі відокремленого серверу можна навести систему автоматизованого резервування даних, котра використовується Дата-центром Freehost.UA, де у якості ПЗ для роботи з даними використовується Proxmox Backup Server, характеристики якого ми вже розглянули вище.

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

Для клієнтів які потребують більшого об’єму та контролю при зберіганні даних розроблений спеціальний тарифний план оренди серверу “Сервер бекапів”. На його базі можно організувати власний PBS сервер, Veeam Backup, або Baсula наприклад.

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

Підписуйтесь на наш телеграм-канал https://t.me/freehostua, щоб бути в курсі нових корисних матеріалів.

Дивіться наш канал Youtube на https://www.youtube.com/freehostua.

Ми у чомусь помилилися, чи щось пропустили?

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

Дата: 21.02.2025
Автор: Олександр Ровник
Голосування

Авторам статті важлива Ваша думка. Будемо раді його обговорити з Вами:

comments powered by Disqus
navigate
go
exit
Дякуємо, що обираєте FREEhost.UA