Logo of museum-digital

museum-digital

Про проєкт museum-digital Інфраструктура
Banner Image from page 216 of 'A test of a pneumatic ASH handling system' (1914)

Інфраструктура

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


Сервери

Хостинг і розробка museum-digital здійснюється з використанням трьох серверів. Один сервер, розташований у Strato, використовується як основний сервер для редагування даних і надання їх широкій публіці. Другий сервер, розміщений у digiS у Берліні, використовується як основний сервер для зберігання зображень і резервного копіювання. Нарешті, третій сервер, також розташований у Strato, використовується для розміщення здебільшого внутрішніх інструментів, таких як Nextcloud і Gitea, а також нашої пошти. Це забезпечує виконання на промислових серверах тільки мінімуму необхідного дорогого програмного забезпечення.

Стратегія резервного копіювання

У museum-digital є три типи даних для резервного копіювання: вміст бази даних, медіафайли та файли конфігурації.

Вміст бази даних резервно копіюється раз на день, шифрується GPG і потім синхронізується сервером резервного копіювання. Ми зберігаємо повні, зашифровані дампи за останні 7 днів, доступні для швидкого відновлення в будь-який час (як на основному сервері бази даних, так і на сервері резервного копіювання). Раз на день дампи копіюються в центральну систему резервного копіювання digiS.

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

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

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


Open Source або відкритий вихідний код

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


Technology Stack

Наші системи працюють на досить поширеному технологічному стеку: Ubuntu для операційної системи, nginx для веб-сервера, MariaDB для сервера бази даних і PHP - як основна мова програмування для всього серверного коду. Redis і Manticore використовуються відповідно для швидкого сховища ключів і серверів повнотекстового пошуку. Для серверної розробки ми використовуємо PHPUnit для модульного тестування, PHPStan для статичного аналізу коду і PHPBench для бенчмаркінгу заданих функцій.

Деякі сайти, які не потребують будь-якої глибшої серверної логіки, працюють безпосередньо на nginx (архів документів) або генеруються за допомогою генераторів статичних сайтів (Zola у випадку цього сайту, mdbook у випадку довідника).


Часті запитання

Де знаходяться сервери museum-digital?

Наші сервери розташовані в Німеччині. Центр досліджень і підвищення кваліфікації в галузі дигіталізації землі Берлін digiS щедро спонсорує й обслуговує один із них. Решта серверів орендуються в Strato.