Serverless приложения быстрее и проще вместе с OpenShift
Red Hat OpenShift Serverless представляет собой набор управляемых событиями Kubernetes-ориентированных компонентов для микросервисов, контейнеров и реализаций Function-as-a-Service (FaaS).
Это решение «из коробки» содержит средства безопасности и маршрутизации трафика и объединяет в себе Red Hat Operators, Knative и Red Hat OpenShift для запуска stateless- и serverless-нагрузок на платформе OpenShift в частных, публичных, гибридных и мультиоблачных средах.
OpenShift Serverless позволяет разработчикам целиком и полностью сосредоточиться на создании приложений нового поколения, предлагая широкий выбор языков программирования, фреймворков, сред разработки и других инструментов для создания и развертывания прорывных бизнес-продуктов.
Ключевые особенности Red Hat OpenShift Serverless:
- Широкий выбор языков программирования и runtime-компонентов для serverless-приложений. Вы можете выбирать именно тот набор инструментов, который нужен именно вам.
- Автоматическое горизонтальное масштабирование в зависимости от интенсивности запросов или по наступлению событий для эффективного управления ресурсами на основе реальных, а не умозрительных потребностей
- Полная интеграция с OpenShift Pipelines, Kubernetes-ориентированной системой непрерывной сборки и доставки (CI/CD), на основе Tekton
- Базис в виде Red Hat Operator, позволяющий администраторам безопасно управлять работающими инстансами и обновлять их, а также организующий жизненный цикл приложений по типу облачных сервисов
- Постоянное отслеживание новых community-релизов, включая Knative 0.13 Serving, Eventing и kn (официального CLI для Knative), – как и для всех остальных продуктов Red Hat, это означает тщательное тестирование и проверку на различных платформах и конфигурациях OpenShift
Кроме того, Red Hat тесно взаимодействует по Serverless-технологиям с рядом партнеров, а также с Microsoft по вопросам Azure Functions и KEDA (подробнее см. здесь). В частности, сертифицированный OpenShift-оператор уже есть у TriggerMesh, а недавно мы стали сотрудничать Serverless.com, чтобы Serverless Framework мог работать с OpenShift Serverless и Knative. Эти партнерские отношения можно рассматривать как признак зрелости serverless и начала формирования отраслевой экосистемы.
Если вы ранее установили предварительную версию Red Hat OpenShift Serverless, ее можно обновить до общедоступной GA-версии (general availability). При этом для версии Technology Preview нужно будет переконфигурировать OLM Subscription Update Channel, как показано на Рис. 1.
Рис. 1. Обновление канала подписки.
Канал подписки надо обновить так, чтобы он соответствовал OpenShift Container Platform версии либо 4.4, либо 4.3.
Knative Services – обслуживание по высшему классу
OpenShift 4.4 сильно упрощает развертывание приложений с функционалом OpenShift Serverless, позволяя без лишних усилий развертывать Knative Services прямо из Developer-режима веб-консоли OpenShift.
При добавлении нового приложения в проект достаточно указать для него тип ресурсов Knative Service, тем самым мгновенно активируя функционал OpenShift Serverless и включая масштабирования до нуля в режиме ожидания, как показано на Рис. 2.
Рис. 2. Выбор Knative Service в качестве типа ресурсов.
Простая установка с использованием Kourier
Как мы уже писали в анонсе версии OpenShift Serverless 1.5.0 Tech Preview, использование Kourier позволило резко сократить список требований при установке Serverless на OpenShift, а в GA-версии этих требований стало еще меньше. Все это снижает расход ресурсов, ускоряет холодный запуск приложений, а также устраняется влияние обычных, не serverless нагрузок, работающих в том же пространстве имен.
В целом эти улучшения, а также доработки в OpenShift 4.3.5 ускоряют создание приложений из предварительно собранного контейнера на 40-50% в зависимости от размера образа.
Как все происходит без использования Kourier, можно увидеть на Рис.3:
Рис. 3. Время создания приложений в случаях, когда Kourier не используется.
Как все происходит, когда применяется Kourier, можно увидеть на Рис.4:
Рис. 4. Время создания приложений при использовании Kourier.
TLS/SSL в автоматическом режиме
OpenShift Serverless теперь может автоматически создавать и развертывать TLS/SSL для маршрута (OpenShift Route) вашего Knative Service, чтобы вы не отвлекались на реализацию и сопровождение этих функций при работе над приложением. Иначе говоря, Serverless избавляет разработчика от сложностей, связанных с TSL, сохраняя при этом высокий уровень безопасности, который все привыкли ожидать от Red Hat OpenShift.
Интерфейс командной строки OpenShift Serverless
В OpenShift Serverless он называется kn и доступен прямо в консоли OpenShift на странице Command Line Tools, как показано на Рис. 5:
Рис. 5. Страница загрузки интерфейса командной строки OpenShift Serverless.
При загрузке с этой страницы вы получаете версию kn для MacOS, Windows или Linux, которая проверена Red Hat и гарантированно не содержит вредоносного ПО.
На Рис. 6 показано, как в kn можно всего одной командой развернуть сервис, чтобы за считанные секунды создать инстанс приложения на платформе OpenShift с доступом по URL:
Рис. 6. Использование интерфейса командной строки kn.
Этот инструмент позволяет полноценно управлять ресурсами Serverless Serving и Eventing без того, чтобы смотреть или править какие-либо конфигурации YAML.
Улучшенное представление Topology в Developer-режиме консоли
Теперь посмотрим, как доработанное представление Topology облегчает управление Knative Services.
Knative Service–центрированная визуализация
Knative Services на странице представления Topology отображаются в виде прямоугольника, содержащего все ревизии, как показано на Рис.7:
Рис. 7. Knative Services на странице представления Topology.
Здесь можно мгновенно посмотреть текущие проценты распределения трафика Knative Service, а сгруппировать Knative Services в рамках группы приложений, чтобы легко визуально контролировать происходящее внутри выбранной группы.
Свертывание списков OpenShift Knative Services
Продолжая тему группировки, надо сказать, что в OpenShift 4.4 можно сворачивать Knative Services внутри группы приложений для более удобного просмотра и управление сервисами, когда в проекте развертываются более сложные приложения.
Knative Service в деталях
В OpenShift 4.4 также улучшена боковая панель для Knative Services. На ней появилась вкладка Resources, где отображаются компоненты сервиса, такие как Pods, Revisions и Routes. Эти компоненты также обеспечивают быстрый и простой переход к логам отдельных pod’ов.
Представление Topology также показывает проценты распределения трафика и даже позволяет быстро изменить конфигурацию. Таким образом, вы можете быстро узнать распределение трафика для выбранной Knative Service в реальном времени по числу pod’ов, работающих для заданной ревизии, как показано на Рис. 8.
Рис. 8. Распределение трафика Knative Service.
Более глубокий взгляд на Serverless Revisions
Также представление Topology теперь позволяет гораздо глубже взглянуть внутрь выбранной ревизии, например, быстро увидеть все ее pod’ы и, если нужно, просмотреть их журналы. Кроме того, в этом представлении можно легко получить доступ к деплойментам и конфигурациям ревизии, а также к подмаршруту, который указывает непосредственно на эту ревизию, как показано на Рис. 9:
Рис. 9. Ресурсы, ассоциированные с ревизиями.
Надеемся, что описанные выше новшества пригодятся вам при создании и управлении serverless-приложениями, а следующих версиях появится еще больше полезных функции для разработчиков, например, возможностью создавать источники событий и другие.
Заинтересовались?
Попробуйте OpenShift!
Нам важна обратная связь
Расскажите, что вы думаете о serverless. Присоединяйтесь к нашей Google-группе OpenShift Developer Experience для участия в обсуждениях и семинарах Office Hours, чтобы сотрудничать с нами и оставлять свои отзывы и предложения.
Дополнительные сведения
Узнайте больше о разработке приложений OpenShift с помощью следующих ресурсов Red Hat: