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
13
5.5k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
63
27k
シェルの履歴とイクンリメンタル検索を使う
naoya
7
3k
20230227-engineer-type-talk.pdf
naoya
85
40k
関数型プログラミングと型システムのメンタルモデル
naoya
61
88k
TypeScript による GraphQL バックエンド開発
naoya
28
30k
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
naoya
66
23k
「問題から目を背けず取り組む」 一休の開発チームが6年間で学んだこと
naoya
144
58k
一休の現在と、ここまでの道のり
naoya
90
41k
Other Decks in Technology
See All in Technology
サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk
drumnistnakano
0
190
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automated Test Culture 2024 Winter Edition
twada
PRO
13
3.7k
Snykで始めるセキュリティ担当者とSREと開発者が楽になる脆弱性対応 / Getting started with Snyk Vulnerability Response
yamaguchitk333
2
180
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
160
権威ドキュメントで振り返る2024 #年忘れセキュリティ2024
hirotomotaguchi
2
740
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
280
ゼロから創る横断SREチーム 挑戦と進化の軌跡
rvirus0817
2
270
株式会社ログラス − エンジニア向け会社説明資料 / Loglass Comapany Deck for Engineer
loglass2019
3
32k
How to be an AWS Community Builder | 君もAWS Community Builderになろう!〜2024 冬 CB募集直前対策編?!〜
coosuke
PRO
2
2.8k
PHPからGoへのマイグレーション for DMMアフィリエイト
yabakokobayashi
1
170
生成AIをより賢く エンジニアのための RAG入門 - Oracle AI Jam Session #20
kutsushitaneko
4
220
Postman と API セキュリティ / Postman and API Security
yokawasa
0
200
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
A designer walks into a library…
pauljervisheath
204
24k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
It's Worth the Effort
3n
183
28k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Building Applications with DynamoDB
mza
91
6.1k
The Pragmatic Product Professional
lauravandoore
32
6.3k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
Building Your Own Lightsaber
phodgson
103
6.1k
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ࢄγεςϜશൠʹӨڹΛ༩͑ΔτϨ ϯυ ͱݸਓతʹ༧͍ͯ͠·͢ɻ