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 #jawsdays
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Naoya Ito
March 15, 2014
Technology
17k
76
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Immutable Infrastructure #jawsdays
Naoya Ito
March 15, 2014
More Decks by Naoya Ito
See All by Naoya Ito
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
4.3k
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
13
4.7k
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
21
8k
Functional TypeScript
naoya
19
6.9k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
77
38k
シェルの履歴とイクンリメンタル検索を使う
naoya
16
6.8k
20230227-engineer-type-talk.pdf
naoya
91
87k
関数型プログラミングと型システムのメンタルモデル
naoya
63
110k
TypeScript による GraphQL バックエンド開発
naoya
29
38k
Other Decks in Technology
See All in Technology
SREは、MCPとAutopilotをこう使え!
kazumax55
3
910
Cloudflare Workers 向けアプリを C# で構築する ~WASM Native AOT への道~
nenonaninu
1
550
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
12k
AIによるクリエイティブ生成を行う上での試行錯誤
plaidtech
PRO
0
160
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
1
2.4k
開発投資の期待値を上げるプロダクトロードマップづくり ~プロダクトエンジニアが越境して事業を伸ばす~
kekekenta
1
220
.NET WebAssemblyで実現するクライアントサイドAI推論:NuGetからViteまで、2つのエコシステムを繋ぐビルド戦略
yamachu
0
250
え、こんなに早く改修できるの?──新人エンジニアとスクラムマスターの2人が語る、AI×アジャイル開発の現場
ysasago
2
530
GoのInterface内部構造から学ぶ!最高パフォーマンスを出すコード設計
yappli_developers
0
200
beyond jj: config & tools ecosystem
indirect
0
5.4k
HHKBエバンジェリストになる方法
941
0
110
Deployment の 先にある AI Agent 基盤 - kagent vNext、Agent Substrate、Hermes から読み解く Agent Runtime の現在地 / k8s-matsuri-2-ai-agent-platform-amsy810
masayaaoyama
4
680
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
41
2.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
The Invisible Side of Design
smashingmag
301
52k
Code Review Best Practice
trishagee
74
20k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
530
Visualization
eitanlees
152
17k
Darren the Foodie - Storyboard
khoart
PRO
4
3.9k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
410
First, design no harm
axbom
PRO
2
1.3k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
730
Claude Code のすすめ
schroneko
67
230k
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 – ͍Ζ͍Ζͳ֓೦ɺ࣮͕͜ͷߟ͑ํʹू͞
Ε͍ͯ͘