On-Premise решение для миграции в инфраструктуру заказчика
О клиенте
Компания является поставщиком облачных услуг и разрабатывает более 80 IaaS-, PaaS-, ML-сервисов для бизнеса и государственных учреждений. Организациям в сфере логистики клиент предлагает облачные мощности для размещения и хранения данных о грузах, пользователях и поставщиках. Энергетическим компаниям помогает внедрить сервис для простой и удобной коммуникации с абонентами, а для заказчиков из сферы здравоохранения — разместить офисное ПО в георезервированном облаке с двумя дата-центрами. Поставщик входит в экосистему российского банка из Топ-5.
О продукте
Клиент развивает ML-платформу, которая предназначена для создания и развертывания моделей машинного обучения с помощью высокопроизводительной ИТ-инфраструктуры. Изначально система была размещена на серверах поставщика, но хранение данных на стороннем оборудовании не позволяло установить собственное приватное ПО. Такое публичное решение не вызывало доверия у потенциальных клиентов заказчика, в связи с чем, требовалось создать отчуждаемый ИТ-продукт.
Описание задачи
Для миграции из облака в инфраструктуру пользователя предстояло разместить весь программный код «внутри предприятия». Требовалось спроектировать новую архитектуру инсталляции программного продукта и внедрить инструменты DevOps, которые помогут более эффективно управлять процессами разработки.
Из основных задач выделили следующие:
- Переработать существующую архитектуру: обеспечить соответствие новым требованиям бизнеса, независимость от поставщиков и улучшенную производительность.
- Разработать новую логику развертывания продукта: повысить безопасность, предоставить полный контроль над инфраструктурой и возможность быстро реагировать на изменения в компании.
Реализация
DevOps-инженеры RedLab приняли решение использовать метод On-Premise. Подход позволяет устанавливать и обслуживать ПО на собственных серверах, самостоятельно настраивать систему и быть независимым от инфраструктуры вендора и интернет-провайдера. Также On-Premise обеспечивает необходимый уровень безопасности, поскольку компания имеет полный контроль над ИТ-продуктом.
Специалисты реализовали следующие задачи:
- Организовали процесс инсталляции «с нуля» двух кластеров Kubernetes. Переписали 2000 манифестов под Kustomize на менеджер пакетов Helm, который позволил автоматизировать процессы установки, обновления и управления системой.
- Построили процесс в GitLab CI. Для этого написали Ansible роли, скрипты на Bash и Python, собрали сервисные Docker образы. Технологии обеспечили интеграцию с хранилищем кода, что сделало процесс сборки и развертывания кода удобнее и проще.
- Перенесли конфигурацию приложений в Vault, а также использовали интеграцию с Vault для быстрой, безопасной и масштабируемой доставки ключей API, логинов и паролей и другой чувствительной информации.
- Весь код IaC покрыли инфраструктурными тестами, что позволило выявлять потенциальные ошибки до их возникновения в реальной среде.
Результат
Новая логика ИТ-инфраструктуры разработана с учетом особенностей зависимостей и обмена конфигурациями. Благодаря новому On-premise решению провайдер получил инсталлятор отчуждаемого продукта, улучшил меры безопасности и существенно ускорил процесс развертывания продукта — с 2 месяцев до 2 часов.