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
次世代PaaSとServerless 未来はどこにある?
Search
Kazuto Kusama
May 11, 2017
Technology
3
1.6k
次世代PaaSとServerless 未来はどこにある?
2016年10月の第34回PaaS勉強会で発表した資料です
Kazuto Kusama
May 11, 2017
Tweet
Share
More Decks by Kazuto Kusama
See All by Kazuto Kusama
トラシューアニマルになろう ~開発者だからこそできる、安定したサービス作りの秘訣~
jacopen
3
2.6k
あなたの興味は信頼性?それとも生産性? SREとしてのキャリアに悩むみなさまに伝えたい選択肢
jacopen
6
5.5k
PaaSの歴史と、 アプリケーションプラットフォームのこれから
jacopen
7
2.1k
AI x インシデント管理で拡げるサービスオーナーシップ
jacopen
0
160
間違いだらけのポストモーテム - ホントに役立つレビューはこうだ!
jacopen
7
1.5k
2024/10 PagerDuty機能アップデート
jacopen
1
61
ゲームから学ぶ、いちばん速いインシデント対応
jacopen
1
120
PEK2024 Recap
jacopen
2
180
クラウドネイティブの本質から考える、生産性と信頼性の両立
jacopen
3
940
Other Decks in Technology
See All in Technology
システム・ML活用を広げるdbtのデータモデリング / Expanding System & ML Use with dbt Modeling
i125
1
330
ExaDB-XSで利用されているExadata Exascaleについて
oracle4engineer
PRO
3
260
脳波を用いた嗜好マッチングシステム
hokkey621
0
290
DevinでAI AWSエンジニア製造計画 序章 〜CDKを添えて〜/devin-load-to-aws-engineer
tomoki10
0
160
手を動かしてレベルアップしよう!
maruto
0
230
技術スタックだけじゃない、業務ドメイン知識のオンボーディングも同じくらいの量が必要な話
niftycorp
PRO
0
110
実は強い 非ViTな画像認識モデル
tattaka
3
1.3k
急成長する企業で作った、エンジニアが輝ける制度/ 20250227 Rinto Ikenoue
shift_evolve
0
140
Cracking the Coding Interview 6th Edition
gdplabs
14
28k
Visualize, Visualize, Visualize and rclone
tomoaki0705
9
83k
What's new in Go 1.24?
ciarana
1
110
RayでPHPのデバッグをちょっと快適にする
muno92
PRO
0
190
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
The Cost Of JavaScript in 2023
addyosmani
47
7.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
It's Worth the Effort
3n
184
28k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Producing Creativity
orderedlist
PRO
344
40k
Practical Orchestrator
shlominoach
186
10k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
52k
Embracing the Ebb and Flow
colly
84
4.6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
12
990
Transcript
࣍ੈPaaSͱ Serverless ະདྷͲ͜ʹ͋Δʁ
Kazuto Kusama @jacopen
͜ͷൃදݸਓͷݟղͰ͋Γɺ ॴଐ͢Δ৫ͷެࣜݟղͰ͋Γ·ͤΜ ҙ
࠷ۙPaaSͬͯͲ͏Ͱ͔͢ʁ Γ্͕ͬͯΔʁ
ࣄ࣮: “PaaS”ͱ͍͏͚ͩͰ͓ۚΛग़ͯ͠ ͑Δ࣌ͱͬ͘ʹऴΘͬͨ 㱺όζϫʔυͱͯ͠Φϫίϯ
ϋΠϓɾαΠΫϧ https://www.gartner.co.jp/research/methodologies/research_hype.php
ϋΠϓɾαΠΫϧ https://www.gartner.co.jp/research/methodologies/research_hype.php ͓͔ͶͨͬΓ ϘʔφελΠϜ PaaSଟ͜ͷΜ
ʮPaaSͰṶ͔͍ͬͯΔձࣾʯ ͱݴΘΕͯࢥ͍ු͔Δձ͕ࣾগͳ͍ ͳͥʁ 㱺Ϗδωεͱͯ͠ͷকདྷੑ͕ෆ͔֬
͔֬Β͍͠ະདྷ
͜Ε͔ΒPaaSͱ͍͏ݴ༿ ΘΕͳ͘ͳ͍ͬͯ͘ ͔֬Β͍͠ະདྷ
“Cloud Native Platform”
“Container Platform”
“Container as a Service”
ԿނʮPaaS͔ʯ • PaaSͱ͍͏ݴ༿ͷ͔ΓͮΒ͞ • ΑΓαʔϏεͷੑ֨Λද͢ݴ༿ʹ • PaaSͰେޭͨ͠ྫ͕͋·Γͳ͍ͷͰɺϏδωεతʹ ྑ͍ҹ͕ͳ͍
ͦͦԿނޭ͠ͳ͔ͬͨͷ͔Ծઆ • ϩοΫΠϯ • ϕϯμʔʮϩοΫΠϯͯ͠ͳ͍ʯͱ͍͏ɻ ʮΦʔϓϯͳٕज़͕ͦͷ··͑ΔΑʂʯɹŋŋŋͦ͏͍͏͡Όͳ͍ • ҙࣝվֵͷ͠͞ • ϓϩηεεςʔτϑϧʹʂ
ઃఆڥมʹʂϩάඪ४ग़ྗʹʂ ͜ΕͰΫϥυωΠςΟϒΞϓϦέʔγϣϯͩʂɹŋŋŋ͑ʔΊΜͲ͍͘͞ • യવͱͨ͠ෆ҆
͜Ε͔ΒͷPaaS Ͳ͏ͳΔͷ͔
ୈ1ੈͷPaaS • 2007ʙ2010͝Ζ·Ͱ • ϓϩϓϥΠΤλϦ • ܾΊଧͪͷݴޠɾϑϨʔϜϫʔΫɾDB
ୈ2ੈͷPaaS • 2011ʙ • ϓϩϓϥΠΤλϦ / Φʔϓϯ • ༷ʑͳݴޠɾϑϨʔϜϫʔΫɾDB •
ԾԽٕज़Λϑϧ׆༻
ୈ3ੈͷPaaS • 2014ʙ • ίϯςφωΠςΟϒ • ͲͷڥͰɺಉ͡ͷ͕͑Δ • ΑΓૣ͘ɺΑΓॊೈʹɺΑΓΦʔϓϯʹ
ୈ4ੈͷPaaS
• ߏ͍ͨ͠ΠϯϑϥΛίʔυͰදݱɻIaaSͱಉͷॊೈੑΛɺ ΑΓߴʹɺΑΓ؆୯ʹɺΑΓޮΑ࣮͘ݱग़དྷΔɻ • ͜Ε·ͰͷPaaS ʮΠϯϑϥҙࣝ͠ͳ͍͍ͯ͘ɻ ɹͱʹ͔͘Ξοϓϩʔυͯ͘͠Εɺ͋ͱԿͱ͔͢Δʯ 㱺HerokuͳͲͰ࣮ݱͨ͠ੈքɻ͘͢͝؆୯ʹ͑Δɻ Infrastructure as
CodeΛ ࣮ݱ͢Δ ϓϥοτϑΥʔϜ
• ͲͷΞϓϦΛԿݸ্ཱͪ͛ͯɺ Ͳ͏͍͏NWߏʹͯ͠ ʓʓΛϚϯτͯ͠ XXXͱ͍͏ίϯϑΟάΛೖΕͯŋŋŋ ͱ͍ͬͨߏใΛίʔυͰཧ σϓϩΠ͢Δͱج൫ଆ͕͏·͍͜ͱ ࣮ݱͯ͘͠ΕΔɻ ίϯςφٕज़SDNͳͲͷ߹Θٕͤ
Infrastructure as CodeΛ ࣮ݱ͢Δ ϓϥοτϑΥʔϜ • Google͕BorgͰ࣮ূࡁ • BorgΛࢀߟʹ࡞ΒΕ͍ͯΔKubernetesɺ KubernetesϕʔεͷOpenShiftɺঃʑʹ͜ͷੈքΛ
࣮ݱ͍ͯ͠Δ • DockerɺόʔδϣϯΛ͏͝ͱʹ࣮ͭͭ͋͠Δ
• ෳࡶʹͳͬͯ͋ΔҙຯୀԽͯ͠ͳ͍ʁ • ෳࡶͳ͜ͱ͕ग़དྷΔϓϥοτϑΥʔϜΛϥοϓͯ͠ ؆୯ʹ͏ͷՄೳ • ؆୯ͳ͜ͱ͔͠ग़དྷͳ͍ϓϥοτϑΥʔϜͰෳࡶͳ͜ͱΛ ͢Δͷࠔ Infrastructure as
CodeΛ ࣮ݱ͢Δ ϓϥοτϑΥʔϜ
• Herokuͷ12 Factor appྑ͘ग़དྷͨߟ͑ • ग़དྷΔݶΓStatelessʹ࡞Δ͜ͱͰɺεέʔϥϒϧͰϝϯς ͍͢͠ɺΫϥυωΠςΟϒͳΞϓϦέʔγϣϯ͕࡞ΕΔ • ͡Ό͋DBMQͳͲͷStatelessʹग़དྷͳ͍ͷʁ 㱺
ʮΞλον͞ΕͨϦιʔεͱͯ͠ѻ͏ʯ 㱺ӡ༻୭͕ͬͯྑ͍Μ͚ͩͲɺϦιʔεͱͯͯ͠͠ ߟ͑Ε͍ΖΜͳέʔεʹରԠͰ͖ΔΑ Stateful applicationͷαϙʔτ
Container 2.0 • Mesosphere͕ݴ͍࢝Ίͨ • Stateful application͚ͷ εέδϡʔϥΛDC/OSͰ αϙʔτɻ྆ํΛಉ͡ج൫্Ͱ ࣮ݱͰ͖Δ
None
Stateful Sets (Pet Sets) • KubernetesͰ࣮͕ਐΜͰ͍Δ • k8s্ͰɺैདྷͷΞϓϦέʔγϣϯΛ αϙʔτ͢ΔΈ •
ӬଓԽϘϦϡʔϜ ݻఆ͞ΕͨHostname ໊લղܾ
Stateful Sets (Pet Sets) • εέʔϥϒϧͳΞʔΩςΫνϟΛ࡞Δ߹ɺϦιʔεΛϖοτ Ͱͳ͘ɺՈச(Cattle)ͷΑ͏ʹѻ͏ͷ͕͍͍ɻ • ͜Ε·ͰͷΫϥυɺ͜ͷCattleΛڧ੍͖ͯͨ͠અ͕͋Δ •
ͰશͯͷΞϓϦέʔγϣϯ͕ઈεέʔϧ͢Δඞཁ͋ΔΜ͚ͩͬʁ
Serverless ͓ۚग़ͯ͑͠Δ ྲྀߦΓͷϫʔυ
None
PaaS • ServerؚΊͨɺApplicationͷӡ༻ΛݞΘΓ͢Δ Serverless • ServerΛͦͦҙࣝ͠ͳ͍
Serverless͕ͦ͜ະདྷʂ
ຊʹͦ͏ͳͷ͔ʁ
ઌʹݴ༿ͷཧ FaaS (Functions as a Service) γϯϓϧͳίʔυΛFaaSʹॻ͍͓ͯ͘ͱɺࢦఆͨ͠ΠϕϯτʹԠͯ͡ ίʔυ͕࣮ߦ͞ΕΔαʔϏεɻ AWS LambdaAzure
Functionsɺ OpenWhiskͳͲ BaaS (Backend as a Service)ɺFunctional SaaS ೝূϓογϡ৴ͳͲɺϞόΠϧΞϓϦSPAͰඞཁͳػೳΛαʔ Ϗεͱͯ͠ఏڙ͢ΔɻFirebaseɺαʔϏεऴྃͨ͠ParseͳͲ
ઌʹݴ༿ͷཧ FaaS (Functions as a Service) γϯϓϧͳίʔυΛFaaSʹॻ͍͓ͯ͘ͱɺࢦఆͨ͠ΠϕϯτʹԠͯ͡ ίʔυ͕࣮ߦ͞ΕΔαʔϏεɻ AWS LambdaAzure
Functionsɺ OpenWhiskͳͲ BaaS (Backend as a Service)ɺFunctional SaaS ೝূϓογϡ৴ͳͲɺϞόΠϧΞϓϦSPAͰඞཁͳػೳΛαʔ Ϗεͱͯ͠ఏڙ͢ΔɻFirebaseɺαʔϏεऴྃͨ͠ParseͳͲ 㱺 BaaS+PaaSͷΈ߹ΘͤҎલΑΓҰൠతʹߦΘΕ͍ͯΔ ͷͰɺ͔͜͜ΒઌFaaSʹ͍ͭͯݴٴ͠·͢
API Gateway ObjectStorage etc… Functions Πϕϯτ Πϕϯτ Πϕϯτ ࣮ߦ output
etc… ΠϕϯτυϦϒϯ Πϕϯτड͚͚ͨͱ͖ͷ ॲཧ༰Λॻ͍͓ͯ͘ FaaSͷಈ͖
API Gateway ObjectStorage etc… Application output etc… ಉ͜͡ͱΛPaaSͰΖ͏ͱ͢Δͱɾɾɾ HTTPͳΓԿͳΓͰ ΠϕϯτΛड͚͚Δ
ޱΛͭ͘Δ αʔόʔϓϩηε(Πϯελϯε) Λ্ཱͪ͛ͯػͤ͞Δ Πϕϯτड͚͚ͨͱ͖ͷ ॲཧ༰Λॻ͍͓ͯ͘
API Gateway ObjectStorage etc… Application output etc… ͜͏͍͏ͱ͖Ͳ͏͢Δʁ શવΠϕϯτ͕དྷͳ͍ͱ͖Πϯελϯε ͣͬͱ্ཱ͓͔ͪ͛ͯͳ͚Ε͍͚ͳ͍
API Gateway ObjectStorage etc… Application output etc… ͜͏͍͏ͱ͖Ͳ͏͢Δʁ ಥવΠϕϯτ͕ٸ૿ͨ͠ͱ͖ʹ ΠϯελϯεΛεέʔϧͤ͞Δૢ࡞͕ඞཁ
ɾ ɾ ɾ
PaaSʹग़དྷͳͯ͘FaaSʹग़དྷΔ͜ͱ • PaaSͰɺΠϕϯτ͕ى͖ͳ͍࣌Ͱৗʹϓϩηε্͕͕Δɻ· ͨɺಥવΠϕϯτ͕ٸ૿ͨ͠ͱ͖ɺϓϩηεΛ૿͢ͱ͍͏ૢ ࡞ΛࣗಈͳΓखಈͳΓͰߦΘͳ͍͚ͯ͘ͳ͍ɻ (ͦΕͰɺIaaSΦϯϓϨϛεΑΓ͍ͩͿָ) • FaaSࡉ͔ͳॲཧ୯ҐͰFunction͕࡞ΒΕɺΠϕϯτͷʹϓϩ ηε্͕͕Γɺॲཧ͕ऴΘΔͱϓϩηεফ͑Δɻ Πϕϯτ͕ى͖ͳ͍ͱϦιʔεফඅ͠ͳ͍ɻେྔͷΠϕϯτൃੜ
࣌ͦΕʹԠͯ͡ϓϩηε্͕͕Γɺফ͍͑ͯ͘
FaaS vs PaaS • FaaSPaaSʹ͍ͬͯͨʮӡ༻ʯ͕ແ͘ͳ͍ͬͯΔ • ΑΓεέʔϥϒϧɺ͔ͭޮͷྑ͍ΈΛ࡞ΕΔ • ػೳ୯ҐͰ͚͟ΔΛಘͳ͍ 㱺
εςʔτΛ࣋ͨͤΔ͜ͱ͕͍͠ 㱺 ݁Ռͱͯ͠εέʔϥϒϧʹͳΔ
FaaS is better than PaaS? • ͦΜͳ͜ͱͳ͍ • PaaSͷΑ͏ͳෳࡶͳॲཧΛ1FunctionͰߦΘͤΔ͜ͱग़དྷͳ͍ •
WebαʔόʔͷΑ͏ͳίϯςϯπΛ৴͢ΔΑ͏ͳ ΈͰͳ͍ • PaaSͰಈ͔͢ΞϓϦɺϩʔΧϧͰIaaSͰΦϯϓϨͰ ಈ͘Α͏ʹ࡞ΕΔɻFaaSFaaS༻ͷΓʹͤ͟ΔΛಘͳ͍
PaaS ͱ FaaS Λਖ਼͍͚͘͠Δߟ͑ํ Hub Glue
PaaS = Hub Application database monitoring message queue mail logging
CI/CD
App database monitoring message queue mail logging CI/CD ΞϓϦέʔγϣϯ͕த৺(Hub)ͱͳΔɻ Γ͍ͨ͜ͱΞϓϦʹॻ͘
PaaSӡ༻ͷݞΘΓͱ ศརͳػೳΛఏڙ͢Δ
FaaS = Glue database mail CI/CD Object Storage API Gateway
Function messaging Function Function
{} {} {} FaaSɺ֤ΫϥυαʔϏεΛܨ͛ΔͨΊͷކ (Glue) Γ͍ͨ͜ͱɺ֤αʔϏεΛܨ࣮͛ͯݱ͢Δ ֤FunctionͰෳࡶͳ͜ͱͤͣ͞ɺ γϯϓϧͳॲཧʹཹΊΔ
ʮ͋͠ͳͨͷPaaS͕ɺ0.5ඵ͚ͩಈ͘ΠϯελϯεΛ ɹɹ20msͰىಈͰ͖ΔͳΒɺͦΕαʔόʔϨεͱݺͿʯ
• ΞϓϦέʔγϣϯͷ։ൃͱӡ༻Λศརʹ͢Δͷ͕PaaS • ͜Ε·Ͱͷߟ͑ํΛɺΫϥυͰΑΓศརʹ • ͞·͟·ͳΫϥυαʔϏεΛ׆༻͠ɺͪΐͬͱͨ͠ίʔυͰ ͋Ε͜Ε࣮ݱ͢Δͷ͕FaaS • Ϋϥυ͋Γ͖ͷαʔϏεʢΨνͰϩοΫΠϯ͞ΕΔؾ͕ແ͍ͱ͑ͳ͍ΑͶŋŋŋ •
͜Ε͚ͩΫϥυαʔϏε͕ॆ࣮͍ͯ͠ΔΜ͔ͩΒ׆༻͠Α͏ʂ ͦͦͷߟ͑ํ͕ҧ͏ͷͰɺ߹ʹԠ͍͚ͯ͡Α͏
ͪͳΈʹPaaSษڧձͷϞοτʔ
PaaSʹؔΘΔ͜ͱͳΒԿͰOK ͭ·ΓServerlessωλOK
࣍ճҎ߱ɺServerlessωλେܴ
Questions?