Развитие сложной ИТ-инфраструктуры китайской компании Huawei, насчитывающей более 180 тысяч сотрудников, привело к новым вызовам и требованиям, ответом на которые стало создание PaaS, основанной на Kubernetes и Docker. Внутреннее применение новой платформы не просто отлично зарекомендовало себя, но и продемонстрировало реальную заинтересованность извне — со стороны заказчиков Huawei. Так, используя Open Source-продукты и свой обширный enterprise-опыт, компания сумела закрыть внутренние потребности, предложить конкурентные услуги на рынке и помочь сообществу с разработкой важных проектов.
В ноябре 2015 года представители Huawei участвовали в конференции KubeCon 2015. К тому времени был готов первый production-релиз их облачной PaaS на базе Kubernetes (его выпустили в июле того же года), и свой визит в Huawei объясняли желанием пообщаться и «обменяться своими идеями» с сообществом Kubernetes. Со слов главного архитектора облачных платформ в Huawei (Ying Xiong), выбор K8s был обусловлен:
Что же это была за PaaS у Huawei? Её ранний анонс состоялся незадолго до этого — в сентябре 2015 года на Huawei Cloud Congress 2015 (HCC 2015), что проходил в Shanghai Expo Center. Тогда компания демонстрировала свои последние облачные разработки: FusionSphere 6.0, FusionInsight, FusionStage. Последняя — это и есть PaaS, упомянутая на KubeCon. Оона описывалась авторами как «легковесная и простая в использовании облачная платформа PaaS, предназначенная для разработчиков отраслевых приложений» и относящаяся к категории on-premises.
FusionStage в своём первом релизе представлялась платформой, техническая основа для которой была сформирована с:
Особенностями FusionStage PaaS назывались возможность её развёртывания в разных — т.е. публичных (включая AWS, Azure, Google Cloud и собственный Huawei Enterprise Cloud) и частных (bare metal, VMware, OpenStack и собственный дистрибутив FusionSphere) — окружениях, а также «ряд улучшений», включавших в себя управление мультикластерами и пайплайны для доставки приложений в контейнерах.
Иллюстрация роли и возможностей FusionStage от Huawei
На демонстрацию веб-интерфейса FusionStage можно посмотреть в этом 1,5-минутном видео (пример с масштабированием облачного приложения). На сегодняшний день у FusionStage заявляется поддержка до 10 тысяч узлов в кластере, а связанные с этой PaaS разработки компании можно найти в Git-репозиториях проекта.
Веб-интерфейс управления в FusionStage
На мероприятии LinuxCon North America, проходившем годом позже, в августе 2016-го, состоялся анонс открытой бета-версии нового детища Huawei — Cloud Container Engine (CCE), — первый коммерческий релиз которого появился в феврале 2017-го. CCE — это «высокопроизводительный и высоконадёжный сервис, предоставляющий компаниям возможность управления контейнеризированными приложениями». Он позволяет создавать кластеры Kubernetes в один клик, управлять всем жизненным циклом приложений, безболезненно масштабировать приложения (распределённые по различным зонам доступности), настраивать политики планирования для лучшей производительности, собирать образы на разных технологических стеках (включая Java, Python, Go, Node.js) и интегрироваться с различными IaaS-ресурсами.
При этом в Huawei особо отмечают, что поддерживают родные (upstream) версии Kubernetes и Docker, а также являются одним из ведущих контрибьюторов в кодовую базу этих Open Source-проектов. (В 2017 году Huawei входила в топ-5 компаний по внесению изменений в Kubernetes.)
Иллюстрация интеграции CCE с процессами CI/CD
Huawei CCE также входит в число первых сертифицированных (официально совместимых) дистрибутивов и платформ Kubernetes, представленных Cloud Native Computing Foundation (CNCF) в ноябре 2017 г.
На KubeCon 2017, что проходил в марте 2017 года, всё тот же Ying Xiong из Huawei резюмировал полученный в компании опыт работы с обслуживанием облачных (cloud native) приложений. В своём небольшом докладе автор рассказал о главных проблемах в имевшейся до недавнего времени инфраструктуре компании:
Поэтому в 2015 году в Huawei начали контейнеризацию приложений и постепенный переход на микросервисную архитектуру, что привело к появлению платформы (той самой FusionStage), которая теперь (по состоянию на начало 2017 года) обслуживает более 4 тысяч узлов и 20 тысяч контейнеров. При этом инженеры компании не отказались полностью от виртуальных машин, однако их количество удалось снизить примерно в 5 раз, а утилизация ресурсов на каждой ВМ выросла в несколько раз.
Согласно case study, опубликованному на сайте Kubernetes, сейчас около 30 % приложений, используемых внутренними подразделениями Huawei, переведены на PaaS на базе Kubernetes. Миграция позволила также сократить эксплуатационные расходы (в некоторых случаях — на 20—30 %). Не менее важным оказалось и то, что полученный внутри компании опыт внедрения PaaS оказался полезным и для рынка, что позволило Huawei предложить свой облачный сервис FusionStage.
Другое выступление Huawei на том же KubeCon 2017 — «Building and Running an Enterprise-grade Serverless Platform on Kubernetes» — пролило свет на ещё одну область применения Kubernetes в платформе компании — serverless. Бессерверные возможности, реализованные поверх FusionStage (а значит, что и собственно K8s), были представлены в виде дополнительной услуги под названием FunctionStage.
Растущее применение Kubernetes в ключевой production-инфраструктуре Huawei привело к тому, что в ноябре 2017 года сообщество K8s назначило компании место в Kubernetes Steering Committee. Таким образом, Huawei стала первой китайской компанией не только по количеству коммитов в кодовую базу проекта, но и среди членов его управляющего комитета.
Наконец, участие Huawei в жизни сообщества CNCF и Kubernetes подтверждается и другой деятельностью, такой как организация meetup'ов и написание статей.
2015: FusionStage PaaS
В ноябре 2015 года представители Huawei участвовали в конференции KubeCon 2015. К тому времени был готов первый production-релиз их облачной PaaS на базе Kubernetes (его выпустили в июле того же года), и свой визит в Huawei объясняли желанием пообщаться и «обменяться своими идеями» с сообществом Kubernetes. Со слов главного архитектора облачных платформ в Huawei (Ying Xiong), выбор K8s был обусловлен:
- Открытостью платформы (сами инженеры предпочитают Open Source и заказчики просят того же) и реализованными в ней абстракциями, которые помогали сопровождать приложения на протяжении их полного жизненного цикла;
- Наличием достаточно гибкой архитектуры для того, чтобы применять как единую платформу для приложений, запускаемых как в публичных окружениях, так и в закрытых;
- Поддержкой контейнеров Docker.
Что же это была за PaaS у Huawei? Её ранний анонс состоялся незадолго до этого — в сентябре 2015 года на Huawei Cloud Congress 2015 (HCC 2015), что проходил в Shanghai Expo Center. Тогда компания демонстрировала свои последние облачные разработки: FusionSphere 6.0, FusionInsight, FusionStage. Последняя — это и есть PaaS, упомянутая на KubeCon. Оона описывалась авторами как «легковесная и простая в использовании облачная платформа PaaS, предназначенная для разработчиков отраслевых приложений» и относящаяся к категории on-premises.
FusionStage в своём первом релизе представлялась платформой, техническая основа для которой была сформирована с:
- Сloud Foundry CLI;
- Diego runtime engine (тоже из Сloud Foundry);
- Kubernetes;
- Docker.
Особенностями FusionStage PaaS назывались возможность её развёртывания в разных — т.е. публичных (включая AWS, Azure, Google Cloud и собственный Huawei Enterprise Cloud) и частных (bare metal, VMware, OpenStack и собственный дистрибутив FusionSphere) — окружениях, а также «ряд улучшений», включавших в себя управление мультикластерами и пайплайны для доставки приложений в контейнерах.
Иллюстрация роли и возможностей FusionStage от Huawei
На демонстрацию веб-интерфейса FusionStage можно посмотреть в этом 1,5-минутном видео (пример с масштабированием облачного приложения). На сегодняшний день у FusionStage заявляется поддержка до 10 тысяч узлов в кластере, а связанные с этой PaaS разработки компании можно найти в Git-репозиториях проекта.
Веб-интерфейс управления в FusionStage
2016: Cloud Container Engine
На мероприятии LinuxCon North America, проходившем годом позже, в августе 2016-го, состоялся анонс открытой бета-версии нового детища Huawei — Cloud Container Engine (CCE), — первый коммерческий релиз которого появился в феврале 2017-го. CCE — это «высокопроизводительный и высоконадёжный сервис, предоставляющий компаниям возможность управления контейнеризированными приложениями». Он позволяет создавать кластеры Kubernetes в один клик, управлять всем жизненным циклом приложений, безболезненно масштабировать приложения (распределённые по различным зонам доступности), настраивать политики планирования для лучшей производительности, собирать образы на разных технологических стеках (включая Java, Python, Go, Node.js) и интегрироваться с различными IaaS-ресурсами.
При этом в Huawei особо отмечают, что поддерживают родные (upstream) версии Kubernetes и Docker, а также являются одним из ведущих контрибьюторов в кодовую базу этих Open Source-проектов. (В 2017 году Huawei входила в топ-5 компаний по внесению изменений в Kubernetes.)
Иллюстрация интеграции CCE с процессами CI/CD
Huawei CCE также входит в число первых сертифицированных (официально совместимых) дистрибутивов и платформ Kubernetes, представленных Cloud Native Computing Foundation (CNCF) в ноябре 2017 г.
2017: результаты, сообщество
На KubeCon 2017, что проходил в марте 2017 года, всё тот же Ying Xiong из Huawei резюмировал полученный в компании опыт работы с обслуживанием облачных (cloud native) приложений. В своём небольшом докладе автор рассказал о главных проблемах в имевшейся до недавнего времени инфраструктуре компании:
- Активный рост числа виртуальных машин (для понимания масштабов проблемы достаточно узнать, что, по состоянию на 2017 год, в 8 дата-центрах Huawei было запущено около 1 миллиона виртуальных машин);
- Малое использование ресурсов этими ВМ и сложность управления ими;
- Дороговизна поддержки приложений в окружениях со множеством языков.
Поэтому в 2015 году в Huawei начали контейнеризацию приложений и постепенный переход на микросервисную архитектуру, что привело к появлению платформы (той самой FusionStage), которая теперь (по состоянию на начало 2017 года) обслуживает более 4 тысяч узлов и 20 тысяч контейнеров. При этом инженеры компании не отказались полностью от виртуальных машин, однако их количество удалось снизить примерно в 5 раз, а утилизация ресурсов на каждой ВМ выросла в несколько раз.
Согласно case study, опубликованному на сайте Kubernetes, сейчас около 30 % приложений, используемых внутренними подразделениями Huawei, переведены на PaaS на базе Kubernetes. Миграция позволила также сократить эксплуатационные расходы (в некоторых случаях — на 20—30 %). Не менее важным оказалось и то, что полученный внутри компании опыт внедрения PaaS оказался полезным и для рынка, что позволило Huawei предложить свой облачный сервис FusionStage.
Другое выступление Huawei на том же KubeCon 2017 — «Building and Running an Enterprise-grade Serverless Platform on Kubernetes» — пролило свет на ещё одну область применения Kubernetes в платформе компании — serverless. Бессерверные возможности, реализованные поверх FusionStage (а значит, что и собственно K8s), были представлены в виде дополнительной услуги под названием FunctionStage.
Растущее применение Kubernetes в ключевой production-инфраструктуре Huawei привело к тому, что в ноябре 2017 года сообщество K8s назначило компании место в Kubernetes Steering Committee. Таким образом, Huawei стала первой китайской компанией не только по количеству коммитов в кодовую базу проекта, но и среди членов его управляющего комитета.
Наконец, участие Huawei в жизни сообщества CNCF и Kubernetes подтверждается и другой деятельностью, такой как организация meetup'ов и написание статей.
Другие статьи из цикла
- «Истории успеха Kubernetes в production. Часть 1: 4200 подов и TessMaster у eBay».
- «Истории успеха Kubernetes в production. Часть 2: Concur и SAP».
- «Истории успеха Kubernetes в production. Часть 3: GitHub».
- «Истории успеха Kubernetes в production. Часть 4: SoundCloud (авторы Prometheus)».
- «Истории успеха Kubernetes в production. Часть 5: цифровой банк Monzo».
- «Истории успеха Kubernetes в production. Часть 6: BlaBlaCar».
- «Истории успеха Kubernetes в production. Часть 7: BlackRock».
- «Истории успеха Kubernetes в production. Часть 9: ЦЕРН и 210 кластеров K8s».
- «Истории успеха Kubernetes в production. Часть 10: Reddit».