Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
The Serverless Cloud Integration Pattern
Lars Trieloff
October 27, 2016
Programming
1
400
The Serverless Cloud Integration Pattern
Presented at ServerlessConf London 2016, with Dragos Dascalita Haut
Lars Trieloff
October 27, 2016
Tweet
Share
More Decks by Lars Trieloff
See All by Lars Trieloff
Putting the F in FaaS
trieloff
1
1.5k
Sustaining through change — learning from 20 years of AEM history
trieloff
2
450
Inside the Adobe Cloud Platform: Adobe I/O, Adobe Sensei & XDM
trieloff
0
140
Extending Adobe Experience Manager with Adobe I/O Events
trieloff
0
82
Other Decks in Programming
See All in Programming
GitHub Actions を導入した経緯
tamago3keran
1
420
One does not simply: migrating to Android 12 🤯
oleur
1
120
dotdotdot_in_predict_function
bk_18
1
170
開発速度を5倍早くするVSCodeの拡張機能を作った
purp1eeeee
2
120
How we run a Realtime Puzzle Fighting Game on AWS Serverless
falken
0
240
Custom Design Systems in Compose UI
rharter
5
510
Baseline Profilesでアプリのパフォーマンスを向上させる / Improve app performance with Baseline Profiles
numeroanddev
0
210
Maintaining Software Correctness
dlew
PRO
3
230
#JJUG_CCC 「サポート」は製品開発? - JDBCライブラリ屋さんが実践する攻めのテクニカルサポートとJavaエンジニアのキャリアについて -
cdataj
0
400
A Philosophy of Software Design 後半
yosuke_furukawa
PRO
8
2.5k
"What's new in Swift"の要約 / swift_5_7_summary
uhooi
1
130
IE Graduation Certificate
jxck
6
4.6k
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
319
19k
Docker and Python
trallard
27
1.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_i
23
15k
Thoughts on Productivity
jonyablonski
43
2.3k
Designing with Data
zakiwarfel
91
3.9k
Practical Orchestrator
shlominoach
178
8.6k
GraphQLとの向き合い方2022年版
quramy
16
8.2k
Large-scale JavaScript Application Architecture
addyosmani
499
110k
Faster Mobile Websites
deanohume
294
28k
Gamification - CAS2011
davidbonilla
75
3.9k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
172
8.4k
Debugging Ruby Performance
tmm1
65
10k
Transcript
The Serverless Cloud Integration Pattern
None
I want a film^H conference that starts with an earthquake^H
evacuation and then works up to a climax.
. ̴̴ Lars Trieloff ̴̴̴̴̴̴ Dragos Dascalita Haut . ̴
@trieloff ̴̴̴̴ @ria_thinker
None
3 Clouds
100+ Products
Many acquisitions
Diverse Technology Stack
None
Big Cloud Users
Behind some of the biggest brands
Question: how to make it all play together?
Question: how to make it play with the rest of
the world?
Answer: let’s build a cool website
None
Just kidding
Who is building integrations? Who is building apps with Adobe
APIs? Who is building experiences using Adobe Products?
Developers, Developers, Developers
What Developers Want
→ Write Code → Deploy Code → Manage Servers
→ Write Code → Deploy Code → Manage Servers →
Drink Beer
→ Write Code → Deploy Code → Manage Servers →
Drink Beer
Servers: can’t live with them, can’t live without them.
Here is our 4-Step plan to serverlessness
1. Put Servers behind Glass
None
APIs
API Gateway
→ Caching → Throttling → Authentication → Logging
From dumb proxy to smart gateway
→ Hide yo monoliths → Establish API practices → Provide
easy access
→ NGINX → OpenResty → Lua
!" https://github.com/adobe-apiplatform/apigateway
Establish API Best practices
Establish API Best practices
None
2. Contain your Applications
None
Containers
Ethos → Standardized Container OS → Standardized CI/CD pipeline →
Feature flags as a Service
3. Put Code on the Short Leash
None
Serverless Runtime
Never trust a computer you can't throw out a window.
— Steve Wozniak
Never trust code you can’t terminate after one second. —
Dragos Dascalita Haut
Serverless Integrations → WebHooks++ → Low Latency → Low Maintenance
Our needs → Untrusted Code → Extensibility + Context →
Cloud Provider Independence
None
Are you guys serious about the delivery date? — John
Pritchard, Director Engineering
OpenWhisk !" https://github.com/openwhisk/openwhisk
None
http://bit.ly/apachewhisk
4. Wait for the call
None
Event Gateway
Why Events? → Asynchronous Processing → Function Orchestration → Reliability
& Scalability
Demo Because everyone ♥ bots
┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐ │ │ │ │ │ │ │
│ │ │ │ │ │ Alexa ! │──────────▶│ API Gateway " │──────────▶│ OpenWhisk # │ │ │ │ │ │ │ │ │ │ │ │ │ └───────────────────┘ └───────────────────┘ └───────────────────┘
None
Training Alexa ┌─────────────────┐ ┌─────────────────┐ │ │ │ │ │ │
│ │ │ Intent │⾢─────────▶│ User Phrase │ │ │ │ │ │ │ │ │ └─────────────────┘ └─────────────────┘
Training Alexa How many page views this month? { "intents":
[ { "intent": "PageViews" } ] }
Training Alexa How many {metric name} this month? { "intents":
[ { "intent": “CustomView”, "slots": [ { "name":"MetricName", "type":"LIST_OF_METRICS" } ] } ] }
Writing the Function Copy the code !" http://bit.ly/dragosdemo Add the
function on the CLI wsk -i action create alexa alexa-demo.js
None
Why the gateway? Alexa Headers: SignatureCertChainUrl, Signature & … OpenWhisk
expects: Authorization
Signature !1 Authorization 1 not real magic
None
FIN (don’t forget to check out adobe.io)