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 #jawsdays
Search
Naoya Ito
March 15, 2014
Technology
76
16k
Immutable Infrastructure #jawsdays
Naoya Ito
March 15, 2014
Tweet
Share
More Decks by Naoya Ito
See All by Naoya Ito
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
20
6.2k
Functional TypeScript
naoya
15
6.4k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
72
35k
シェルの履歴とイクンリメンタル検索を使う
naoya
16
6.2k
20230227-engineer-type-talk.pdf
naoya
89
77k
関数型プログラミングと型システムのメンタルモデル
naoya
62
110k
TypeScript による GraphQL バックエンド開発
naoya
29
36k
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
naoya
67
24k
「問題から目を背けず取り組む」 一休の開発チームが6年間で学んだこと
naoya
144
60k
Other Decks in Technology
See All in Technology
Snowflake Intelligenceにはこうやって立ち向かう!クラシルが考えるAI Readyなデータ基盤と活用のためのDataOps
gappy50
0
280
現場で効くClaude Code ─ 最新動向と企業導入
takaakikakei
1
260
要件定義・デザインフェーズでもAIを活用して、コミュニケーションの密度を高める
kazukihayase
0
120
Snowflake Intelligence × Document AIで“使いにくいデータ”を“使えるデータ”に
kevinrobot34
1
120
AIエージェントで90秒の広告動画を制作!台本・音声・映像・編集をつなぐAWS最新アーキテクチャの実践
nasuvitz
3
350
IoT x エッジAI - リアルタイ ムAI活用のPoCを今すぐ始め る方法 -
niizawat
0
120
開発者を支える Internal Developer Portal のイマとコレカラ / To-day and To-morrow of Internal Developer Portals: Supporting Developers
aoto
PRO
1
480
TS-S205_昨年対比2倍以上の機能追加を実現するデータ基盤プロジェクトでのAI活用について
kaz3284
1
220
20250912_RPALT_データを集める→とっ散らかる問題_Obsidian紹介
ratsbane666
0
100
Android Audio: Beyond Winning On It
atsushieno
0
2.4k
[ JAWS-UG 東京 CommunityBuilders Night #2 ]SlackとAmazon Q Developerで 運用効率化を模索する
sh_fk2
3
460
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
190
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.8k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Scaling GitHub
holman
463
140k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
GitHub's CSS Performance
jonrohan
1032
460k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
Transcript
*NNVUBCMF *OGSBTUSVDUVSF !OBPZB@JUP +"84%":4
*NNVUBCMF*OGSBTUSVDUVSF • %JTQPTBCMF$PNQPOFOUT • ෆมͳɺঢ়ଶΛ࣋ͨͳ͍ɺഇغՄೳͳ
αʔόʔͷঢ়ଶ • ͋Δೲ͞Εͨ3BJMTαʔόʔ – 9݄9ʹ%/4ΩϟογϡΛઃఆͨ͠ – :݄:ʹϓϩηεΛνϡʔχϯάͨ͠ – ;݄;ʹSVCZͷόʔδϣϯΛ্͛ͨ –
ŋŋŋ ͍Ζ͍Ζ܁Γฦ͠ • ͜ͷαʔόʔʹৼΓʹ3BJMTΞϓϦΛσϓϩ Π – Ռͨͯ͠σϓϩΠਖ਼͘͠ऴΘΔͷ͔
αʔόʔͷঢ়ଶΛཧ͢Δ • खॱॻ • ࣗಈԽ • αʔόʔཧσʔλϕʔε
• $IFG 1VQQFU
ঢ়ଶཧ͕໘ͳΒɺঢ়ଶΛ ཧ͠ͳ͚Εྑ͍͡Όͳ͍
h"p://chadfowler.com/blog/2013/06/23/immutable-‐deployments/
#MVF(SFFO%FQMPZNFOU
)FSPLV )FSPLVHJUQVTI͢Δຖɺ৽͍͠ڥ ίϯςφ Λ࡞Γɺݹ͍ڥΛغͯΔ
5SBWJT$* 5SBWJT$*ςετΛ࣮ߦ͢ΔͨͼɺίϯςφΛ࡞ΓऴΘͬͨΒغͯΔ
࣌ؒʹ ճσϓϩΠ h"p://www.publickey1.jp/blog/12/amazon11000_aws_reinventday2_am.html
*NNVUBCMF*OGSBTUSVDUVSF Λࢧ͑Δٕज़ • ίϯςφ – -JOVYͳΒ-9$ͳͲ • ίϯςφΛӡ༻͢Δपล࣮ – FH%PDLFS
*NNVUBCMF*OGSBTUVSDUVSF ʹࢸΔܦҢ • ԾԽ • Ϋϥυ • *OGSBTUSVDUVSFBT$PEF – "VUPNBUFE*OGSBTUSVDUVSF •
*NNVUBCMF*OGSBTUSVDUVSF
*OGSBTUSVDUVSFBT$PEF
None
$POpHSBUJPO.BOBHFNFOU5PPM • αʔόʔͷঢ়ଶΛཧ͢Δͷ໘ • खͰΔͱ҉Խ • खॱॻʹ͢ͱखॱॻ͕ݹ͘ͳΔ • ʮαʔόʔͷঢ়ଶʯΛίʔυʹ͢Δ – $IFG1VQQFU"OTJCMF
None
ঢ়ଶ͕ίʔυʹͳΕ͋Δ͖ঢ় ଶͷऩଋࣗಈԽͰ͖Δ
ΠϯελϯεϓϩάϥϚϒϧʹ
$ vagrant init $ vagrant up
WBHSBOUVQ
ͱ͜ΖͰɺ%FW0QT
ΫϥυʹΑͬͯ Ұؾʹਐาͨ͠
*OGSBTUSVDUVSFBT$PEF • ΫϥυͰԾԽڥ͕ͨΓલʹͳͬ ͨ • ϋʔυΛιϑτΣΞͱͯ͠ѻ͑ΔͳΒɺ ͳΜͰίʔυͰهड़͠Α͏ • αʔόʔͷঢ়ଶίʔυͰهड़ •
݁ՌతʹɺࣗಈԽͳͲͷԸܙʹ༩Δ
αʔόʔཧNFFUT(JU • ʮαʔόʔͷঢ়ଶ͕ͯ͢ίʔυͰهड़Ͱ ͖ͨͳΒɺ(JUͰཧ͢Εྑ͍͡Όͳ ͍ʯ
ΠϯϑϥΛόʔδϣϯཧ
ΠϯϑϥNFFUT(JUIVC ΠϯϑϥQVMMSFRVFTUɺίʔυϨϏϡʔ
ΠϯϑϥΛςετŋŋŋTFSWFSTQFD
ΠϯϑϥΛ$* HJUQVTIͷͨͼɺ7BHSBOUͰ&$ΠϯελϯεΛ࡞Γ$IFGΛద༻͠TFSWFSTQFDͰςετ
มߋͷͨͼɺಈ࡞Λอূ͢Δ QVMMSFRVFTUʹ DPNNJUΛॏͶΔ ɺ$*͕ςετ݁ ՌΛڭ͑ͯ͘ΕΔ
*OGSBTUSVDUVSFBT$PEFͷຊ࣭ • αʔόʔΠϯϑϥΛಈతʹѻ͏ • ΞϓϦέʔγϣϯ։ൃͷϫʔΫϑϩʔΛ Πϯϑϥͷੈքʹ࣋ͪࠐΊΔ – ࣗಈԽ*OGSBTUSVDUVSFBT$PEFͷԸܙ ͷҰ෦ʹ͗͢ͳ͍ – όʔδϣϯཧ – ίʔυϨϏϡʔ
– ςετ – $* – (JUIVC
*NNVUBCMF *OGSBTUSVDUVSF
ႈੑ • ͋Δૢ࡞ΛԿճߦͬͯ݁Ռ͕ಉ͜͡ͱ – ྫ$IFGΛԿద༻ͯ͠ಉ͡ঢ়ଶʹऩଋ • ႈੑ͕֬อͰ͖ͳ͍αʔόʔѻ͍ͮΒ ͍ – ৽͍͠ΠϯελϯεΛՃ͢Δʹ͋ͨͬͯɺଞ ͷΠϯελϯεͱҟͳΔͷ͕Ͱ͖ͯࠔΔ
ႈੑͷ֬อ • ਅͬ৽ͳαʔόʔͰɺத్ͳঢ়ଶͷ αʔόʔͰ$IFGΛద༻ͨ͠Βಉ͡ʹ ͳΔΑ͏ʹ͢Δ – ΠϯετʔϧࡁΈͷιϑτΣΞ͕ɺ$IFGΛ ద༻ͨ͠Βҙਤͤͣόʔδϣϯ͕উखʹ্ ͕ͬͨɺͳͲΛආ͚Δඞཁ – ͍͠Ͱͳ͍ େ෦Λ$IFG͕໘Έ
ͯ͘ΕΔ
αʔόʔͷঢ়ଶΛߟྀ͢Δ • αʔόʔͷঢ়ଶΛཧ͢Δલఏʹཱ͔ͭΒɺ ໘͝ͱ͕૿͑Δ – ႈੑͷ֬อ – ͲͷαʔόʔʹԿ͕ೖͬͯΔ͔ – ͢Ͱʹಈ͍͍ͯΔΞϓϦέʔγϣϯͷΞοϓ άϨʔυ – ແఀࢭͰͷΞϓϦέʔγϣϯαʔόʔͷ࠶ى
ಈ
*NNVUBCMF*OGSBTUSVDUVSF • ڥ 㲈αʔόʔ ͷঢ়ଶཧΛΊΔ – ඞཁʹͳͬͨΒڥΛ৽نʹͭ͘Δ – Ұ࡞Γऴ͑ͨڥɺҎ߱มߋ͠ͳ͍ • 4UBUFMFTTͷ੍
࠶ܝ#MVF(SFFO%FQMPZNFOU
*NNVUBCMF*OGSBTUSVDUVSF ࣮ݱʹඞཁͳ͜ͱ • *OGSBTUSVDUVSFBT$PEFલఏ݅ – ߏ͕ಈతͰͳ͚Εɺ*NNVUBCMF *OGSBTUSVDUVSFͷརεϙΠϧ͞ΕΔ • ৽͍͠ڥΛΦϯσϚϯυͰଈ࠲ʹੜ Ͱ͖Δٕज़ – 7.ΑΓɺίϯςφ
%PDLFS
%PDLFS • -JOVYίϯςφΛखܰͭϓϩάϥϚϒϧ ʹѻ͑ΔΑ͏ʹ͢Δ – ͔Β-9$ʹґଘ͠ͳ͘͢Βͳͬͨ • ίϯςφΠϝʔδΛઌʹ࡞͓͍ͯͯ͠ɺ ͔ͦ͜ΒίϯςφΛॠ࣌ʹ࡞Γग़͢
%PDLFSͷయܕతϢʔεέʔε • +FOLJOT %PDLFS • %PLLVɺ'MZOO h"p://www.slideshare.net/techblogyahoo/jenkins-‐withdocker-‐131220
*NNVUBCMF*OGSBTUSVDUVSFͱ ΞϓϦέʔγϣϯͷϙʔλϏϦςΟ • %JTQPTBCMFͳڥΛલఏʹ͢ΔͱɺΞϓϦ έʔγϣϯͷ࠶ݱՄೳੑ͕ཁٻ͞ΕΔ – ݁ՌతʹΞϓϦέʔγϣϯ͕ϙʔλϒϧʹͳΔ h"p://www.slideshare.net/dotCloud/docker-‐intro-‐november
ྫ͑)FSPLV • 3VCZΞϓϦέʔγϣϯ – #VOEMFSͰHFNΛྻڍ͠ – 3BDLͰಈ͔͠ – 'PSFNBOͰ੍ޚ͢Δɺͱ͍͏ͷ͕ʮඞਢʯ • /PEFKT – OQNɺQBDLBHFKTPO •
#VJMEQBDLT
ΞϓϦέʔγϣϯ͕ϙʔλϒϧʹͳΔͱ • ΞϓϦέʔγϣϯͷަ͕θϩίϯϑΟά ʹۙͮ͘ – ʮ˓˓ͱººͱ˚˚ΛೖΕͯ͋Εͯ͜͠͏͠ ͯŋŋŋʯ͔Βʮ͜ͷHJU63-ΛQVTIͯ͠ʯ • *NNVUBCMFͰ͋Δ੍͕ͨΒ͢ޮՌ – εςʔτϨεͳ8FCͱ63*ͷͨΒ੍͢ʹ Α͘ࣅͨ
– εςʔτϨεɺͭ63*͕͋Δ͔Βɺ63*Λ ͚ͩ͢ͰϦιʔεΛଞਓͱަͰ͖Δ
"UMBTTJBO+*3" %PDLFS • HJUDMPOFͯ͠EPDLFSʹಥͬࠐΉ͚ͩͰಈ͘ • ϩʔΧϧ͚ͩͰͳ͘ɺ%PDLFSΛαϙʔτ͍ͯ͠ΔΫϥυαʔϏεͰ ಉ༷ – ະݕূͰ͕͢ɺ%JHJUBM0DFBO($&ͳͲ $
git clone
[email protected]
:docker-‐atlassian/jira.git $ docker build -‐t naoya/jira jira $ docker run -‐p 49080:8080 -‐d naoya/jira
ίϯςφϕʔεͷσϓϩΠ • ैདྷͷσϓϩΠͰ͋Γ͕ͪͳ͜ͱ – طଘͷڥʹDBQEFQMPZͨ͠ΒEFQMPZ͕ HFN͕Ͳ͏ͱ͔Ͱࣦഊͨ͠ – ຊ൪ڥʹҠͨ͠Βಈ͔ͳ͘ͳͬͨ • ্ॻ͖σϓϩΠ͔Βɺίϯςφϕʔεͷσϓ
ϩΠ – )FSPLVͷΑ͏ͳ – #MVF(SFFO%FQMPZNFOU – %PDLFSͷϙʔλϏϦςΟΛ׆͔ͨ͢Ίʹ • ϩΧʔϧͰಈ͍ͨͷΛͦͷ··ຊ൪͍࣋ͬͯ͘
2VJQQFSࣾͷࣄྫ • GFBUVSFCSBODIͷQVTIͷͨͼɺ)FSPLVͰΞϓϦέʔγϣϯ Λ࡞Δ • ඇ։ൃऀͱ63-Λަͯ͠ɺ࣮ڥͰ͙͢ʹϨϏϡʔͰ͖Δ • *OGSBTUSVDUVSFBT$PEF*NNVUBCMF*OGSBTUSVDUVSFͰಈతɾ ϙʔλϒϧʹͳ͍ͬͯ͘ͱɺ͜͏͍͏͜ͱ͕Մೳʹͳ͍ͬͯ͘ͱ͍͏ ྑ͍ࣄྫ
h"p://blog.madoro.org/mn/93
*NNVUBCMF*OGSBTUSVDUVSFͷ՝ • ίϯςφ%PDLFS͚ͩͰΓͳ͍ – $MPVE'PVOESZ 0QFO1BB4 ͷΞʔΩςΫνϟΛݟΑ • εςʔτϑϧͳαʔόʔΛͲ͏͢Δ͔ –
ྫετϨʔδɺΩϟογϡ – ݱঢ়ͯ͢εςʔτϨεʹ͖͢ɺͱ͍͏Ͱͳ͍ɻεςʔτϨεͰ͋Δ͖Օ ॴ ΞϓϦέʔγϣϯαʔόʔ Λ*NNVUBCMFʹ – εςʔτϑϧͳͷΛ֎ʹಀ͕࣮͢ŋŋŋqVFOUEͳͲ h"p://www.publickey1.jp/blog/11/paascloud_foundry.html
*NNVUBCMF*OGSBTUSVDUVSF ͷݱࡏ • ͍Ζ͍Ζඞཁͳ෦͕࡞ΒΕ͍ͯΔ – %PDLFSɺNFTPTEPDLFSɺTFSG • ʮ1SJWBUFͳ1BB4͕ཉ͍͠ʯͰͳ͘ʮطଘ ΠϯϑϥͷҰ෦Λಈతʹ͍ͨ͠ʯͱ͍͏Ϣʔ βʔ͕͍ͯ͠Δ
• ϢʔβʔίϯςφϕʔεͷσϓϩΠͷརӹΛ ମײ࢝͠Ί͍ͯΔ – େ͖ͳྲྀΕͱͯ͠ɺ͜Ε͔ΒͷσϓϩΠΞʔΩςΫ νϟίϯςφϕʔεʹมΘ͍ͬͯ͘Մೳੑ͕ߴ͍
*NNVUBCMF*OGSBTUSVDUVSF ͱ$IFG1VQQFU"OTJCMF • *NNVUBCMF*OGSBTUSVDUVSFʹΑͬͯɺ ඞཁͳ͘ͳΔ – ͍͍͑ – *OGSBTUSVDUVSFBT$PEFͷຊ࣭ࣗಈԽ ঢ়ଶཧ͚ͩͰͳ͍ – *NNVUBCMFʹͳͬͯඞཁͳ͘ͳͬͨՕॴ͕
ΒΕ͍ͯ͘PSͦΕʹϑΟοτͨ͠ಓ۩͕ ੜ·ΕΔ
͜Ε͔Β • *NNVUBCMF*OGSBTUSVDUVSFʹΑͬͯɺ ࠓ·Ͱݻఆతͩͱߟ͍͑ͯͨίϯϙʔωϯ τ͕ಈతɾΦϯβϑϥΠʹͳ͍ͬͯ͘ • ࡢࠓͷαʔόʔΠϯϑϥύϥμΠϜͷू େͱͯ͠ͷ*NNVUBCMF *OGSBTUSVDUVSF – ͍Ζ͍Ζͳ֓೦ɺ࣮͕͜ͷߟ͑ํʹू͞
Ε͍ͯ͘