Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Spacer - iThome Serverless All-Star
Search
Poga Po
March 29, 2018
Technology
2
240
Spacer - iThome Serverless All-Star
Poga Po
March 29, 2018
Tweet
Share
More Decks by Poga Po
See All by Poga Po
civic-notebook
poga
0
93
Fuzz Testing and go-fuzz
poga
0
290
everything is log
poga
12
1.8k
g0v intro
poga
0
81
新聞產生器
poga
0
560
RESTful API @ Front-End Developers Taiwan 2014-04-23
poga
3
130
Dependency Management in Go
poga
4
590
Redis: based on real story
poga
16
1.3k
Other Decks in Technology
See All in Technology
スプリントゴールにチームの状態も設定する背景とその効果 / Team state in sprint goals why and impact
kakehashi
2
100
フルカイテン株式会社 採用資料
fullkaiten
0
36k
Figma Dev Modeで進化するデザインとエンジニアリングの協働 / figma-with-engineering
cyberagentdevelopers
PRO
1
430
GitHub Universe: Evaluating RAG apps in GitHub Actions
pamelafox
0
170
【技術書典17】OpenFOAM(自宅で極める流体解析)2次元円柱まわりの流れ
kamakiri1225
0
210
「視座」の上げ方が成人発達理論にわかりやすくまとまってた / think_ perspective_hidden_dimensions
shuzon
2
2.2k
30万人が利用するチャットをFirebase Realtime DatabaseからActionCableへ移行する方法
ryosk7
5
350
Fargateを使った研修の話
takesection
0
110
Apple/Google/Amazonの決済システムの違いを踏まえた定期購読課金システムの構築 / abema-billing-system
cyberagentdevelopers
PRO
1
220
[JAWS-UG金沢支部×コンテナ支部合同企画]コンテナとは何か
furuton
3
250
【若手エンジニア応援LT会】AWSで繋がり、共に成長! ~コミュニティ活動と新人教育への挑戦~
kazushi_ohata
0
180
最速最小からはじめるデータプロダクト / Data Product MVP
amaotone
5
740
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
7
150
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Facilitating Awesome Meetings
lara
49
6k
Docker and Python
trallard
40
3.1k
Scaling GitHub
holman
458
140k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
231
17k
Fashionably flexible responsive web design (full day workshop)
malarkey
404
65k
Fireside Chat
paigeccino
32
3k
StorybookのUI Testing Handbookを読んだ
zakiyama
26
5.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Designing for humans not robots
tammielis
249
25k
Transcript
Poga. 2018.03.29
Serverless • 以 function 為執行單位 • 按照每個 function 使用的資 源量計費
Hello World (Lua) function (args) return "Hello from Spacer!" end
Code
Calling Other Functions -- by name local flow = require
"flow" flow.call("foo") Code
Calling Other Functions -- by require local foo = require
"foo" foo() Code
Expose Function as Public JSON API with Lua local Gateway
= { -- HTTP Method, Path, Function {"GET", "/hello", "hello"} } Code
Spacer • 流暢的開發體驗:Optimized for programmer happiness • 極低的架設門檻:不依賴 kubernetes、container、VM ◦
Minimal Dependency: nginx & PostgreSQL • Why? Nginx & Lua Code
Serverless is Hard Architecture
“Just a function” - Container • Programming languages • Sandbox
• Performance ◦ Inter-function communication、RPC ◦ Cold Start Architecture
“Just a function” - Scheduling • Manage container images •
Load/Unload containers • Event-Trigger • Kubernetes? Architecture
How Spacer Work • Lua • Nginx (openresty) • Kappa
Architecture Architecture
• Since 1993 • Embeddable Script Language • Lightweight Sandboxed
Lua VM • High-performance (LuaJIT): ◦ Game Engine ◦ CDN ◦ CERN ◦ Super Computers Architecture
• Common Gateway Interface (1993) • Openresty ◦ (nginx +
LuaJIT) ◦ Schedule Lua VM with nginx workers Architecture
Kappa Architecture “Where everything is a stream” • A software
architecture pattern • Append-only immutable event log • Real-time, Streaming Architecture
Spacer: Simple, Solid, Proven Technologies Serverless frameworks Spacer Sandbox/Package Container
Lua Scheduling Kubernetes nginx(openresty) Event ? Kappa architecture Architecture
Spacer is Platform Agnostic Architecture
But Why Serverless? philosophy
「好程式」 • 容易擴充、容易維護的架構 • 永遠是第一個被犧牲 • 「我們另外安排時間重構」- 主管,永遠不會實現 • 開發越來越慢、開發者心情越來越差、產品更新速度大減
◦ 最後失敗 philosophy
「好程式」 • 軟體架構的價值太難量化 • 對非專業人士來說太難理解 philosophy
「好程式」in serverless • 軟體架構 = 營運成本 • 重構 = Cost
Down • 開發者得到更多優化的空間 philosophy
看不懂軟體架構,也看的懂帳單的金額 philosophy
「好產品」 • 軟體開發: ◦ 定 Spec、定時程 ◦ 難以專注在用戶需求上 • 「從一條
SQL 到上線的距離有多遠?」 philosophy
「好產品」in Serverless • 不用分心在架構與技術細節上 ◦ 產品上線速度更快 • 更精細的產品分析: ◦ 一個
User 進來後,平均搜尋了幾次,花了多少成本? ◦ 一個 User 平均帶來的收入是? ◦ 優化: ▪ 流量? ▪ Function 效能? ▪ 轉換率? philosophy
「開發費用」 • 報價 10 萬跟 100 萬的差別在哪? • 維護費? •
Serverless ◦ 成本透明,按照用量收費 ◦ 開發者與客戶目標一致:提高產品價值 philosophy
Spacer: Simplified Serverless philosophy
Serverless: From Engineering to Utility philosophy
Thanks! github.com/poga/spacer