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