Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Immutable Infrastructure / これからのWeb, クラウドシステム
Search
Naoya Ito
September 12, 2014
Technology
5.9k
34
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Immutable Infrastructure / これからのWeb, クラウドシステム
Naoya Ito
September 12, 2014
More Decks by Naoya Ito
See All by Naoya Ito
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
4.5k
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
13
4.8k
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
21
8.1k
Functional TypeScript
naoya
19
6.9k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
77
38k
シェルの履歴とイクンリメンタル検索を使う
naoya
16
6.9k
20230227-engineer-type-talk.pdf
naoya
91
87k
関数型プログラミングと型システムのメンタルモデル
naoya
64
110k
TypeScript による GraphQL バックエンド開発
naoya
29
38k
Other Decks in Technology
See All in Technology
今こそ知りたいAmplifyGen2
mkdev10
2
160
「事実」を「計測」して、「解釈」する 〜AWS Lambdaのメモリ最適解の見つけ方〜
maimyyym
0
130
3つのアプローチで目指す チームを強くするAI駆動開発
thkt
0
150
夫婦で子育てするための育児標準化
codmoninc
PRO
0
140
V8のArray.prototype.flatを最大約20倍速くするまでと、巨大OSSへの大規模コミットの道のり
riyaamemiya
0
200
大型犬好きによるPugの紹介
yamanoku
1
110
Jetson Orin Nanoとk3sとローカルLLMで音声文字起こしシステム作ってみた
y_sera15
0
120
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
690
AI時代に必要な脅威モデリング― 変化の速度に負けない理解とリスク判断
masakane55
5
1.3k
LLM機能を自作して分かるSnowflake Cortex AIの強み
nayuts
0
350
実践!Cloud Run ハンズオン!! / Cloud Run handson
y0hgi
0
180
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.7k
Featured
See All Featured
Thoughts on Productivity
jonyablonski
76
5.4k
Paper Plane (Part 1)
katiecoart
PRO
2
11k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.3k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
570
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
580
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
sira's awesome portfolio website redesign presentation
elsirapls
0
450
Visualization
eitanlees
153
17k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
560
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
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ࢄγεςϜશൠʹӨڹΛ༩͑ΔτϨ ϯυ ͱݸਓతʹ༧͍ͯ͠·͢ɻ