Мы стремимся к тому, чтобы музеи могли управлять своими данными и публиковать их совместно. Так они получают преимущества от совместной работы - как в области контролируемых словарей, так и в их видимости на одном сайте с общей функцией поиска. Поэтому все инструменты museum-digital централизованы. В нашу задачу входит реализация разработанного нами программного обеспечения, а также управление работающими на нём системами.
Хостинг и разработка museum-digital осуществляется с использованием трёх серверов. Один сервер, расположенный в Strato, используется в качестве основного сервера для редактирования данных и предоставления их широкой публике. Второй сервер, размещённый в digiS в Берлине, используется в качестве основного сервера для хранения изображений и резервного копирования. Наконец, третий сервер, также расположенный в Strato, используется для размещения в основном внутренних инструментов, таких как Nextcloud и Gitea, а также нашей почты. Это обеспечивает выполнение на промышленных серверах только минимума необходимого дорогостоящего программного обеспечения.
В museum-digital есть три типа данных для резервного копирования: содержимое базы данных, медиафайлы и файлы конфигурации.
Содержимое базы данных резервно копируется раз в день, шифруется GPG и затем синхронизируется сервером резервного копирования. Мы храним полные, зашифрованные дампы за последние 7 дней, доступные для быстрого восстановления в любое время (как на основном сервере базы данных, так и на сервере резервного копирования). Раз в день дампы копируются в центральную систему резервного копирования digiS.
Сервер резервного копирования одновременно используется в качестве сервера изображений. Для выполнения этой функции он автоматически синхронизирует все носители каждые три-шесть часов - ночью в Европе частота синхронизации снижается, поскольку ночью практически не добавляются новые файлы, которые могли бы потребовать дополнительного использования пропускной способности и вычислительных ресурсов. Таким образом, вторая копия всех медиафайлов доступна в любое время. Медиафайлы также включаются в централизованную систему резервного копирования digiS раз в день, аналогично дампам баз данных.
Наконец, файлы конфигурации регулярно синхронизируются в git-репозиторий, который затем синхронизируется с нашим экземпляром Gitea и передается членам нашей команды администраторов.
Для создания дополнительного уровня резервного копирования, мы ежемесячно создаём моментальную копию хранимых данных.
Сейчас мы занимаемся предоставлением всё большей части нашего кода в формате open source. Ориентированные на содержание open-source части, как, например, руководство пользователя, доступны и могут редактироваться через GitHub. При этом модули, используемые в основных сервисах, размещены на нашей собственной странице Gitea.
Наши системы работают на довольно распространенном технологическом стеке: Ubuntu для операционной системы, nginx для веб-сервера, MariaDB для сервера базы данных и PHP - в качестве основного языка программирования для всего серверного кода. Redis и Manticore используются соответственно для быстрого хранилища ключей и серверов полнотекстового поиска. Для серверной разработки мы используем PHPUnit для модульного тестирования, PHPStan для статического анализа кода и PHPBench для бенчмаркинга заданных функций.
Некоторые сайты, не требующие какой-либо более глубокой серверной логики, работают непосредственно на nginx (архив документов) или генерируются с помощью генераторов статических сайтов (Zola в случае этого сайта, mdbook в случае справочника).
Где находятся серверы museum-digital?
Наши серверы расположены в Германии. Центр исследований и повышения квалификации в области дигитализации земли Берлин digiS щедро спонсирует и обслуживает один из них. Остальные серверы арендуются в Strato.