rubix - serverless architecture

15
Serverless Architecture Pim Gaemers & Jan van Zoggel 7-12-2016

Upload: rubix-bv

Post on 16-Apr-2017

219 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Rubix - Serverless architecture

Serverless Architecture

Pim Gaemers & Jan van Zoggel

7-12-2016

Page 2: Rubix - Serverless architecture

Definitions

BaaS (Backend-as-a-Service) vs

FaaS (Function-as-a-Service)

"Abstracting the server away from the developer. Not removing the server itself" 

Page 3: Rubix - Serverless architecture

Evolution of runtimes

Page 4: Rubix - Serverless architecture

Evolution of runtimes

• Monolithic runtime• Multiple applications/services share a single runtime

• Containerization• A single application/service runs in its own runtime

(container)• Serverless

• Every request/message is handled in its own runtime

Page 5: Rubix - Serverless architecture

Scalability

Page 6: Rubix - Serverless architecture

Example architectures

- Request/Reply

Page 7: Rubix - Serverless architecture

Example architectures

- Message Driven 

Page 8: Rubix - Serverless architecture

Use cases

• Implementing services/API's• Implementing event driven applications• Log analysis functions•  … (stateless short running transactions)

Page 9: Rubix - Serverless architecture

Technical platforms

Amazon Lambdahttps://aws.amazon.com/lambda  

Google Functionshttps://cloud.google.com/functions 

Microsoft Azure Functions https://azure.microsoft.com/services/functions 

Oracle Functions(slides Thomas Kurian @ OOW 2016)

Page 10: Rubix - Serverless architecture

Amazon AWS Lambda

• First commercial offering for FaaS / serverless

• Tightly integrated in the AWS Cloud Offering• Amazon API Gateway

• API Gateway can forward requests to AWS Lambda applications

• Faas triggers include• Amazon DynamoDB table updates• Object modifications in AWS Buckets• Amazon Kinesis stream• Amazon IoT events

• Billing is for uptime – pay per use• Billing is metered in increments of 100 milliseconds

Page 11: Rubix - Serverless architecture

Amazon AWS Lambda

Currently the following technologies are supported:• NodeJS• Java• Python• C# (new)

Page 12: Rubix - Serverless architecture

Google functions

• Triggers include• HTTP triggers• Cloud pub/sub triggers*• Cloud storage triggers**• Direct triggers

Currently the following technologies are supported:• NodeJS

*Google Cloud Pub/Sub is a fully-managed real-time messaging service that allows you to send and receive messages between independent applications. 

**Cloud Functions can respond to Object Change Notifications emerging from Google Cloud Storage. These change notifications are triggered in response to object addition (create), update (modify), or deletion.

Page 13: Rubix - Serverless architecture

Azure functions

• Triggers include• Timer based triggers• Azure service triggers (record inserted in Azure db)• Microsoft SaaS triggers (e.g. file is uploaded to one Drive)• HTTP triggers• Streaming triggers• Cortana/chat bot triggers

• Currently the following technologies are supported:• NodeJS• C#• F#• Python• PHP

Page 14: Rubix - Serverless architecture

Challenges and advantages

• Challenges• No form of state (Session, object, etc.) can be stored/used in

the function. This includes in memory state!• Execution time is restricted, AWS Lambda restricts execution

time to 5 minutes. • Startup latency

• Advantages• "Infinite" scalability• Easier operational management• Greener computing• Reduced packaging/deployment complexity

Page 15: Rubix - Serverless architecture

Demo