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.