Как Mcs И X5 Построили Частное Облако На Предприятии Для Быстрого Получения Готовых Услуг



Как MCS и X5 построили частное облако на предприятии для быстрого получения готовых услуг

Небесный замок Петра Дюры Публичные и частные облака от одного и того же поставщика — это два разных продукта или одна и та же платформа, просто развернутая на разном оборудовании? На примере решения для X5 Retail Group я, Илья Болучевский, технический директор Частное облако Mail.ru , расскажу, в чем отличия и как устроен процесс внедрения облака вендора в корпоративную инфраструктуру.

Наше частное облако по сути состоит из готовых компонентов, которые мы используем в нашем первом продукте — публичном облаке: клиенты выбирают, что они хотят взять в свою инфраструктуру, а мы помогаем внедрить и эксплуатировать это решение.

Кажется, все просто: модульный подход, сборка из готовых компонентов, внедрение со специалистами.

Фактически частное облако никогда не может быть поставлено «из коробки»: оно требует настройки под корпоративные требования и интеграции с внутренними системами.

Это долгий и сложный путь, который предстоит пройти команде клиента вместе с нами.

X5 выбрала частное облако, одну из самых дорогих инфраструктур, чтобы утроить время вывода на рынок новых продуктов и получить доступ к новым технологиям, не нарушая корпоративные стандарты безопасности.

Ниже рассказывается, как двум опытным командам MCS и X5 удалось в предельно сжатые сроки построить гибкую облачную платформу во внутреннем контуре заказчика, какие трудности и подводные камни нас ждали на этом пути и как это решение помогает компании достичь поставленных целей.



Почему Х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 использует для размещения приложений, необходимых внутренним клиентам.

В нашем публичном облаке реализована биллинг потребляемых ресурсов/услуг по модели оплаты по мере использования на базе платформы вычислений в памяти Tarantool. Для Х5 в нее внесены изменения: в частном облаке это не биллинг провайдера, а система внутренней отчетности и планирования ресурсов.

Он необходим для мониторинга мощности, которую использует каждый проект, контроля соблюдения лимитов квот ресурсов и формирования финансовой отчетности для точной оценки затрат по каждому проекту.

Это также необходимо для финансового планирования на старте проекта: использование внутренней инфраструктуры не является бесплатным, расчет затрат на нее позволяет более точно оценить рентабельность проекта.

В таком виде решение можно адаптировать для других клиентов MCS. Еще у нас есть отдельный инструмент — маркетплейс, это витрина с SaaS-приложениями, которые можно использовать внутри платформы.

X5 использует его как витрину приложений для внутренних клиентов: там размещаются приложения для разработки и DevOps. Мы обучили команду компании упаковывать приложения с помощью Git. Теперь специалисты X5 Retail Group сами наполняют его приложениями, которые нужны внутренним клиентам.

По сути, они уходят в историю SaaS, используя платформу в качестве оркестратора и витрины, фокусируясь на спросе на услуги, добавляя то, что будет использоваться продуктовыми командами.

Внутренняя разработка X5, созданная инженерами компании, интегрирована с платформой и обеспечивает автоматизированный доступ к ресурсам для внутренних клиентов.

Благодаря ему и возможностям облака разработчики, тестировщики и менеджеры проектов получили больше прав самостоятельно работать с сервисами.

Раньше с задачами шли в службу поддержки и там открывали заявку, которая перемещалась по очереди между несколькими командами.

Теперь все работает как Самообслуживание: автоматически, без ручного труда.

Где-то процессы доступа были упразднены, а где-то согласование осталось, но было автоматизировано.

Внутренние заказчики могут выбрать услуги, посмотреть демо и рассчитать стоимость инфраструктуры проекта, что существенно ускоряет процесс согласования.

Чтобы получить готовое к эксплуатации частное облако, вам необходимо пройти как минимум 10 шагов.



Какие шаги необходимо пройти для внедрения частного облака?

На работу над проектом X5 Retail Group до его ввода в эксплуатацию у нас ушло около трёх месяцев: два месяца на установку и месяц на основные кастомные интеграции.

Работа еще не закончена, делаем дальнейшие настройки.

Но остальные улучшения – это уже работа над действующей инфраструктурой.

Вот этапы процесса внедрения частного облака:

  1. Определение бизнес-целей — это первый шаг с нашей стороны: понять, что бизнесу нужно от облака; от этого зависят дальнейшие действия.

  2. Определяем ограничения — они могут быть основаны на технологиях, которые компания может использовать или нет, на информационной безопасности и на бюджете.

  3. Разрабатываем общую архитектуру решения — из каких компонентов оно будет состоять, какие сервисы будут использоваться.

  4. Выясняем специфику реализации услуг – сетевую архитектуру, необходимость обеспечения информационной безопасности.

  5. Мы работаем над интеграцией по архитектуре — интеграция состоит из двух частей: на стороне облака и на стороне целевой корпоративной системы.

    Во многом это связано с образцами для подражания и правами пользователей.

  6. Составляем финансовую модель - биллинг, что и как рассчитывается, как это учитывать при планировании проектов.

  7. Устанавливаем и настраиваем оборудование — готовим инфраструктуру для облака.

    В отличие от многих провайдеров, мы можем развернуть облако на оборудовании клиента, если оно соответствует параметрам.

    Это позволяет повторно использовать оборудование, которое высвобождается после выхода из традиционной инфраструктуры.

  8. Внедряем кастомные модификации и разворачиваем решение — здесь, как правило, появляется все, что не было учтено на предыдущих этапах, вплоть до возврата и переделки архитектуры решения.

  9. Проходим приемочное тестирование (АТТ) решения и запускаем его в эксплуатацию.

  10. Мы совершенствуем его по мере использования.

Далее я расскажу о некоторых этапах более подробно.

Начнем с того, как мы вместе с Х5 готовили инфраструктуру для внедрения нашей облачной платформы.



Как мы с X5 готовились к внедрению частного облака

На предпродажной стадии мы либо получаем от клиента готовое техническое задание, либо выясняем его потребности, чтобы формализовать их в рамках технического задания.

Выясняется, какая инфраструктура имеется, какое подходящее оборудование уже имеется из старой инфраструктуры, что необходимо дополнительно закупить или поставить.

Вместе с клиентом мы формируем инфраструктуру Best Practice. После этого все требования оформляются в рамках технического задания, из которого выписывается ЧТЗ – частное техническое задание, то есть то, как будет выглядеть реализация по техническому заданию.

Когда мы обо всем договорились и подписали договор, начинается этап предварительной подготовки инфраструктуры, который мы или клиент делаем согласно нашим требованиям.

В последнем случае мы тесно сотрудничаем с командой компании, как это было на проекте Х5. Инженеры X5 Retail Group подготовили оборудование, провели необходимую коммутацию, настроили сеть, создали структуры в AD, DNS, предустановили операционные системы для гипервизоров, выдали узлы развертывания, создали необходимые технические учетные записи, согласовали доступ, настроили интеграцию с ИБ.

системы и настроили платформу самообслуживания портала.

Команда инженеров X5 сработала очень быстро и создала среду, в которой наше решение могло работать.

Примерно за две недели они подготовили инфраструктуру к началу развертывания.

Теперь мы можем начать развертывание нашей платформы.



Как было развернуто частное облако

После того, как команда X5 подготовила инфраструктуру, к делу приступили наши инженеры.

Процесс развертывания выглядит следующим образом:

  1. Сначала мы создаем узел развертывания — это узел, с которого устанавливается остальная часть облака и распределяются роли между всеми остальными серверами и серверами хранения.

  2. Далее начинается развертывание IaaS-части, позволяющей запускать виртуальные машины: она включает в себя управление, гипервизоры и подсистемы хранения.

  3. Поверх него разворачиваем 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 увеличила скорость вывода на рынок новых продуктов.

Наша команда накопила бесценный опыт внедрения частного облака в коммерческую структуру предприятия и готовые решения, которые мы в дальнейшем можем использовать в инфраструктурах других клиентов.

Что еще почитать :

  1. Как реализована отказоустойчивая веб-архитектура в платформе Mail.ru Cloud Solutions .

  2. Как выбрать облачную систему хранения, чтобы получить максимальную производительность и оптимизировать затраты .

  3. Наш телеграм-канал об ИТ-бизнесе и цифровой трансформации .

Теги: #it-инфраструктура #paas #Системное администрирование #облачные сервисы #архитектура #облачные решения vk #облачные решения vk #частное облако #облачные решения mail.ru #частное облако #облачная платформа #X5 Retail Group
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.