Небесный замок Петра Дюры Публичные и частные облака от одного и того же поставщика — это два разных продукта или одна и та же платформа, просто развернутая на разном оборудовании? На примере решения для X5 Retail Group я, Илья Болучевский, технический директор Частное облако Mail.ru , расскажу, в чем отличия и как устроен процесс внедрения облака вендора в корпоративную инфраструктуру.
Наше частное облако по сути состоит из готовых компонентов, которые мы используем в нашем первом продукте — публичном облаке: клиенты выбирают, что они хотят взять в свою инфраструктуру, а мы помогаем внедрить и эксплуатировать это решение.
Кажется, все просто: модульный подход, сборка из готовых компонентов, внедрение со специалистами.
Фактически частное облако никогда не может быть поставлено «из коробки»: оно требует настройки под корпоративные требования и интеграции с внутренними системами.
Это долгий и сложный путь, который предстоит пройти команде клиента вместе с нами.
X5 выбрала частное облако, одну из самых дорогих инфраструктур, чтобы утроить время вывода на рынок новых продуктов и получить доступ к новым технологиям, не нарушая корпоративные стандарты безопасности.Ниже рассказывается, как двум опытным командам MCS и X5 удалось в предельно сжатые сроки построить гибкую облачную платформу во внутреннем контуре заказчика, какие трудности и подводные камни нас ждали на этом пути и как это решение помогает компании достичь поставленных целей.
- Почему X5 Retail Group перешла в частное облако и каких результатов добилась?
- Почему так сложно развернуть частное облако?
- Какую инфраструктуру мы построили для X5 Retail Group?
- Ключевые этапы внедрения частного облака
- Подготовительные этапы внедрения частного облака
- Как развертывается частное облако
- Пользовательские улучшения PaaS
- Магазин приложений
- Интеграция с индивидуальной платформой
- Самое сложное: перепроектирование топологии сети
- Технологические ограничения, которые пришлось учитывать в процессе внедрения
- Полученные результаты
Почему Х5 перешла в частное облако и каких результатов добилась?
Компания столкнулась с необходимостью оперативно выделять ресурсы на внутренние проекты, а также запускать новые процессы: разработку микросервисов в новом формате, CI/CD-конвейеры на базе облака и управляемых сервисов, автоматизацию на уровне IaC. Также на старой инфраструктуре требовалось больше времени на регулирование количества ресурсов под задачи, плавное увеличение мощности по мере развития проектов и управление стоимостью инфраструктуры.При запуске внутреннего проекта на старте часто приходилось «перезакладывать» оборудование для будущего роста, что не всегда экономически оправдано.
Также необходимо было быстрее разворачивать тестовые среды под задачу, а затем сворачивать их, снижая потребление ресурсов.
Все это повлияло на время вывода ИТ-продуктов компании на рынок.
Для решения этих задач нам необходимо было вместе с командой X5 Retail Group быстро развернуть гибкую управляемую инфраструктуру, организовать внедрение, а затем частично взять на себя эксплуатацию продукта, возникающие в процессе настройки и интеграцию новых сервисов для удовлетворить требования клиента.
Результаты .
После внедрения облака KPI значительно улучшились: раньше ресурсы виртуализации выдавались внутренним заказчикам в течение нескольких дней, теперь — за минуты.
Командам компании стало удобнее запускать пилоты, среды разработки и воссоздавать их.
Компания также интегрировала с платформой собственную разработку, которая автоматизирует доступ к ресурсам для внутренних клиентов.
Благодаря этому внутренние клиенты — разработчики, тестировщики, менеджеры проектов — получили больше прав самостоятельно работать с сервисами.
Раньше с задачами шли в службу поддержки и там открывали заявку, которая перемещалась по очереди между несколькими командами.
Теперь все работает как Самообслуживание: автоматически, без ручного труда.
Внутренние заказчики могут выбрать услуги, посмотреть демо и рассчитать стоимость инфраструктуры проекта, что существенно ускоряет процесс согласования.
Кроме того, платформа контейнеризации стала более прибыльной за счет лицензионных особенностей решения: компания реализовала Kubernetes как сервис, построенный на технологии Open-Source. Он позволяет внутренним заказчикам получать полноценные кластеры с возможностями автомасштабирования, что помогает гибко управлять ресурсами.
Также для ряда задач в качестве платформы контейнеризации продолжают использоваться OpenShift и ванильный Kubernetes. Наше частное облако стало основой для дальнейшей автоматизации: действия на платформе можно совершать не только через UI, но и через API, что позволяет сделать уровень инфраструктуры абсолютно прозрачным и работать через любые приложения.
В результате внедрение частного облака позволило нашему клиенту ускорить вывод на рынок ИТ-продуктов компании.
Однако добиться этого было непросто: ниже я разберу, какие проблемы возникают в процессе и как мы их решаем.
Почему так сложно развернуть частное облако?
Создание частного облака в существующем ИТ-ландшафте похоже на стыковку «Союз-Аполлон»: нужно соединить две совершенно разные системы — существующую корпоративную и внешнюю, принесенную провайдером частного облака.Даже имея готовые компоненты, нельзя взять публичное облако и развернуть его во внутреннем контуре компании, ничего не меняя.
У каждой компании свои требования, требующие сложных настроек, интеграций и модификаций.
Например, в Mail.ru Cloud Solutions у нас есть готовый Кубернетес как услуга .
Для X5 Retail Group мы полностью переписали ее под другую топологию сети — не потому, что она чем-то плоха, а потому, что корпоративное частное облако работает по-другому.
Фактически публичное облако приходится каждый раз частично воссоздавать для каждого клиента.
По мере развития клиентской базы мы стали лучше работать с запросами клиентов.
Большинству нужны одни и те же доработки: интеграция с ADFS, настройка образов, в том числе для баз данных, собственные ролевые модели, интеграция SSO. Существуют уникальные требования, такие как модель RBAC для сетевых портов.
Теперь мы понимаем, какие запросы повторяются, и добавляем в платформу новые возможности.
Но не все запросы имеет смысл автоматизировать — то, что будет узкоспециализированным для существующих ITSM-процессов клиента, остается в обычном режиме.
Такая ручная настройка усложняет процесс внедрения.
Также есть улучшения публичного облака на основе работы с частным клиентом — например, RBAC перешёл из частного облака в наше публичное.
Еще одна сложность – взаимодействие команд. Нам нужно работать вместе: наша команда компетентна в своем продукте, Х5 — в своих системах.
Необходимо объединять компетенции и вести переговоры, чтобы добиться результата.
В X5 Retail Group работает квалифицированная команда, которая на равных участвовала в процессе интеграции и выстраивала рабочие процессы изнутри.
На уровне командного взаимодействия могут быть подводные камни.
Например, не следует путать виртуализацию и облачные платформы, но такая путаница возникает в компаниях, внедряющих частное облако.
Любая облачная платформа отличается тем, что имеет самообслуживание и пул ресурсов.
Некоторые инженеры пытаются работать с ним как с классической системой виртуализации, и не все принятые в этом случае подходы применимы к облаку.
Мы также используем платформу OpenStack с широкими возможностями настройки, а крупные предприятия часто привыкли к VMware и аналогичным решениям, а это означает, что сотрудники должны быть готовы администрировать платформу нового типа.
OpenStack администрируется через пользовательский интерфейс иначе, чем VMware: много командной строки, файлов конфигурации и параметров.
Иногда это встречает сопротивление со стороны компаний, которые годами использовали другие технологии.
Для решения этой проблемы у нас есть обучающий курс, а наши сотрудники постоянно находятся на связи с руководством клиента.
В случае с Х5 сложностей с взаимодействием команд не возникло, но нам пришлось реализовать массу технических доработок, чтобы привести инфраструктуру в соответствие с требованиями клиента.
Какую инфраструктуру мы построили для Х5?
X5 Retail Group развернула облачную инфраструктуру с единой консолью администрирования, маркетплейсом приложений и порталом самообслуживания для внутренних клиентов.У них есть доступ к сервисам платформы, которые были необходимы компании на момент внедрения, аналогично сервисам нашего публичного облака.
Компания получила наш Kubernetes как услугу и облачные базы данных, которых предыдущие платформы не предоставляли: раньше они запускались вручную в IaaS, на внутренней системе виртуализации.
Платформа включает в себя следующие наши услуги:
- инфраструктурные сервисы (IaaS) — виртуальные машины в различных конфигурациях, диски, балансировщики нагрузки, настройки межсетевого экрана;
- PaaS — кластеры Kubernetes как базовая платформа контейнеризации, набор баз данных PostgreSQL, Redis, MongoDB, MySQL, чтобы внутренние заказчики могли выбирать СУБД исходя из потребностей проекта/продукта.
Все сервисы адаптированы под требования информационной безопасности компании;
- отказоустойчивое хранилище на базе CEPH с тройной репликацией данных и интеграцией с СХД клиента;
- marketplace, который X5 использует для размещения приложений, необходимых внутренним клиентам.
Он необходим для мониторинга мощности, которую использует каждый проект, контроля соблюдения лимитов квот ресурсов и формирования финансовой отчетности для точной оценки затрат по каждому проекту.
Это также необходимо для финансового планирования на старте проекта: использование внутренней инфраструктуры не является бесплатным, расчет затрат на нее позволяет более точно оценить рентабельность проекта.
В таком виде решение можно адаптировать для других клиентов MCS. Еще у нас есть отдельный инструмент — маркетплейс, это витрина с SaaS-приложениями, которые можно использовать внутри платформы.
X5 использует его как витрину приложений для внутренних клиентов: там размещаются приложения для разработки и DevOps. Мы обучили команду компании упаковывать приложения с помощью Git. Теперь специалисты X5 Retail Group сами наполняют его приложениями, которые нужны внутренним клиентам.
По сути, они уходят в историю SaaS, используя платформу в качестве оркестратора и витрины, фокусируясь на спросе на услуги, добавляя то, что будет использоваться продуктовыми командами.
Внутренняя разработка X5, созданная инженерами компании, интегрирована с платформой и обеспечивает автоматизированный доступ к ресурсам для внутренних клиентов.
Благодаря ему и возможностям облака разработчики, тестировщики и менеджеры проектов получили больше прав самостоятельно работать с сервисами.
Раньше с задачами шли в службу поддержки и там открывали заявку, которая перемещалась по очереди между несколькими командами.
Теперь все работает как Самообслуживание: автоматически, без ручного труда.
Где-то процессы доступа были упразднены, а где-то согласование осталось, но было автоматизировано.
Внутренние заказчики могут выбрать услуги, посмотреть демо и рассчитать стоимость инфраструктуры проекта, что существенно ускоряет процесс согласования.
Чтобы получить готовое к эксплуатации частное облако, вам необходимо пройти как минимум 10 шагов.
Какие шаги необходимо пройти для внедрения частного облака?
На работу над проектом X5 Retail Group до его ввода в эксплуатацию у нас ушло около трёх месяцев: два месяца на установку и месяц на основные кастомные интеграции.Работа еще не закончена, делаем дальнейшие настройки.
Но остальные улучшения – это уже работа над действующей инфраструктурой.
Вот этапы процесса внедрения частного облака:
- Определение бизнес-целей — это первый шаг с нашей стороны: понять, что бизнесу нужно от облака; от этого зависят дальнейшие действия.
- Определяем ограничения — они могут быть основаны на технологиях, которые компания может использовать или нет, на информационной безопасности и на бюджете.
- Разрабатываем общую архитектуру решения — из каких компонентов оно будет состоять, какие сервисы будут использоваться.
- Выясняем специфику реализации услуг – сетевую архитектуру, необходимость обеспечения информационной безопасности.
- Мы работаем над интеграцией по архитектуре — интеграция состоит из двух частей: на стороне облака и на стороне целевой корпоративной системы.
Во многом это связано с образцами для подражания и правами пользователей.
- Составляем финансовую модель - биллинг, что и как рассчитывается, как это учитывать при планировании проектов.
- Устанавливаем и настраиваем оборудование — готовим инфраструктуру для облака.
В отличие от многих провайдеров, мы можем развернуть облако на оборудовании клиента, если оно соответствует параметрам.
Это позволяет повторно использовать оборудование, которое высвобождается после выхода из традиционной инфраструктуры.
- Внедряем кастомные модификации и разворачиваем решение — здесь, как правило, появляется все, что не было учтено на предыдущих этапах, вплоть до возврата и переделки архитектуры решения.
- Проходим приемочное тестирование (АТТ) решения и запускаем его в эксплуатацию.
- Мы совершенствуем его по мере использования.
Начнем с того, как мы вместе с Х5 готовили инфраструктуру для внедрения нашей облачной платформы.
Как мы с X5 готовились к внедрению частного облака
На предпродажной стадии мы либо получаем от клиента готовое техническое задание, либо выясняем его потребности, чтобы формализовать их в рамках технического задания.Выясняется, какая инфраструктура имеется, какое подходящее оборудование уже имеется из старой инфраструктуры, что необходимо дополнительно закупить или поставить.
Вместе с клиентом мы формируем инфраструктуру Best Practice. После этого все требования оформляются в рамках технического задания, из которого выписывается ЧТЗ – частное техническое задание, то есть то, как будет выглядеть реализация по техническому заданию.
Когда мы обо всем договорились и подписали договор, начинается этап предварительной подготовки инфраструктуры, который мы или клиент делаем согласно нашим требованиям.
В последнем случае мы тесно сотрудничаем с командой компании, как это было на проекте Х5. Инженеры X5 Retail Group подготовили оборудование, провели необходимую коммутацию, настроили сеть, создали структуры в AD, DNS, предустановили операционные системы для гипервизоров, выдали узлы развертывания, создали необходимые технические учетные записи, согласовали доступ, настроили интеграцию с ИБ.
системы и настроили платформу самообслуживания портала.
Команда инженеров X5 сработала очень быстро и создала среду, в которой наше решение могло работать.
Примерно за две недели они подготовили инфраструктуру к началу развертывания.
Теперь мы можем начать развертывание нашей платформы.
Как было развернуто частное облако
После того, как команда X5 подготовила инфраструктуру, к делу приступили наши инженеры.Процесс развертывания выглядит следующим образом:
- Сначала мы создаем узел развертывания — это узел, с которого устанавливается остальная часть облака и распределяются роли между всеми остальными серверами и серверами хранения.
- Далее начинается развертывание IaaS-части, позволяющей запускать виртуальные машины: она включает в себя управление, гипервизоры и подсистемы хранения.
- Поверх него разворачиваем PaaS: Kubernetes, базы данных, большие данные — в зависимости от требований клиента к техническому заданию некоторые сервисы могут не понадобиться.
В X5 мы развернули Kubernetes aaS и облачную СУБД.
Данная работа по развертыванию IaaS и PaaS заняла у нас 4–5 недель.
Однако, как правило, мы не можем развернуть наши готовые сервисы в том виде, в котором они используются, в публичном облаке.
Их необходимо модифицировать под нужды клиента, а это непростая задача.
Как мы настраиваем PaaS под требования клиентов
Процесс развертывания PaaS в X5 имел требования, связанные с информационной безопасностью.Также было необходимо, чтобы развернутый образ сразу контролировался.
Например, у нас есть готовый пакетный сервис баз данных, который мы можем просто поставить, но внутренний сервис БД, отвечающий за работу с базами данных, просит нас соблюдать корпоративные стандарты.
База данных должна быть автоматически зарегистрирована в Zabbix, организован доступ для инженеров компании, установлены на нее специальные версии и использованы внутренние репозитории.
В этом случае наша PaaS-команда полностью пересобирает исходные образы под требования — это нетривиальная работа.
Еще один яркий пример: PaaS при загрузке репозиториев использует наши сервисные сети, подключенные к Интернету.
В большинстве частных облаков нет Интернета, поэтому сервисы необходимо перепроектировать так, чтобы они имели доступ к внутренним репозиториям.
При этом необходимо поддерживать и обеспечивать актуальными версиями внутренний репозиторий.
Kubernetes как услуга может иметь разные требования со стороны клиентов.
Например, заранее зарегистрированный Docker Registry или устаревшая версия Kubernetes: в публичном облаке самая младшая версия — 16, можно взять 14, если компания ее использует. Для X5 мы серьезно переработали KaaS, что было связано с особенностями топологии сети частного облака.
Такие требования к настройке PaaS возникают почти всегда.
Когда клиент переносит сервис в частное облако, он может попросить добавить любые опции в соответствии с корпоративными требованиями.
И это не единственные улучшения нашей платформы: помимо улучшений PaaS требуются и другие пользовательские интеграции, которые необходимо реализовать.
Какие интеграции с пользовательской облачной платформой необходимы для локальной среды?
При реализации частного облака от нас требуется множество дополнительных настроек, таких как установка всех возможных панелей суперадминистратора, систем мониторинга и журналирования, настройка шаблонов мониторинга и другие.Я уже говорил, что требования корпоративных клиентов редко совпадают с коробочным решением.
На этом этапе мы проводим интеграции с существующими ITSM-процессами и технологиями компании: занесение виртуальных машин в DNS, интеграция с AD, кастомная пересборка образов для авторизации через свой AD, кастомная сборка образов для баз данных, интеграция с CMDB, хранилищем S3. , резервное копирование конфигурации нашему руководству.
Такие интеграции различаются для разных клиентов — это заказная работа, и в большинстве случаев ее невозможно автоматизировать.
В случае с X5 Retail Group также существовали такие системы, как AD, CMDB, DNS и так далее, все из которых необходимо было интегрировать.
Также был запрос по поводу биллинга: публичное облако рассчитано на мультитенантную модель, а частные облака спроектированы так, что за распоряжение облаком отвечает один отдел; нужны были специальные стандартные отчеты сразу по всем арендаторам, то есть проектам.
Из-за этого нам пришлось добавить часть биллинга, которая бы учитывала требования.
То же самое связано и с некоторыми лицензиями от сторонних вендоров: у нас биллинг заточен только на лицензии, Х5 использует свои типы лицензий, нам тоже пришлось переделывать эту логику.
Команда Х5 выполнила интеграцию на основе API-вызовов: на нашей интеграционной платформе осуществляется звонок в определенном формате, затем специалисты компании самостоятельно осуществляют обработку и внедрение звонка, что позволяет им более гибко использовать необходимые сервисы.
Эти пользовательские модификации стандартны и не слишком сложны, но в любом проекте возникают настоящие проблемы.
В X5 Retail Group таким вызовом для нас стал редизайн всей топологии сети, что частично затронуло PaaS.
Самое сложное: перепроектирование топологии сети
Для X5 Retail Group нам пришлось на лету переделывать всю сетевую топологию частного облака — это катастрофически сложная настройка.Сеть компании построена в корпоративном формате; архитектура такой сети не полностью совместима с установкой публичного облака.
Публичное облако использует топологию сети, которая позволяет использовать внутренние сети внутри проектов и публиковать информацию в Интернете через внешнюю сеть, используя плавающий IP (белые адреса).
В частном облаке сеть выглядит иначе: она плоская, разделена на сегменты, которых нет в публичном облаке, и архитектурно реализована иначе.
Любая виртуалка сразу попадает во Влан, нет плавающих IP и серых адресов, есть только блок плоских адресов.
Из-за такой топологии пришлось переделывать половину сервисов и половину фронта.
Исчезло понятие виртуального роутера, пришлось переделывать логику балансировщика как сервиса, исключать некоторые сервисы типа VPN и так далее.
То есть такая простая вещь, как переработка топологии сети, повлекла за собой переработку почти половины сервисов внутри облака.
В частном облаке, поскольку доступа в Интернет нет, указываем другие конечные точки и репозитории, содержащие всю необходимую информацию для запуска PaaS-сервисов внутри локальной сети клиента.
Мы поддерживаем это, храня всю информацию внутри частного облака; он не выходит за его периметр.
Самое большое изменение в нашем Kubernetes aaS также было связано с топологией сети.
По умолчанию мы создали его во внутренних сетях с балансировкой через наш балансировщик в публичном облаке MCS, имеющем доступ к внешней сети.
Нам пришлось переделать всю логику работы, поскольку Kubernetes нужно было создавать в плоской сети и работать с балансировщиком, расположенным в частной сети.
Эту настройку можно воспроизвести для других клиентов, мы можем работать с плоской топологией, которая обычно используется в частных облаках.
Помимо усовершенствований платформы, серьезной проблемой является соблюдение требований информационной безопасности.
Здесь нам тоже пришлось многое доработать и интегрировать в нашу платформу, а затем пройти проверку безопасности.
Как мы выполнили требования клиента по информационной безопасности
Частное облако в Х5 было выбрано отчасти из-за внутренних правил информационной безопасности.Для компании мы интегрировались с ArcSight. Это SIEM-система: информация о безопасности и управление событиями безопасности.
Все действия, происходящие в инфраструктуре, должны фиксироваться в ней.
Например, произошло изменение размера или удаление виртуальной машины — SIEM фиксирует, в какое время ВМ была удалена и каким пользователем.
Многие клиенты используют эту интеграцию с ArcSight. Некоторые используют другие SIEM-системы, но они есть у всех крупных компаний.
Еще мы настроили EFK и Zabbix — это базовые системы, мы их всегда устанавливаем, но в данном случае выкатили не наши стандартные, а специальные шаблоны, которые требовали наши коллеги.
Они охватывают более широкий спектр того, что необходимо регистрировать и отслеживать.
Также сотрудники службы безопасности Х5 провели несколько раундов пентестов нашей информационной системы — проверяли, как и какими обходными путями можно в нее проникнуть, какие версии программного обеспечения использовались, какие порты были открыты и так далее.
После этого весь доступ к двухфакторной аутентификации был обновлен.
В общем, после настройки начинается целый цикл проверок информационной безопасности, а также проверки по методике тестирования ПО, когда проверяются все случаи запуска.
Проверки PMI включают в себя тесты: высокой доступности (HA), тесты отказоустойчивости, стресс-тесты вывода конкретного узла или группы узлов, при которых все должно оставаться в рабочем состоянии.
ХА достаточно капризна, приходится долго его настраивать с учетом всех настроек.
Эти процессы заняли у нас много времени: месяц подготовки и проверок, затем доработки и устранение замечаний.
В результате через 2 месяца они смогли предложить X5 Retail Group решение, которое компания смогла запустить в эксплуатацию; некоторые улучшения все еще находятся в стадии доработки.
Заказные доработки сервисов и платформ — первая сложность, соблюдение требований ИБ — вторая, но есть и третья.
В процессе внедрения нам еще предстоит преодолеть технические ограничения, возникающие у клиента.
В случае с Х5 они были не критичны.
Технологические ограничения, которые пришлось учитывать в процессе внедрения
Технологические ограничения в проекте X5 Retail Group были разными; Расскажу о паре примеров.Например, есть ограничения, связанные с внутренней инфраструктурой.
Так, процесс авторизации в виртуальных машинах привел к переписыванию многих модулей, в том числе имен виртуальных машин, были установлены специальные мнемонические правила: обрезка имен для регистраций, необходимость указания имени проекта в составе имени и т.д. .
Также в инфраструктуре Х5 действуют ограничения на количество используемых сетей, поскольку частных сетей нет и создание любого сервиса приводит к созданию новых сетевых портов.
Сеть сильно загружена, адреса периодически заканчиваются, внутренняя команда вынуждена расширять сеть или очищать порты.
Такие некритические ограничения довольно легко преодолеть, но они требуют времени, опыта и командной работы.
Полученные результаты
После запуска проекта в эксплуатацию X5 Retail Group увеличила скорость вывода на рынок новых продуктов.Наша команда накопила бесценный опыт внедрения частного облака в коммерческую структуру предприятия и готовые решения, которые мы в дальнейшем можем использовать в инфраструктурах других клиентов.
Что еще почитать :
- Как реализована отказоустойчивая веб-архитектура в платформе Mail.ru Cloud Solutions .
- Как выбрать облачную систему хранения, чтобы получить максимальную производительность и оптимизировать затраты .
- Наш телеграм-канал об ИТ-бизнесе и цифровой трансформации .
-
Репортаж С Science Slam Digital От 7 Июля
19 Oct, 24 -
Вр - Выпуск №34
19 Oct, 24 -
Статистика Обращений Во Время Кризиса
19 Oct, 24 -
Непрерывная Доставка: Продолжение
19 Oct, 24