Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
State of The Function DevOps London
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Martin Beeby
May 31, 2018
Technology
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
State of The Function DevOps London
Martin Beeby
May 31, 2018
More Decks by Martin Beeby
See All by Martin Beeby
PowerShell and AWS
thebeebs
0
55
Notingham IoT
thebeebs
0
190
Guardium Emergency Response
thebeebs
0
230
My View of Blockchain
thebeebs
0
150
A Developers View of Blockchain
thebeebs
0
200
State of The Function .Net Cambridge
thebeebs
0
230
A Developer Primer on Blockchain
thebeebs
1
170
Tinkering To Production
thebeebs
0
76
Building Web in a Container World
thebeebs
0
190
Other Decks in Technology
See All in Technology
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
4
5.1k
実践! SRE × AI - ABEMA における AIOps -
tetsuya28
7
1.9k
Deep Data Security 機能解説
oracle4engineer
PRO
2
730
[AWS 秋のクラウドオペレーション祭り 2026]AWS DevOps Agentで変わるリリースと運用対応 ~リリース管理機能と Directed actions のご紹介~
furuton
4
1.1k
Kiro Crewをはじめよう
kizawa2020
1
100
OR学会2026年秋期大会_機械学習と数理最適化の融合による、配合レシピ最適化システム開発事例
brainpadpr
0
110
UniFi(ユニファイ)AIカメラの現場活用
ludicmind
1
300
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
110
ログラスのマルチプロダクトを 支える認証基盤 〜テナントごとに異なる統制とどう向き合うか〜
dada4386
3
410
組み立てて楽しむ AWS Blocks 入門
kmiya84377
0
220
Claude Code本は、どのように執筆チームで書かれたか
oikon48
1
340
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
3
1.1k
Featured
See All Featured
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
300
Practical Orchestrator
shlominoach
192
12k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
510
For a Future-Friendly Web
brad_frost
184
10k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Navigating Team Friction
lara
192
16k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.2k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
560
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
520
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
580
Leo the Paperboy
mayatellez
10
2.4k
Transcript
Martin Beeby - @thebeebs THE FUNCTION THE STATE OF
Martin Beeby @thebeebs A small piece of code (Packaged) Deployed
to a service (Through CLI/Portal) The service create a URL endpoint for that code SERVERLESS
Martin Beeby @thebeebs Software developer Since I was 16 Joined
Oracle 6 months ago MARTIN BEEBY
Martin Beeby @thebeebs Marketing Sites Timers/ CLIs Full applications USE
CASES Single Page Applications Integration/ APIs Alexa Skills/Office Apps
Martin Beeby @thebeebs AN AVERAGE DEVELOPERS VIEW ON SERVERLESS
Martin Beeby @thebeebs THE PROBLEM 3 PLATFORMS LEARNINGS
Martin Beeby @thebeebs Mobile App Allows Lawyers to transcribe claimants
testimony Manages a Legal Case in the field LAW FIRM
Martin Beeby @thebeebs 2 minute chunks How do you slice
up audio In the right place? THE BASIC PROBLEM Speech to Text Claimant != Clementine 30 minutes transcription
Martin Beeby @thebeebs ARCHITECTURE Webhook Function: Slices Audio Python Webhook
Put Webhook Webhook R e s u l t 6 Minute Audio In 3 x 2minute Audio chunks Function: Node.js Function: Node.js
Martin Beeby @thebeebs Fast Node, Python Scale WHY SERVERLESS
Martin Beeby @thebeebs AZURE AWS LAMBDA FNPROJECT
Martin Beeby @thebeebs https://github.com/thebeebs/thestateofthefunction STATE OF THE FUNCTION
Martin Beeby @thebeebs AZURE PORTAL
Martin Beeby @thebeebs AWS PORTAL
Martin Beeby @thebeebs FN PROJECT - CLI
Martin Beeby @thebeebs LOOK AT THE CODE
Martin Beeby @thebeebs Built On the Web App Service (Currently
IIS) Using CI/CD in the same way you deploy Web App Service function.json configuration DEPLOYMENT
Martin Beeby @thebeebs Package all Files and Dependencies Into a
Zip File That can be uploaded via web portal Or upload via CLI in a CI/CD workflow DEPLOYMENT
Martin Beeby @thebeebs aws lambda create-function \ --region us-east-1 --function-name
myTestFunction --zip-file fileb://path/package.zip --role role-arn --environment Variables="{LD_LIBRARY_PATH=/usr/bin/test/lib64}" --handler index.handler --runtime nodejs6.10 --profile default LAMBDA CLI
Martin Beeby @thebeebs Fn Builds a container Or any Docker
Container can be a function I use Wercker to deploy and build containers DEPLOYMENT
Martin Beeby @thebeebs http://thebeebs.uk/deploy WERCKER
Martin Beeby @thebeebs LANGUAGES Type Service Lambda Azure Fn Node
✔ ✔ ✔ C# ✔* ✔ ✔* Python ✔ ✔* ✔ go ✔ ✔ Java ✔ ✔* ✔ ruby ✔ F# ✔ ? Batch, Bash, Powershell ✔ ? php ✔ Any Docker Container ✔
Martin Beeby @thebeebs SERVERLESS IS OFTEN EVENT DRIVEN
Martin Beeby @thebeebs Run when triggered by item being added
to a queue or container etc In and Out or Using Storage SDK from function Used in this Legal Application STORAGE TRIGGER
Martin Beeby @thebeebs BINDINGS LAMBDA Type Trigger Input Output API
Gateway ✔ AWS IoT ✔ Alexa Skills Kit ✔ Cloudwatch Events, Logs ✔ Code Commit ✔ DynamoDb ✔ Kinesis ✔ S3 ✔ SNS ✔
Martin Beeby @thebeebs BINDINGS AZURE Type Service Trigger Input Output
Schedule Azure Functions ✔ HTTP (REST or webhook) Azure Functions ✔ ✔* Blob Storage Azure Storage ✔ ✔ ✔ Events Azure Event Hubs ✔ ✔ Queues Azure Storage ✔ ✔ Tables Azure Storage ✔ ✔ Tables Azure Mobile Apps ✔ ✔ No-SQL DB Azure CosmosDB ✔ ✔ Push Notifications Azure Notification Hubs ✔ ServiceBus Queue/Topic Azure Service Bus ✔ Event Grid All the things ✔
Martin Beeby @thebeebs { "Records": [ { "eventVersion": "2.0", "eventTime":
"1970-01-01T00:00:00.000Z", "requestParameters": { "sourceIPAddress": "127.0.0.1" }, "s3": { "configurationId": "testConfigRule", "object": { "eTag": "0123456789abcdef0123456789abcdef", "sequencer": "0A1B2C3D4E5F678901", "key": "uk-EN_sample.wav", "size": 1024 }, "bucket": { "arn": "arn:aws:s3:::mybucket", "name": "voicewavfiles", "ownerIdentity": { "principalId": "EXAMPLE" } }, "s3SchemaVersion": "1.0" }, "responseElements": { "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH", "x-amz-request-id": "EXAMPLE123456789" }, "awsRegion": "us-east-1", "eventName": "ObjectCreated:Put", "userIdentity": { "principalId": "EXAMPLE" }, "eventSource": "aws:s3" } ] } Webhooks BINDINGS FNPROJECT
Martin Beeby @thebeebs fn run cat sample.lamda.payload.json | fn run
RUN
Martin Beeby @thebeebs
Martin Beeby @thebeebs fn run fn deploy –app myapp –-local
cat sample.lamda.payload.json | fn call myapp /fnProject cat sample.lamda.payload.json | cURL http://myserver/r/myapp /fnProject DEPLOY
Martin Beeby @thebeebs
Martin Beeby @thebeebs Not establishing Standards Multiple Invocation Forgetting about
devops COMMON MISTAKES Start up time - Preload Depending on Dependencies Poor Error Logging Managing Memory Long Running Tasks
Martin Beeby @thebeebs Marketing Sites Timers/ CLIs Full applications USE
CASES Single Page Applications Integration/Integration/ APIs Alexa Skills/Office Apps
Martin Beeby @thebeebs ORCHESTRATION Webhook Function: Slices Audio Webhook Put
Webhook Webhook R e s u l t
Martin Beeby @thebeebs FNPROJECT FLOW public void book1(TripReq input) {
Flow f = Flows.currentFlow(); FlowFuture<BookingRes> flightFuture = f.invokeFunction("./flight/book", input.flight, BookingRes.class); FlowFuture<BookingRes> hotelFuture = f.invokeFunction("./hotel/book", input.hotel, BookingRes.class); FlowFuture<BookingRes> carFuture = f.invokeFunction("./car/book", input.carRental, BookingRes.class); flightFuture.thenCompose( (flightRes) -> hotelFuture.thenCompose( (hotelRes) -> carFuture.whenComplete( (carRes, e) -> EmailReq.sendSuccessMail(flightRes, hotelRes, carRes) ) ) ); }
Martin Beeby @thebeebs public static async Task<object> Run(DurableOrchestrationContext ctx) {
try { var x = await ctx.CallActivityAsync<object>("F1"); var y = await ctx.CallActivityAsync<object>("F2", x); var z = await ctx.CallActivityAsync<object>("F3", y); return await ctx.CallActivityAsync<object>("F4", z); } catch (Exception) { // error handling/compensation goes here } } DURABLE FUNCTIONS
Martin Beeby @thebeebs THEBEEBS.UK/TRIAL $300 @THEBEEBS
Martin Beeby @thebeebs CONTACT MARTIN BEEBY @thebeebs https://www.thebeebs.co.uk
[email protected]