Компания Google представила стабильный релиз платформы Knative 1.0, предназначенной для создания инфраструктуры бессерверных вычислений, развёртываемой поверх системы контейнерной изоляции на базе платформы Kubernetes. Кроме Google в разработке Knative также принимают участие такие компании, как IBM, Red Hat, SAP и VMware. Выпуск Knative 1.0 ознаменовал стабилизацию API для разработки приложений, который отныне не будет меняться и сохранит обратную совместимость. Код проекта написан на языке Go и распространяется под лицензией Apache 2.0.
Платформа Knative запускает подготовленные контейнеры по мере необходимости (приложение не привязано к какому-то конкретному контейнеру), организует управление и обеспечивает масштабирование окружений, необходимых для выполнения функций и приложений. Платформа может быть развёрнута на своих мощностях без привязки к внешним облачным сервисам. Для запуска необходим только Kubernetes. Предоставляются средства для поддержки различных типовых фреймворков, включая Django, Ruby on Rails и Spring. Для управления работой платформы может использоваться интерфейс командной строки.
Платформа предоставляет два основных компонента:
Платформа Knative запускает подготовленные контейнеры по мере необходимости (приложение не привязано к какому-то конкретному контейнеру), организует управление и обеспечивает масштабирование окружений, необходимых для выполнения функций и приложений. Платформа может быть развёрнута на своих мощностях без привязки к внешним облачным сервисам. Для запуска необходим только Kubernetes. Предоставляются средства для поддержки различных типовых фреймворков, включая Django, Ruby on Rails и Spring. Для управления работой платформы может использоваться интерфейс командной строки.
Платформа предоставляет два основных компонента:
- Serving - развёртывание и управление приложениями и функциями в форме бессерверных контейнеров. Контейнеры выполняются в Kubernetes с автоматической настройкой сетевого взаимодействия, маршрутизацией, отслеживанием изменений (создание снапшотов размещаемого кода и настроек) и поддержанием требуемого уровня масштабирования (вплоть до уменьшение числа pod-ов до нуля при отсутствии активности). Разработчик сосредотачивает внимание только на логике, всем, что связано с выполнением занимается платформа. Для организации сетевого взаимодействия и маршрутизации запросов могут использоваться сетевые подсистемы Ambassador, Contour, Kourier, Gloo и Istio. Имеется поддержка HTTP/2, gRPC и WebSockets.
- Eventing - универсальная система подписки (прикрепления обработчиков), доставки и управления событиями. Позволяет создавать асинхронно работающие приложения, прикрепляя вычислительные ресурсы к потокам данных при помощи объектной модели и механизма обработки событий.