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.8k
Immutable Infrastructure / これからのWeb, クラウドシステム
Naoya Ito
September 12, 2014
Tweet
Share
More Decks by Naoya Ito
See All by Naoya Ito
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
7
1.8k
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
21
7.2k
Functional TypeScript
naoya
18
6.6k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
75
37k
シェルの履歴とイクンリメンタル検索を使う
naoya
16
6.5k
20230227-engineer-type-talk.pdf
naoya
91
81k
関数型プログラミングと型システムのメンタルモデル
naoya
63
110k
TypeScript による GraphQL バックエンド開発
naoya
29
36k
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
naoya
67
24k
Other Decks in Technology
See All in Technology
さくらのクラウド開発ふりかえり2025
kazeburo
2
1.2k
MySQLとPostgreSQLのコレーション / Collation of MySQL and PostgreSQL
tmtms
1
1.3k
_第4回__AIxIoTビジネス共創ラボ紹介資料_20251203.pdf
iotcomjpadmin
0
140
"人"が頑張るAI駆動開発
yokomachi
1
620
Introduce marp-ai-slide-generator
itarutomy
0
130
AWSの新機能をフル活用した「re:Inventエージェント」開発秘話
minorun365
2
470
MySQLのSpatial(GIS)機能をもっと充実させたい ~ MyNA望年会2025LT
sakaik
0
130
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
2
200
日本の AI 開発と世界の潮流 / GenAI Development in Japan
hariby
1
500
ハッカソンから社内プロダクトへ AIエージェント「ko☆shi」開発で学んだ4つの重要要素
sonoda_mj
6
1.7k
たまに起きる外部サービスの障害に備えたり備えなかったりする話
egmc
0
420
Connection-based OAuthから学ぶOAuth for AI Agents
flatt_security
0
390
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Google's AI Overviews - The New Search
badams
0
870
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Faster Mobile Websites
deanohume
310
31k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
78
Reality Check: Gamification 10 Years Later
codingconduct
0
1.9k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
350
The World Runs on Bad Software
bkeepers
PRO
72
12k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
31
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ࢄγεςϜશൠʹӨڹΛ༩͑ΔτϨ ϯυ ͱݸਓతʹ༧͍ͯ͠·͢ɻ