«Эффект домино», или Как мы обновляем софт облака в ЦОДе
Практика по поддержке и развитию облака в ЦОДе Linxdatacenter преподнесла нам интересный кейс. Достаточно рутинная операция по обновлению всего одного элемента облачной платформы привела к масштабному глубокому апгрейду.
Рассказываем, с чего все началось и как нам помогает «цифровой двойник» облака.
Нельзя просто взять и обновить vCloud Director
Основные компоненты облака Linxdatacenter — стэк технологий VMware, на котором реализована панель управления виртуальной инфраструктурой vCloud Director. Он развернут на базе компонентов Cisco и служебной инфраструктуре типа Windows Active Directory.
В какой-то момент в конце 2020 года мы столкнулись с проблемой: версия vCloud Director 9.5 начала понемногу «отставать» от специфики текущих задач, а руки до ее апгрейда до версии 10.1 или 10.2 не доходили.
Страшного в этом ничего не было, но в начале 2021 года прекратилась поддержка Flash в браузере.
Честно говоря, мы не ожидали, что Flash и разработчики браузеров поступят таким жестоким образом. То есть о прекращении поддержки слышали все и уже давно, но новость о том, что его физически будут удалять из операционных систем и полностью блокировать в браузерах с 12 января, стала очень неприятным сюрпризом.
Дело в том, что в vCloud Director реализован доступ через два портала. Первый — на Flash, он же являлся основным и, скажем так, изначальным, с очень широкой функциональностью и большим количеством возможностей.
HTML-портал начали развивать с версии 8.20 как раз в перспективе отказа от Flash, потихоньку добавляя в него новую функциональность. Версия vCloud Director 9.5, которая сейчас представлена на трех наших площадках, удовлетворяет большинству запросов клиентов по функциям, но с точки зрения администрирования стали появляться довольно существенные проблемы.
В качестве промежуточного решения удалось найти конфигурацию браузера, в которой доступы к Flash пока остаются. И с точки зрения управления мы продолжаем контролировать ситуацию, никаких проблем нет.
Однако для пользователей функциональность версии 9.5 не идеальна. Пользователи уже привыкли работать во Flash, и его отсутствие вызывает неудобства, они задают вопросы, «а вот раньше это было так, а как нам это сделать теперь?». В 10-х версиях функциональность ощутимо лучше и максимально приближена к Flash. Отсюда было принято решение о том, что обновление vCloud Director — это задача №1.
Тяжелое наследие
Осложнялась ситуация тем, что облачная платформа в нашем ЦОДе в Санкт-Петербурге и на партнерской площадке в Варшаве — это наше «наследие» от системного интегратора, который разворачивал ее еще в 2013 году. До 2017 года эта же компания полностью производила обслуживание и апгрейды, а далее мы нарастили достаточный объем собственной экспертизы, чтобы взять управление полностью в свои руки.
Уже предварительный анализ ситуации показал, что нельзя просто взять и обновиться с версии 9.5 до 10.2. Составление пошагового плана обновлений всех версий софта для разных элементов облака с матрицами совместимости заняло у ответственного за задачу архитектора более 2 недель.
Это вызвано сложной структурой зависимости версий ПО, логика которой требует постепенного и строго последовательного перехода к новым версиям с тем, чтобы сохранить бесперебойную работу облака в целом.
Необходимость невинного, казалось бы, апгрейда vCloud Director заставила нас запустить полное обновление платформы, начиная от Windows-серверов с Active Directory и заканчивая всеми дополнительными компонентами. Чтобы выполнить планируемое обновление до целевой версии в vCloud Director, потребуется обновить всю систему четыре раза: обновление платформы облака будет выполнено в три полноценных раунда или очереди.
Начнем мы со своего облака в Варшаве, затем последуют площадки в Петербурге и Москве. Плановый срок окончания этих работ — май 2021 года.
Но для начала потренируемся на «цифровом двойнике» облака.
Digital twin для облака
План работ только по одной из площадок просто колоссальный с учетом ресурса проектной команды из трех специалистов.
Это ограничение, а также сроки, количество промежуточных шагов и сложность инфраструктуры потребовали от нас проведения тщательного тестирования практической реализации проекта на виртуальном макете — цифровом двойнике (digital twin) облака в виртуальной лаборатории.
Цифровой двойник облака обеспечивает нам уверенность в качестве запускаемых изменений системы и достижении ожидаемых результатов. К тому же на таком двойнике очень удобно отрабатывать различные сценарии эксплуатации платформы, и в случае ошибки или сбоя у нас всегда будет возможность выполнить откат к снэпшоту виртуальной машины с исправлением допущенных ошибок. Это ускоряет процесс обновления и позволяет проводить его без потери в качестве работы системы в целом.
Все обновления предварительно будут выполнены на цифровом двойнике, и далее, при успешном протекании процессов постепенного перехода к новым версиям всех элементов платформы, будет скорректирован детальный план работы по реальной целевой инфраструктуре.
Цифровой двойник полностью повторяет инфраструктуру платформы вплоть до самых последних компонентов всех систем. Все изменения реальной инфраструктуры — настройки, конфигурации, обновления ПО — сначала отрабатываются на нем.
Мы смотрим, как все элементы складываются в единую картину, определяем риски, рассчитываем время, которое занимает тот или иной этап обновления, на основе чего создается детальный план работ.
Двойник выполнен за счет технологии вложенной виртуализации — Nested Virtualization. VMware позволяет поднимать гипервизоры внутри себя, и на этих гипервизорах также можно запускать виртуальные машины.
В рамках нашего варшавского облака выделены ресурсы под создание «двойника» и на них развернуты гипервизоры, виртуальные машины, сеть — мы «пересобрали» облако с нуля с соблюдением всех версий ОС, пакетов, ПО и архитектуры, которая соединяет их в единое решение.
Это не «Ctrl+C/Ctrl+V», то есть мы не просто скопировали существующую систему: воспроизведены только основные компоненты системы и логика их взаимодействия, вплоть до пропускной способности каналов связи, NGINX как reverse proxy и «конфиги» для регистрации трафика.
Двойник «ест» ресурсы площадки в объеме на $650 в месяц — например, мы платим VMware как поставщику услуг за потребленную «двойником» оперативную память, а всего на нем развернуто более 20 виртуальных машин.
Это существенные затраты, но зато безопасная обкатка сценария обновления шаг за шагом гарантирует нам 100%-ную защиту от сбоев и непредвиденных моментов при обновлении на реальной инфраструктуре. Возможные потери из-за сбоя в работе системы на порядки превышают траты на содержание «двойника».
Наши ожидания
По предварительным расчетам, ресурса системы после обновления хватит на то, чтобы платформа проработала на должном уровне без необходимости каких-либо изменений, не говоря уже о глобальной перестройке, как минимум, до конца 2021 года.
В рамках текущей подготовки к обновлению по большинству основных версий ПО ключевых систем показатель End-of-support датируется концом 2023 года. Также, по существенному количеству систем сроки прекращения поддержки версий ПО остаются пока что незаявленными.
То есть, общего запаса прочности должно хватить на 1–2 года, а если мы говорим про глобальное обновление, сравнимое с текущим, то мы закладываем сегодня фундамент на еще более длительный срок.
Жизненный цикл платформы облака предполагает необходимость всегда иметь актуальные версии ПО ключевых элементов системы.
Говоря в целом об этом направлении работы, можно отметить, что общая сложность и болезненность такой перестройки всегда будет зависеть от того, как сильно его запустить, перестав отслеживать совместимость версий, а также от того, насколько разнообразен «зоопарк» различных элементов, технологий, протоколов и ПО, на которых построено облако.
К чему здесь следует стремиться? К унификации: начатое глобальное обновление в итоге очень сильно упростит нам жизнь и улучшит надежность работы облака в целом.
Мы сможем полностью уйти от наследия интегратора, который всю эту инфраструктуру разворачивал. У нас не останется никаких белых пятен и потенциально слабых звеньев в цепочке создания ценности облака в виде его доступности, гибкости настроек, безотказности и других параметров, влияющих на SLA.
Как только на всех площадках все компоненты облака будут работать на единых версиях ПО, любые последующие апгрейды, расширения и интеграции станут вопросом грамотного управления технической составляющей, рутиной, а не глобальным административно-техническим проектом.
Цифровой двойник облака мы планируем использовать и дальше. Это удобный инструмент, который помогает сделать процесс обновления инфраструктуры более безопасным и быстрым.