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.6k
Immutable Infrastructure / これからのWeb, クラウドシステム
Naoya Ito
September 12, 2014
Tweet
Share
More Decks by Naoya Ito
See All by Naoya Ito
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
56
23k
シェルの履歴とイクンリメンタル検索を使う
naoya
7
2.7k
20230227-engineer-type-talk.pdf
naoya
81
35k
関数型プログラミングと型システムのメンタルモデル
naoya
52
61k
TypeScript による GraphQL バックエンド開発
naoya
26
25k
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
naoya
65
23k
「問題から目を背けず取り組む」 一休の開発チームが6年間で学んだこと
naoya
141
56k
一休の現在と、ここまでの道のり
naoya
89
40k
技術的負債と向き合う
naoya
248
75k
Other Decks in Technology
See All in Technology
こんなに違うよ MySQLとPostgreSQL /
sakaik
17
10k
組織全体で品質を担保するための品管メンバーとしてのさまざまな役割
tarappo
3
630
Oracle Database 23ai Overview
oracle4engineer
PRO
1
750
20分で分かるIAM全機能 /20240621-aws-summit-iam
opelab
26
7.7k
半年かけてPHP5.6からPHP7.4までバージョンアップした苦労と工夫 PHPカンファレンス福岡2024
kechiiin
1
140
Refactoring in Angular via Metrics, Modularity & Testing
rainerhahnekamp
0
200
RubyKaigiのプロポーザルを通したい。 / rubykaigi-proposal
toshimaru
3
440
社内LLMハッカソン2024発表資料
streamwest1629
0
360
State of Amazon Location Service
dayjournal
0
110
10社以上のCTO/技術顧問を経験してみえた 技術組織に起こる課題と対策
otani_yuji
0
600
データベース09: 実体関連モデル上の一貫性制約
trycycle
0
110
新規事業立ち上げ、グロースで きちんと”デリバリー”も"ディスカバリー"も し続けられるアジャイル組織の作り方
applepine1125
1
340
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
165
14k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
119
18k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
22
1.8k
What’s in a name? Adding method to the madness
productmarketing
PRO
18
2.8k
Designing with Data
zakiwarfel
96
4.9k
Designing Experiences People Love
moore
136
23k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
15
8.5k
Fireside Chat
paigeccino
24
2.7k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
359
22k
The Mythical Team-Month
searls
217
42k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
9k
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ࢄγεςϜશൠʹӨڹΛ༩͑ΔτϨ ϯυ ͱݸਓతʹ༧͍ͯ͠·͢ɻ