serverless presentation from devoxx 2017 casablanca (aws lambda / faas / fn project)

41
Dr Frank Munz @frankmunz www.munzandmore.com /blog #DevoxxMA Serve rless Architectu s DOAG 2017

Upload: frank-munz

Post on 24-Jan-2018

67 views

Category:

Software


3 download

TRANSCRIPT

Dr Frank Munz

@frankmunzwww.munzandmore.com/blog

#DevoxxMA

ServerlessArchitectures

DOAG 2017

• Founded munz & more in 2007

• > 15 years Middleware, Cloud, and Distributed Computing

• Consulting and High-End Training

• Wrote two WebLogic and a Cloud book

Dr. Frank Munz

@frankmunz

Content1. Clouds2. FaaS (AWS Lambda)3. Serverless4. Frameworks (Fn Project)5. Conclusion

#serverless @frankmunz

Clouds

#serverless @frankmunz

API

@frankmunz

Elasticity

Pay Per Use

• 1 US cent/h (micro), geo-distribution included

• You own a massively parallel, distributed and highly

available supercomputer with linear costs:

1 instance for 100 hours $= 100 instances for 1h

@frankmunz

Cloud Computing

API Elasticity Pay per use

Fully Programmable Data Center

PaaS

IaaS Amazon EC2Oracle CI

AWS BeanstalkOracle ACCS

FaaS AWS LambdaOracle TBD

Automated elasticity.True pay per use.

Container Service AWS ECSOCCS

API?

Elasticity?

Pay per use?

AWS Lambda

#serverless @frankmunz

FaaS: AWS Lambda

• AWS announced Lambda in 2014

• Lambda is Function as a Service (FaaS)

@frankmunz

AWS Lambda

AWS SAM Local: test and locally run Lambda (Public Beta)

event: event passed to function

context: runtime context

callback: optional return

(or null)

@frankmunz

Create Lambda

S3

@frankmunz

Vendor lock-in?

Test Code1

2

34

Example: REST Request

Example: Image Recognition

Flow

munz & more #19

Extract meta data

AI basedrecognition

Createthumbnail

How to model

flow?

Pricing

Every started request is charged:

• First 1 million req/month are free, forever

+ 400,000 GB seconds of compute time

• Measured in increments of 100 msec

• $0.20 per 1 million req

+ $0.00001667 per GB second

Tip: Use AWS

Cloud Watch

alarms for billing!@frankmunz

Cost Savings

Expedia(2016):

– 2.3 billions calls

– 200k hours / month

– $ 550 a month

Postlight

– API GW, Lambda, Serverless

– Costs dropped 2 orders of magnitude down to $ 370https://www.youtube.com/watch?v=gT9x9LnU_rE

https://trackchanges.postlight.com/serving-39-million-requests-for-370-month-or-how-we-reduced-our-hosting-costs-by-two-orders-of-edc30a9a88cd

http://serverlesscalc.com/

@frankmunz

FaaS

#serverless @frankmunz

Function as a Service

• Automated elasticity

• True pay per invocation

• Ephemeral compute

Definition

Characteristics• Event based

• Reduced control plane (mem+ CPU + I/O)

• Uses container tech

AMIGO: Public Cloud ServicesAmazon Microsoft IBM Google Oracle

Name Lambda Azure Functions Open Whisk Cloud Functions tbd

Year 2014 2016 2016 2016 2016

Status prod prod prod beta announced

LanguageSupport

NodeJS 4.3.2, Java8,Python 2.7, .Net C#, native Linux

JS, PHP, C#, F#, Python, bash, PowerShell

NodeJS, Java,Phython,(Docker)

NodeJS(not Java)

Docker based ?

Remarks Bundle functions, OneDrive and Bot integration

Apache Incubator

Deploy from github or BitBucket, CLI

Based onopen source Fn Project?

Link https://aws.amazon.com/lambda/

https://azure.microsoft.com/en-us/services/functions/

https://openwhisk.apache.org/

https://azure.microsoft.com/en-us/services/functions/

https://cloud.oracle.com/home

Security

“Try to attack something that only lives for few milli-seconds”

(AWS)

@frankmunz

Youtube: Gone in 60ms

https://www.youtube.com/watch?v=YZ058hmLuv0@frankmunz

Microservices

Developing a single application as

• a suite of small services

• each running in its own process / owns it‘s data

• communicating with lightweight mechanisms

(M. Fowler / J. Lewis)

https://martinfowler.com/articles/microservices.html@frankmunz

FaaS = Microservice?

• FaaS fulfills M. Fowler’s microservices definition

• A real micro service consists of multiple functions

• FaaS vs. Docker / Kubernetes?

Benefits of FaaS- Serverless - Zero config auto scaling - True pay per use

-> higher abstraction

Limits of FaaS- Language choice- Resource limits- Vendor lock-in-> reduced flexibility

@frankmunz

Serverless

#serverless @frankmunz

Serverless

Mark Cavage, Java One 2017: “Reduce notion of all infrastructure”

Serverless

Example: AWS

SQS

1 Mio Req $0.40@frankmunz

Wasn’t that PaaS ?

Yes it‘s PaaS, but serverless requires…

• Never pay for idle

• Automated elasticity

• Reduced config settings

Frameworks

#serverless @frankmunz

Serverless Frameworks dealing with

@frankmunz

AWS Chalice

PortabilityComplexity Standards

FaaS OS Frameworks

Overlap in functionality

-> expect consolidation

Survival is about:

• Integration: K8s, Traefik, Zipkin,

Prometheus, Kafka etc.

• Adoption, adoption, adoption

• FaaS as PaaS implementation?https://github.com/faas-lane/FaaS-Lane/tree/master/candidates@frankmunz

Fn Project

• Apache 2, Open Source Java One 2017

• Fn Server (micro API GW), LB, Flow

• Function / Container duality

• Docker is only dependency -> polyglot

@frankmunz

Fn Project

• Jackson for JSON marshalling in Java

• JAX-RS demo

• Hot functions (30 seconds)

• Fn PaaS service likely?

@frankmunz

Fn Flow

Java 8 CompletableFutures API

Fancy a demo?

Outlook

• Oracle’s Cloud Native Container strategy

– Kubernetes

– Wercker

– Pay per invocation (?)

• Fn Project as PaaS and on premises

• Azure Container Instance: pay per invoke (today!)

@frankmunz

Conclusion

#serverless @frankmunz

TL;DR #serverless & #FaaS

in all major clouds / could compose

μ out of 𝛌 / PaaS ⊇ Serverless ⊇ FaaS / FaaS

= stateless / true pay per use / automated

scalability / event driven / integrates with

other CS / architect against vendor lock in /

cloud agnostic FaaS frameworks emerge / FaaS

frameworks consolidation ahead /

𝛌 only technically the new μ (AWS).

@frankmunz

3 Membership Tiers• Oracle ACE Director• Oracle ACE• Oracle ACE Associate

bit.ly/OracleACEProgram

500+ Technical Experts Helping Peers Globally

Connect:

Nominate yourself or someone you know: acenomination.oracle.com

@oracleace

Facebook.com/oracleaces

[email protected]

munzandmore.com/blog

@frankmunz

munzandmore.com/youtube