Google представив платформу безсерверних обчислень Knative 1.0

Компанія Google представила стабільний реліз платформи Knative 1.0, призначеної для створення інфраструктури безсерверних обчислень, що розгортається поверх системи контейнерної ізоляції на базі платформи Kubernetes. Крім Google у розробці Knative також беруть участь такі компанії, як IBM, Red Hat, SAP та VMware. Випуск Knative 1.0 ознаменував стабілізацію API для розробки додатків, що відтепер не змінюватиметься і збереже зворотну сумісність. Код проекту написаний мовою Go та поширюється під ліцензією Apache 2.0.

Пропонована Knative безсерверна модель розробки додатків (serverless) надає додатковий рівень абстракції для хмарних систем, що дозволяє виконувати функції як сервіси (FaaS, Functions as a service). Суть безсерверної моделі в тому, що розробник реалізує логіку на рівні окремих функцій, не дбаючи про створення та управління інфраструктурою для запуску додатків, і не прив'язуючись до конкретних серверних додатків та необхідних для їхньої роботи хмарних оточень.

Розробка ведеться без створення монолітних додатків на рівні підготовки набору невеликих окремих функцій, кожна з яких забезпечує обробку певної події та розрахована на відокремлену роботу без прив'язки до оточення (stateless, результат не залежить від минулого стану та вмісту ФС). Функції запускаються лише за необхідності і після обробки події можуть одночасно завершувати своєї роботи, тобто. на відміну від мікросервісів не потрібна постійна наявність запущених оточень, які споживають ресурси на холостому ході.

Платформа Knative сама запускає контейнери в міру необхідності, розміщує в них підготовлені функції, організує керування та забезпечує масштабування оточень, необхідних для виконання цих функцій. Платформу можна розгорнути на своїх потужностях без прив'язки до зовнішніх хмарних сервісів. Для запуску потрібно лише Kubernetes. Надаються засоби підтримки різних типових фреймворків, включаючи Django, Ruby on Rails і Spring. Для управління роботою платформи можна використовувати інтерфейс командної стоки.

Платформа надає два основні компоненти:

  • Serving для запуску безсерверних контейнерів у Kubernetes з автоматичним налаштуванням мережевої взаємодії, маршрутизацією, відстеженням змін (створення снапшотів коду, що розміщується, і налаштувань) і підтримкою необхідного рівня масштабування (аж до зменшення числа pod-ів до нуля за відсутності активності). Розробник зосереджує увагу лише на логіці, всім, що пов'язано з виконанням, займається платформа. Для організації мережевої взаємодії та маршрутизації запитів можуть використовуватись мережні підсистеми Ambassador, Contour, Kourier, Gloo та Istio. Є підтримка HTTP/2, gRPC та WebSockets.
  • Eventing - універсальна система підписки (прикріплення обробників), доставки та управління подіями. Дозволяє створювати асинхронно працюючі програми, прикріплюючи обчислювальні ресурси до потоків даних за допомогою об'єктної моделі та механізму обробки подій.

Джерело: opennet.ru

Додати коментар або відгук