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
Immutable Infrastructure / これからのWeb, クラウドシステム
Search
Naoya Ito
September 12, 2014
Technology
34
5.7k
Immutable Infrastructure / これからのWeb, クラウドシステム
Naoya Ito
September 12, 2014
Tweet
Share
More Decks by Naoya Ito
See All by Naoya Ito
Functional TypeScript
naoya
15
5.9k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
67
30k
シェルの履歴とイクンリメンタル検索を使う
naoya
8
3.1k
20230227-engineer-type-talk.pdf
naoya
89
73k
関数型プログラミングと型システムのメンタルモデル
naoya
62
96k
TypeScript による GraphQL バックエンド開発
naoya
28
33k
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
naoya
67
24k
「問題から目を背けず取り組む」 一休の開発チームが6年間で学んだこと
naoya
144
59k
一休の現在と、ここまでの道のり
naoya
90
41k
Other Decks in Technology
See All in Technology
Microsoft_20250311_第2回AI_IoT共創ラボ.pdf
iotcomjpadmin
0
450
保育 AI「たよれるくん」で 保育の質向上をアシスト
skakimoto
0
140
Microsoft_20250311_できるつくれるAIAgent.pdf
iotcomjpadmin
0
250
AWS のポリシー言語 Cedar を活用した高速かつスケーラブルな認可技術の探求 #phperkaigi / PHPerKaigi 2025
ytaka23
7
1.1k
Autonomous Database サービス・アップデート (FY25)
oracle4engineer
PRO
1
550
パスキー導入の課題と ベストプラクティス、今後の展望
ritou
0
210
いまから始めるAWS CDK 〜モダンなインフラ構築入門〜/iac-night-cdk-introduction
tomoki10
8
2.2k
DIってなんだか難しい? 依存という概念を「使う・使われる」 という言葉で整理しよう
akinoriakatsuka
1
610
Amazon Bedrock GenUハンズオン座学資料 #1 GenU環境で生成AIを体験してみよう
tsukuboshi
0
230
Javaの新しめの機能を知ったかぶれるようになる話 #kanjava
irof
1
170
AWSにおけるサイバー攻撃の傾向と具体的な対策
yuobayashi
8
750
移行できそうでやりきれなかった 10年超えのシステムを葬るための戦略 / phper-kaigi-2025-ryu
carta_engineering
0
630
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
600
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
A better future with KSS
kneath
238
17k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.4k
The Invisible Side of Design
smashingmag
299
50k
Facilitating Awesome Meetings
lara
53
6.3k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Navigating Team Friction
lara
183
15k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
176
52k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Transcript
*NNVUBCMF*OGSBTUSVDUVSF ͜Ε͔Βͷ8FCΫϥυγεςϜ /BPZB*UP ,"*;&/QMBUGPSN*OD ϚΠφϏχϡʔε*5αϛοτ
ࣗݾհ • ҏ౻ • χϑςΟ • ͯͳ औకࣥߦһ$50 •
άϦʔ ιʔγϟϧϝσΟΞ౷ׅ෦ • .64&"TTPDJBUFT ϑΣϩʔ • ,"*;&/QMBUGPSN*OD ٕज़ސ
,"*;&/QMBUGPSN*OD "#ςετΫϥυαʔϏεQMBO#$%Λ։ൃ͢Δ໊ఔͷελʔτΞοϓ
None
ΞδΣϯμ • *NNVUBCMF*OGSBTUSVDUVSFͬͯ – ࣮ࡍͷࣄྫ – *NNVCBMFʙΛࢧ͑Δٕज़ • શԾԽ͔Β04ϨϕϧԾԽ • Ϗοάσʔλͱ*NNVUBCMFʙ
– ͜Ε͔Βͷ8FCΫϥυγεςϜ
ಥવͰ͕͢ɺҎԼͷ ΫϥυαʔϏεΛ͝ଘͰ͔͢ • )FSPLV • 8FSDLFS 5SBWJT$* $JSDMF$*
)FSPLV
)FSPLV • (JUͰιʔείʔυΛૹΓࠐΉ͚ͩͰ 8FCΞϓϦέʔγϣϯΛಈ͔ͯ͘͠ΕΔ $ git push heroku master
-‐-‐-‐-‐-‐> Ruby app detected -‐-‐-‐-‐-‐> Compiling Ruby/Rack -‐-‐-‐-‐-‐> Using Ruby version: ruby-‐2.0.0 (snip.) -‐-‐-‐-‐-‐> Launching... done, v14 http://radiant-‐wildwood-‐3571.herokuapp.com/ deployed to Heroku
http://www.slideshare.net/mokamoto/201117c4-heroku-databasecom
%ZOPຖճغͯΒΕΔ • º্ॻ͖ͰσϓϩΠ • ˓ຖճ৽͍͠%ZOP͕࡞͞ΕΔ – ৽%ZOP͕४උྃϧʔςΟϯά͕Γସ ΘΓݹ͍ͷഇغ
$*BTB4FSWJDF
$*BTB4FSWJDF • $POUJOVPVT*OUFHSBUJPO Ϋϥυ • 8FSDLFSɺ5SBWJT$*ɺ$JSDMF$* – (JU)VCͳͲʹίʔυͷมߋ͕QVTI͞ΕΔ ͱɺಉϨϙδτϦͷςετΛ࣮ߦ
webhook notification
None
ςετͷڥΛ࡞Γग़͢ • ෳͷϢʔβʔ͕ෳͷγεςϜΛςετ ͢Δ • ςετຖʹ৽͍͠ίϯςφΛ࡞Δ – ଞͷϢʔβʔͱ͞Εͨڥ͕ཁΔ͔Β – ςετ͕ऴΘͬͨΒغͯΔ
%JTQPTBCMF$PNQPOFOU • ഇغՄೳͳ • ඞཁʹͳͬͨΒ࡞Δ • ߋ৽্ॻ͖Ͱͳͯ͘ɺغͯͯ৽͍͠ͷ ࡞Δɻͭ·Γɺมߋ͠ͳ͍ – ˠ*NNVUBCMF*OGSBTUSVDUVSF
αʔόʔͷঢ়ଶ • ͋Δೲ͞Εͨ3BJMTαʔόʔ – 9݄9ʹ%/4ΩϟογϡΛઃఆͨ͠ – :݄:ʹϓϩηεΛνϡʔχϯάͨ͠ – ;݄;ʹSVCZͷόʔδϣϯΛ্͛ͨ –
ŋŋŋ ͍Ζ͍Ζ܁Γฦ͠ • ͜ͷαʔόʔʹৼΓʹ3BJMTΞϓϦΛσϓϩ Π – Ռͨͯ͠σϓϩΠਖ਼͘͠ऴΘΔͷ͔
αʔόʔͷঢ়ଶΛཧ͢Δ • खॱॻ • ࣗಈԽ • αʔόʔཧσʔλϕʔε
• $IFG 1VQQFU
ঢ়ଶཧ͕໘ͳΒɺঢ়ଶΛ ཧ͠ͳ͚Εྑ͍ͷͰ
h"p://chadfowler.com/blog/2013/06/23/immutable-‐deployments/
#MVF(SFFO%FQMPZNFOU
࣌ؒʹ ճσϓϩΠ h"p://www.publickey1.jp/blog/12/amazon11000_aws_reinventday2_am.html
*NNVUBCMFʙΛࢧ͑Δٕज़ ίϯςφ
શԾԽ͔Β 04ϨϕϧԾԽ ίϯςφ
*NNVUBCMFʙʹ͕ू·Δഎܠ • ςΫχοΫͱͯ͠ͷ*NNVUBCMFʙ – ܧଓతΠϯςάϨʔγϣϯσϦόϦʔ – #MVF(SFFO%FQMPZNFOU • ཁૉٕज़࣮ŋŋŋΫϥυΠϯϑϥͷస ظ – ίϯςφ – %PDLFS
None
શԾԽͱ04ϨϕϧԾԽ • શԾԽ – Ϛγϯ͝ͱԾԽ͠ಠཱͨ͠ڥΛఏڙ – "84ͷ*BB47.8BSF – ʮԾԽʯͱݴ͑ݱঢ়ࢥ͍ු͔Δͷͪ͜Β •
04ϨϕϧԾԽ – ͋͘·Ͱ04ͷϓϩηε – DISPPUɺ+BJMɺ-9$ ίϯςφ 7JSUVBM.BDIJOF 7. WT $POUBJOFS ※厳密にはコンテナ系実装を「仮想化」と言ってよいかどうか# ここではユースケース的の文脈に拡大解釈
http://www.slideshare.net/m-bird/ss-38785624
-JOVYίϯςφ • Ϣʔβʔϓϩηεͱͯ͠৽͍͠ڥΛ࡞Δ – ϓϩηεͳͷͰॠ࣌ʹੜ͞ΕΔ – Ϣʔβʔ͔Β͔͋ͨ৽͍͠04ʹݟ͑Δ • ίϯςφWT7.ʹτϨʔυΦϑ –
ίϯςφىಈ͕ॠ࣌Φʔόʔϔου͕গͳ͍ϗ ετ04͔Βͷ੍ޚ͕Մೳ – 7.ϗετήετɺ
%PDLFS
None
$POUBJOFSTBSFBOFXTUBOEBSEJO DMPVEJOGSBTUSVDUVSF
https://speakerdeck.com/jbeda/containers-at-scale
Ϋϥυʹ͓͚ΔԾԽ • ϗεςΟϯά*BB4 – Ϣʔβʔ͕ظ͍ͯ͠Δͷʮຊͷαʔόʔͷ༷ͳʯͳͷ Ͱ7.ϕʔεͷํ͕·͍͠ ͷ͔ •
BTB4FSWJDF(PPHMF'BDFCPPL – )FSPLV ("& 8FSDLFS 5SBWJT$* – ൴Β͕ཉ͔ͬͨ͠ͷʮԾԽ͞ΕͨαʔόʔʯͰͳ͘ ʮΫϥελϦϯά͞ΕͨΞϓϦέʔγϣϯͷೖΕʯ ͭ·Γʮಠཱͨ͠ڥʯΛखʹ ͍ΕΔखஈͱͯ͠ίϯςφͷํ ͕͍ͯΔέʔεଟ͔ͬͨ
*NNVUBCMFʙͷྲྀߦͱ Ϋϥυͷকདྷ • *NNVUBCMFͦΕ୯ମͷ֓೦͕ண͞ Ε͍ͯΔΘ͚Ͱͳ͘ • ΫϥυΠϯϑϥ͕ίϯςφܕʹҠߦͯ͠ ͍͘τϨϯυͱ૬·ͬͯͷ͜ͱ ※VMが時代遅れ、という話ではありません。現状VMではなくコンテナの方が向いてるはずの要件も、VMで賄われている場面が多い、とい う話
Ϗοάσʔλͱ *NNVUBCMFʙɺίϯςφ
ഇغՄೳͳ • ΞϓϦέʔγϣϯαʔόʔΘ͔Δ – 4IBSFE/PUIJOHʹ͓͚ͯ͠Α͍ – ʮεςʔτϨεʯ • σʔλϕʔεͳͲͷετϨʔδ
*NNVUBCMFʙͱετϨʔδ • ഇغՄೳͦ͏Ͱͳ͍෦Λ໌֬ʹ͢Δ • ͦ͏Ͱͳ͍෦ैདྷ௨Γʹӡ༻ – ͨͩ͠ΫϥυΛੵۃར༻͢Δ • 3%#ˠ"NB[PO3%4 • ετϨʔδˠ"NB[PO4
*NNVUBCMF ʮΞϓϦέʔγϣϯίʔ υʯ͕Քಇ͢Δॴ
8FCγεςϜͷࡾߏ ʹ͓͚Δ*NNVUBCMF • ʮ8FCΞϓϦέʔγϣϯͷίʔυʯ͕Քಇ͢ΔϨΠϠ Λ*NNVUBCMFʹ – ετϨʔδͳͲɺΫϥυతʹநԽͭͭ͠ैདྷ௨Γ – ଓΦʔέετϨʔγϣϯͰٵऩ͢Δ •
4FFTFSG DPOTVM ,VCFSOFUFTFUD ৄࡉলུ • *NNVUBCMFͰಈ͘ΞϓϦʹ࠶ݱੑ͕ٻΊΒΕΔ – 5IF5XFMFWF'BDUPS"QQ – ݁Ռతʹϙʔλϒϧ༷ʑͳӡ༻্ͷϝϦοτ – ৄ͘͠TQFBLFSEFDLDPNOBPZB
*NNVUBCMFʙ࣌ͷΞʔΩςΫνϟ • ϑϩϯτΤϯυόοΫΤϯυͷΛ໌ ֬ʹߦ͏ • ݁ՌతʹϩάϏοάσʔλج൫ – )BEPPQΫϥελ – #JH%BUBBTB4FSWJDF
Ϗοάσʔλج൫ • )BEPPQɺ#JH2VFSZ – *0ΛʮεέʔϧΞτʯͰฒྻॲཧ͢Δ͜ ͱʹΑΓϏοάσʔλղੳΛՄೳʹ – 5#Φʔμʔͷσʔλʹର͠ेʙઍͷΫ ϥελ
.11ܥΫΤϦΤϯδϯ • Ϗοάσʔλج൫ʹରͯ͠খ͍͞Φʔόʔ ϔουͰ42- – )BEPPQ • 1SFTUP • $MPVEFSB*NQBMB •
"QBDIF%SJMM – (PPHMF#JH2VFSZ • %SFNFM
https://speakerdeck.com/naoya/google-bigquery-falsehua-number-yapcasia
Ϗοάσʔλͷฒྻॲཧ • جຊɺΫϥελϦϯά – ଟͷαʔόʔͰฒྻॲཧ – ϦιʔεཧɺδϣϒεέδϡʔϦϯάŋŋŋ • ΫϥελͱԾԽ – ԾԽΛט·ͤͨํ͕ӡ༻্ͷར͕ଟ͍
,VCFSOFUFT https://www.youtube.com/watch?v=tsk0pWf4ipw
,VCFSOFUFT • ,VCFSOFUFT – (PPHMFɺ*#.ɺ.JDSPTPGUɺ3FE)BUɺ %PDLFS – ʮ%PDLFSίϯςφʹΑΔΫϥελߏஙͷͨΊͷεέ δϡʔϦϯάαʔϏεʯ •
%PDLFS ,VCFSOFUFT – %PDLFSΫϥελߏஙػߏΛ࣋ͨͳ͍ – ,VCFSOFUFT͕Ϋϥελཧ • ίϯςφཧͷͨΊͷΦʔέετϨʔγϣϯ
https://circleci.com/docs/docker#kubernetes
ϏοάσʔλͱίϯςφܕΫϥελ • ԾԽͰཧ͢ΔͳΒίϯςφ – *0Φʔόʔϔου͕গͳ͍ • *0ΛࢄΒͨ͢Ίʹฒྻॲཧ͍ͯ͠ΔϏοάσʔλ ج൫ʹͱͬͯࢧత – தԝ͔Β੍ޚ͍͢͠ – #JH2VFSZͷ෦ߏͳͲ͔Βɺͦͷํ ੑ͕֞ؒݟ͑Δ
͜Ε͔ΒϏοάσʔλج൫ί ϯςφ*NNVUBCMFʙ͔Β ͷӨڹΛڧ͘ड͚Δ
·ͱΊ • ʮΫϥυΠϯϑϥίϯςφܕʯͱ͍͏େ ͖ͳస – ։ൃϓϩηε8FCγεςϜΞʔΩςΫνϟʹӨڹΛ ༩͑\Δ ͨ^݁Ռ͕*NNVUBCMF*OGSBTUSVDUVSF – Ϗοάσʔλج൫ͷΞʔΩςΫνϟʹӨڹΛ༩͑Δ
• ଞɺ8FCࢄγεςϜશൠʹӨڹΛ༩͑ΔτϨ ϯυ ͱݸਓతʹ༧͍ͯ͠·͢ɻ