Platform (PaaS / aPaaS) Container Platform (CaaS) Function Platform (FaaS) â–ª Container runtime and orchestration are provided by the platform â–ª High level of application and its environment customization â–ª Higher development and maintenance efforts â–ª Gardener and Kubernetes â–ª Application runtime is provided by the platform â–ª High level of application customization â–ª Limited capabilities of application runtime customization â–ª Neo, Cloud Foundry, ABAP environment â–ª Serverless runtime is provided by the platform â–ª Concentrate attention on specific function, not its execution context â–ª Limited capabilities of application runtime or application customization â–ª Lower development and maintenance efforts â–ª Functions service NEO
/ Project Kyma 5 2018 â–ª Based on Open Service Broker API â–ª Service catalog advertisement and service discovery â–ª Service lifecycle management Service Catalog Service Broker Event Bus â–ª Catalog of integrated and reusable services â–ª Publish/subscribe messaging pattern â–ª Based on NATS streaming server Serverless / Function â–ª Function as a Service cloud computing model â–ª Uses Node.js application runtime â–ª Serverless implementation is based on Kubeless Application Connector â–ª Connection with external solutions Service Mesh â–ª Service to service communication
Kubeless | serverless framework Express | web framework Prometheus | metering Morgan | HTTP logging Monitoring and logging middleware and routes Function route Function | function handler module
integration architecture ▪ Function is Web API ▪ HTTP trigger type ▪ Can be exposed as managed API ▪ Can be used in conjunction with API Management service ▪ Relevant for real-time API based integrations – lightweight managed API provisioning ▪ Function is Event Handler ▪ Subscription techniques: o Pull based model (queue subscription): using function’s event trigger type o Push based model (webhook subscription): using webhook (HTTP callback / event notification callback) and function’s HTTP trigger type ▪ Can be used in conjunction with Enterprise Messaging service and Open Connectors service. ▪ Relevant for event based integrations – event subscription, consumption and reaction; event stream processing
not composite function logic â–ªRequirement for low start up latency â–ªNo requirements for specific application packaging and deployment â–ªNo requirements for advanced or specific runtime tuning â–ªStateless architecture
▪Requirement for complex computation logic with high resource utilization (such as CPU and memory) ▪Requirement for fine tuning and optimization of application environment ▪Requirement for advanced tooling for development (such as debugger, profiler) and operational monitoring ▪Requirement for customization of application lifecycle management – primarily, start up (initialization) and shut down ▪Requirement for customization of application controlled resources lifecycle management – primarily, provisioning (allocation), pooling, and deprovisioning (disposal) of utilized resources
handler – Node.js module name Function handler – Node.js function name Argument ‘event’ Source of the event – such as event ID, time, type, data, and access to HTTP request/response of the function Argument ‘context’ General information about the function – such as function name, runtime, timeout, memory limit Return value String that is to be returned to the caller in HTTP response body
The function is invoked by HTTP request • Authentication method is not configurable in the trigger – has to be implemented in the function Event trigger • The function is invoked by the event received from Enterprise Messaging service Timer trigger • Schedule definition using cron expression • The function is invoked by HTTP GET request