Универсальное решение для развертывания инфраструктуры без облаков и интернета
К нам обратились с простой задачей, а в итоге мы построили гибкую, автономную инфраструктуру, которая одинаково эффективно работает как в облаке, так и на режимных объектах без интернета. Рассказываем, как с помощью GitOps и open source-инструментов мы автоматизировали доставку сложного ПО и упростили жизнь клиентам Histoscan.
Histoscan разрабатывает высокотехнологичный продукт для агрегации и просмотра медицинских снимков высокого разрешения. Компания производит программное обеспечение для патоморфологов и патологоанатомических отделений. Решения активно используется в здравоохранении, включая лаборатории с особыми требованиями к безопасности.
В конце 2024 года команда Histoscan обратилась в Evrone с задачей развертывания демонстрационного стенда на площадке их потенциального клиента. Необходимо было подготовить инфраструктуру без доступа к интернету, установить Kubernetes и развернуть сложный продукт, состоящий из нескольких микросервисов и баз данных. В дальнейшем задача масштабировалась — нужно было унифицировать процесс доставки ПО и настройки инфраструктуры у клиентов. Основные вызовы заключались в:
- разнообразии оборудования и операционных систем у конечных клиентов;
- необходимости работы в полностью изолированных средах;
- стремлении Histoscan автоматизировать процесс и сократить издержки на настройку каждого стенда вручную.
У клиента уже было некое решение, но оно не было никак описано, и почти никто не понимал, как оно работает. Поэтому первой нашей задачей стал аудит и трансформация существующего подхода для стабильной работы и дальнейшего обслуживания. Далее мы предложили архитектуру, в которой даже в условиях airgapped-инфраструктуры (полного отсутствия интернет-доступа) процесс развертывания происходит максимально автоматизировано и стабильно.
Kubernetes в оффлайн-среде
В качестве базовой ОС для поднятия кластеров мы выбрали Talos — специализированный дистрибутив, который предназначен для автоматической раскатки Kubernetes на виртуальные машины. Мы разработали роли, позволяющие быстро создавать ВМ на базе KVM (Kernel-based Virtual Machine), управляемого через libvirt — универсальный интерфейс, поддерживающий множество гипервизоров. Это позволило нам отказаться от менее гибких решений вроде Proxmox, и завести всё под единую библиотеку libvirt.
Особое внимание уделили унификации окружений: теперь вне зависимости от того, есть интернет-доступ или нет, установка проходит одинаково. В случае с изолированной инфраструктурой все происходит также, но требуется небольшая подготовка, а локальный Docker registry обеспечивает автономную работу.
GitOps и декларативное управление
Мы внедрили GitOps-подход, позволяющий управлять всей инфраструктурой через YAML-манифесты. Это обеспечило прозрачность, воспроизводимость и быструю настройку как в on-premise, так и в облачных окружениях. Конфигурация всех компонентов теперь задается идентично, что существенно ускоряет развертывание новых стендов.
У Evrone большая экспертиза в Kubernetes и мы часто используем GitOps для решения задач наших клиентов. Подробный рассказ о том, что это и чем отличается от привычного DevOps, можно посмотреть на нашем YouTube-канале. Наш технический директор Александр Кириллов регулярно выступает на конференциях, где рассказывает о кейсах и полезных лайфхаках работы с окружениями.
Управление базами данных
Для управления PostgreSQL мы использовали CloudNativePG — оператор, позволяющий декларативно управлять как одиночными инстансами, так и кластерными конфигурациями с мастер-слейв репликацией. Решение базируется на Kubernetes и позволяет создавать резервные копии, отслеживать консистентность данных и восстанавливать инфраструктуру при сбоях без необходимости постоянного присутствия инженеров на месте.
География, масштабируемость и сложные кейсы
На текущем этапе мы поддерживаем десять кластеров в разных точках, включая как bare-metal инфраструктуру, так и облачные решения. Первый облачный кластер появился совсем недавно. Мы значительно прокачали экспертизу в области настройки сложных сетапов без использования managed-решений, отработали кейсы развертывания локальных хранилищ и настройки сетей между кластерами с помощью Talos.
Результаты и текущее состояние проекта
Проект Histoscan — пример того, как можно создать единый подход к развертыванию инфраструктуры, который одинаково эффективно работает как в условиях полной изоляции, так и в облачной среде. Мы создали удобный пайплайн, где все сложности скрыты под капотом, а для клиента всё выглядит как «одна кнопка».
Мы продолжаем работу над проектом и развиваем инструменты, чтобы сделать доставку медицинского ПО еще быстрее, стабильнее и удобнее.
Если вы столкнулись с необходимостью развертывания сложной инфраструктуры в условиях ограниченного доступа к интернету или хотите автоматизировать доставку ПО клиентам с разной IT-средой — команда Evrone поможет найти надежное, масштабируемое решение. Мы работаем с bare-metal, виртуальными машинами и облаками, создавая универсальные пайплайны под любые задачи. Свяжитесь с нами, чтобы обсудить ваш кейс и построить инфраструктуру, которая работает стабильно даже без интернета.