Slide 1

Slide 1 text

Dr Frank Munz @frankmunz www.munzandmore.com/blog #DevoxxMA Serverless Architectures DOAG 2017

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

• 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

Slide 4

Slide 4 text

Content 1. Clouds 2. FaaS (AWS Lambda) 3. Serverless 4. Frameworks (Fn Project) 5. Conclusion #serverless @frankmunz

Slide 5

Slide 5 text

Clouds #serverless @frankmunz

Slide 6

Slide 6 text

API @frankmunz

Slide 7

Slide 7 text

Elasticity

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

Cloud Computing API Elasticity Pay per use Fully Programmable Data Center

Slide 10

Slide 10 text

PaaS IaaS Amazon EC2 Oracle CI AWS Beanstalk Oracle ACCS FaaS AWS Lambda Oracle TBD Automated elasticity. True pay per use. Container Service AWS ECS OCCS API? Elasticity? Pay per use?

Slide 11

Slide 11 text

AWS Lambda #serverless @frankmunz

Slide 12

Slide 12 text

FaaS: AWS Lambda • AWS announced Lambda in 2014 • Lambda is Function as a Service (FaaS) @frankmunz

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

Create Lambda S3 @frankmunz Vendor lock-in?

Slide 15

Slide 15 text

Lambda Tech Details I • Stateless, with 5 min max exec time • Start threads and processes • Events based, but no event bus visible • Retries + dead letter Q • You can use environment variables • Invocation times differ per language and per call @frankmunz

Slide 16

Slide 16 text

Lambda Tech Details II • No config for scaling • You pay for GB *s, metered in 100 ms • One event can trigger several funcs • Function executes at least once (-> idempotent f) • AWS Step Function: visual designer • No SLAs @frankmunz

Slide 17

Slide 17 text

Test Code 1 2 3 4

Slide 18

Slide 18 text

Example: REST Request

Slide 19

Slide 19 text

Example: Image Recognition Flow munz & more #19 Extract meta data AI based recognition Create thumbnail How to model flow?

Slide 20

Slide 20 text

λ Example: BaaS Define an Intent with Slots and Utterances speechlet

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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 $ 370 https://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

Slide 23

Slide 23 text

FaaS #serverless @frankmunz

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

AMIGO: Public Cloud Services Amazon 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 Language Support 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 on open source Fn Project? Link https://aws.amazon. com/lambda/ https://azure.microsoft.co m/en- us/services/functions/ https://openwhisk.apa che.org/ https://azure.microsoft.co m/en- us/services/functions/ https://cloud.oracle.com/home

Slide 26

Slide 26 text

Security “Try to attack something that only lives for few milli-seconds” (AWS) @frankmunz

Slide 27

Slide 27 text

Youtube: Gone in 60ms https://www.youtube.com/watch?v=YZ058hmLuv0 @frankmunz

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

Serverless #serverless @frankmunz

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

Frameworks #serverless @frankmunz

Slide 34

Slide 34 text

Serverless Frameworks dealing with … @frankmunz AWS Chalice Portability Complexity Standards

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

Fn Project • Jackson for JSON marshalling in Java • JAX-RS demo • Hot functions (30 seconds) • Fn PaaS service likely? J @frankmunz

Slide 38

Slide 38 text

Fn Flow Java 8 CompletableFutures API

Slide 39

Slide 39 text

Fancy a demo?

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

Conclusion #serverless @frankmunz

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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]

Slide 44

Slide 44 text

munzandmore.com/blog @frankmunz munzandmore.com/youtube