В умовах розвитку онлайн-бізнесу і, відповідно, віртуалізації всіх робочих процесів, актуальним стає питання забезпечення узгодженості даних, що зберігаються на різних комп’ютерах мережі, тобто їх синхронізації між собою.
Існує багато варіантів вирішення цього питання, найоптимальнішим з яких є використання спеціального програмного забезпечення (ПЗ), що синхронізує дані в автоматичному режимі без прив’язки до стороннього централізованого сховища.
Програма Syncthing належить до такого ПЗ і є однією з найкращих у своєму сегменті.
Розглянемо детальніше її можливості та продемонструємо практичне використання.
Синхронізація файлів і папок
Автоматична синхронізація даних позбавляє користувачів від рутинного ручного копіювання у випадках, коли потрібно мати копію даних на іншому вузлі локальної або глобальної мережі, особливо якщо для дублювання інформації використовується кілька вузлів.
У разі автоматичної синхронізації копіювання відбувається у фоновому режимі, непомітно для користувачів.
Крім того, ряд програм синхронізації, зокрема й Syncthing, використовують шифровані канали передачі даних, що гарантує захист інформації від зламу. Це робить програму незамінним інструментом для організації розгалуженої мережі робочих вузлів із даними, які синхронізуються автоматично.
Альтернативним варіантом може бути використання хмарних сервісів або інших централізованих сховищ даних, однак у цьому випадку значно підвищується ризик витоку інформації, оскільки вона зберігається на сторонньому сервері.
Крім того, власники якісних сховищ, як правило, з часом підвищують оплату за користування або посилюють вимоги щодо деяких параметрів.
Використання децентралізованих сховищ у межах власного динамічно масштабованого кластера машин, на наш погляд, є найкращим вирішенням проблеми — особливо якщо для синхронізації використовується вільне ПЗ з відкритим вихідним кодом, як Syncthing.
Виходячи з наведених характеристик і ряду інших параметрів, можна стверджувати, що Syncthing справді є одним із найперспективніших програмних засобів для синхронізації даних.
Можливості Syncthing
Наведемо найважливіші характеристики Syncthing, які відрізняють її від більшості інших програм синхронізації:
- належить до вільного безкоштовного ПЗ;
- можливість використання у локальних і глобальних мережах;
- децентралізоване зберігання даних;
- надійна ідентифікація вузлів кластера за допомогою криптографічного сертифіката;
- легкість і простота масштабування кластера будь-якого розміру й типу;
- кросплатформність — можливість роботи на багатьох платформах (Linux, Windows, Mac тощо);
- для передачі даних використовуються шифровані TLS-канали та механізм обміну ключами;
- відкритий код і відкритий процес розробки;
- обмін даними в межах кластера здійснюється на рівні блоків;
- використання спеціального протоколу власної розробки для виявлення пристроїв;
- розгалужена структура серверів Discovery для пошуку нових вузлів на глобальному рівні;
- наявність вебінтерфейсу для керування програмою.
Практичне використання Syncthing
Щоб використовувати програму у своїх проєктах, достатньо завантажити потрібну версію для конкретної платформи з сайту розробника й встановити її на робочий вузол.
Після встановлення та розгортання стає доступним ідентифікатор пристрою (Device ID), який потрібно передати користувачам або адміністраторам віддалених машин, на яких планується розміщення спільних синхронізованих даних. У свою чергу, вони після встановлення програми також мають поділитися своїми ідентифікаторами з усіма учасниками кластера. Це обов’язкова умова функціонування кластера.
Одразу після розгортання програми на будь-якому вузлі стає доступним вебінтерфейс адміністрування, який знаходиться за адресою http://127.0.0.1:8384. За замовчуванням пароль для доступу до панелі керування відсутній, але пізніше його можна встановити.
Ми налаштуємо наш кластер на основі двох віддалених вузлів — на одному встановлено ОС Ubuntu, на іншому — Windows. Вузол на Ubuntu був підготовлений заздалегідь, у результаті чого ми отримали ідентифікатор пристрою (ID), який знадобиться нам для підключення цього вузла до кластера.
Тепер розгорнемо програму на локальному вузлі під управлінням ОС Windows і виконаємо потрібні налаштування.
Розгортання Syncthing у ОС Windows
Спочатку завантажуємо з сайту розробників 32-бітну версію програми для платформи x86 і зберігаємо її на свій вузол. Це архівний файл із назвою syncthing-windows-386-v0.14.30.
За допомогою архіватора розпаковуємо каталог із такою ж назвою, у якому містяться всі системні файли та папки програми.
Запускаємо виконуваний файл syncthing для початку процесу встановлення. У результаті генеруються ключі шифрування та конфігураційний файл програми. Через 1–2 хвилини після ініціалізації інсталяції автоматично відкривається браузер із доступом до вебінтерфейсу панелі керування Syncthing за адресою http://127.0.0.1:8384.

Вікно програми поділено на два блоки. У лівому блоці відображаються назви каталогів, спільних для всіх доданих вузлів кластера. Спочатку відображається лише каталог, встановлений за замовчуванням (Default Folder), який поки що не є загальнодоступним.
У правому блоці показуються імена й характеристики усіх пристроїв кластера — у верхній частині для поточного пристрою, а в нижній — для віддалених пристроїв.
Керування кластером через вебінтерфейс програми
Перше, що потрібно зробити, — це підключити каталог із даними, який у подальшому стане спільним ресурсом для всіх вузлів кластера. Для цього в лівому блоці інтерфейсу натискаємо кнопку «Додати папку». З’явиться вікно введення параметрів сховища.

Найважливішими є перші три поля — назва сховища, його ідентифікатор і локальний шлях до каталогу розміщення. Після заповнення натискаємо «Зберегти», після чого програма повертає нас у головне вікно.

Через кілька хвилин відбудеться обробка даних, після завершення якої біля назви підключеного каталогу з’явиться зелений напис «В актуальному стані».

Наступним етапом формування кластера буде його розширення шляхом додавання нових вузлів.
Натискаємо кнопку «Додати віддалений пристрій» у правому блоці вікна програми. З’явиться вікно введення параметрів нового пристрою.

Вводимо значення обов’язкових параметрів — ідентифікатор пристрою, його назву та адресу. Як уже зазначалося, програма має вбудовані засоби пошуку нових пристроїв, тому для поля «Адреси» достатньо вибрати динамічне визначення, без введення реальної IP-адреси.
Також потрібно дозволити пристрою доступ до всіх або деяких існуючих каталогів, установивши прапорці навпроти потрібних. Після завершення введення натискаємо «Зберегти» і повертаємося до головного вікна програми.

У правому блоці тепер відображається інформація про новий вузол кластера — його IP-адреси для різних портів, а також список доступних каталогів у нижній частині блоку.
У результаті ми отримали готовий кластер із двох вузлів на різних платформах. Надалі кластер можна розширювати, додаючи нові пристрої — їх кількість обмежується лише технічними можливостями вашого сервера.
Програма дозволяє динамічно керувати всіма процесами за допомогою набору команд головного меню, зосереджених у пункті «Дії».

Тут можна виконати широкий спектр налаштувань, перезапустити програму або завершити її роботу.

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