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
Infrastructure as Code
Search
Naoya Ito
July 07, 2016
Technology
31
12k
Infrastructure as Code
Naoya Ito
July 07, 2016
Tweet
Share
More Decks by Naoya Ito
See All by Naoya Ito
Functional TypeScript
naoya
13
5.8k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
65
30k
シェルの履歴とイクンリメンタル検索を使う
naoya
8
3.1k
20230227-engineer-type-talk.pdf
naoya
89
71k
関数型プログラミングと型システムのメンタルモデル
naoya
61
94k
TypeScript による GraphQL バックエンド開発
naoya
28
31k
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
naoya
66
24k
「問題から目を背けず取り組む」 一休の開発チームが6年間で学んだこと
naoya
144
58k
一休の現在と、ここまでの道のり
naoya
90
41k
Other Decks in Technology
See All in Technology
速くて安いWebサイトを作る
nishiharatsubasa
10
12k
2025-02-21 ゆるSRE勉強会 Enhancing SRE Using AI
yoshiiryo1
1
160
SA Night #2 FinatextのSA思想/SA Night #2 Finatext session
satoshiimai
1
140
Classmethod AI Talks(CATs) #16 司会進行スライド(2025.02.12) / classmethod-ai-talks-aka-cats_moderator-slides_vol16_2025-02-12
shinyaa31
0
100
Larkご案内資料
customercloud
PRO
0
650
Oracle Cloud Infrastructure:2025年2月度サービス・アップデート
oracle4engineer
PRO
1
190
バックエンドエンジニアのためのフロントエンド入門 #devsumiC
panda_program
18
7.4k
クラウドサービス事業者におけるOSS
tagomoris
0
220
AndroidデバイスにFTPサーバを建立する
e10dokup
0
250
Tech Blogを書きやすい環境づくり
lycorptech_jp
PRO
1
240
関東Kaggler会LT: 人狼コンペとLLM量子化について
nejumi
3
570
インフラをつくるとはどういうことなのか、 あるいはPlatform Engineeringについて
nwiizo
5
2.5k
Featured
See All Featured
Bash Introduction
62gerente
611
210k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Building an army of robots
kneath
303
45k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
GraphQLとの向き合い方2022年版
quramy
44
13k
A better future with KSS
kneath
238
17k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Practical Orchestrator
shlominoach
186
10k
GitHub's CSS Performance
jonrohan
1030
460k
For a Future-Friendly Web
brad_frost
176
9.5k
Transcript
*OGSBTUSVDUVSFBT$PEF /BPZB*UP גࣜձࣾҰٳ$50
ΞδΣϯμ • *OGSBTUSVDUVSFBT$PEF͕ੈͷதʹग़͖ͯͯ • ͲΜͳࢥߟɾࢼߦաఔ͕͋ͬͯ • ࠓͲ͏͍͏ঢ়گʹࢸ͍ͬͯΔͷ͔
• $'&OHJOF • 1VQQFU • $IFG • "OTJCMF
• $'&OHJOF • 1VQQFU • $IFG • "84౦ژϦʔδϣϯ • "OTJCMF
• ʰೖ$IFG4PMPʱग़൛
ೖ$IFG4PMPग़൛࣌ • ࠃͰඦنͷαʔόʔΛ࣋ͭҰ෦8FCاۀ͕1VQQFU$IFG • ʮ*OGSBTUSVDVUVSFBT$PEFʯ·ͩ·ͩ • *BB4ͷར༻͕ຊ֨Խ͠ɺαʔόʔ͕ΑΓಈతͳͷʹ
࣌ͷ*OGSBTUSVDUVSFBT$PEFͷظ • ΫϥυʹͳͬͯΑ͘࡞Γ͢͠ɺߏஙΛࣗಈԽ͍ͨ͠ • ൿͷλϨԽ͢ΔαʔόʔઃఆۀΛͲ͏ʹ͔͍ͨ͠
None
ؾ͕͍ͭͨ͜ͱ • ίʔυʹͳͬͨ͠ɺόʔδϣϯཧ͢Ε͍͍ • (JUΛ͏ͳΒ(JU)VC
Πϯϑϥ1VMM3FRVFTU͢Δ
ίʔυʹͯ͠ΈͨΒ͔ͬͨ • ΞϓϦέʔγϣϯ։ൃͰഓ͖ͬͯͨϓϥΫςΟεΛΠϯϑϥʹԠ༻Ͱ͖ ΔͷͰ • (JU(JU)VCΛओ࣠ʹͨ͠ܧଓతσϦόϦʔ
ςετॻ͚Δ 4FSWFSTQFD require 'spec_helper' describe package('httpd'), :if => os[:family]
== 'redhat' do it { should be_installed } end describe service('httpd'), :if => os[:family] == 'redhat' do it { should be_enabled } it { should be_running } end describe port(80) do it { should be_listening } end
$*Ͱ͖Δ
NBTUFSʹϚʔδͨ͠ΒσϓϩΠɺͰ͖Δ 『インフラの継続的デリバリー』 h#p://d.hatena.ne.jp/naoya/20140821/1408577976
*OGSBTUSVDUVSFBT$PEFͷ࠶ൃݟ • ࣗಈԽίʔυԽ͕ୡ͍ͨ͠తͰͳ͔ͬͨ – ͦΕ$POpHVSBUJPOBT$PEFΒ͍͠ • 5IPVHIU8PSLTTBZT5IJTJTOPUTJNQMZXSJUJOHTDSJQUT CVUJOWPMWFT VTJOHUFTUFEBOEQSPWFOTPGUXBSFEFWFMPQNFOUQSBDUJDFTUIBUBSF BMSFBEZCFJOHVTFEJOBQQMJDBUJPOEFWFMPQNFOU
IUUQTXXXUIPVHIUXPSLTDPNJOTJHIUTCMPHJOGSBTUSVDUVSFDPEFSFBTPOTNJMF
'PXMFSઌੜͷϓϥΫςΟε • 6TF%FpOJUJPO'JMFT • 4FMGEPDVNFOUFETZTUFNTBOEQSPDFTTFT • 7FSTJPOBMMUIFUIJOHT • $POUJOVPVTMZUFTUTZTUFNTBOEQSPDFTTFT •
4NBMMDIBOHFTSBUIFSUIBOCBUDIFT • ,FFQTFSWJDFTBWBJMBCMFDPOUJOVPVTMZ h#p://mar;nfowler.com/bliki/InfrastructureAsCode.html
Ϋϥυͱ*OGSBTUSVDUVSFBT$PEF • Ϋϥυ࣌ʹͳͬͯΠϯϑϥ͕ಈతʹͳͬͨ – ʮΠϯϑϥετϥΫνϟʯ͕ιϑτΣΞʹΑͬͯநԽ͞Εͨ • ಈతͳΠϯϑϥΛίϯτϩʔϧ͢Δͷʹɺ*OGSBTUSVDUVSFBT$PEFͷϓϥ ΫςΟε૬ੑͷྑ͍ղͩͬͨ
͜ͷύλʔϯ͕Ԡ༻Ͱ͖Δͷαʔόʔ͚ͩͳͷ͔ • ࣅͨΑ͏ͳύλʔϯ͕αʔόʔҎ֎ʹݟͯऔΕΔ • XJOFCBSSFMSPBEXPSLFS – "843PVUFͷઃఆΛએݴతͳ3VCZ%4-Ͱఆٛద༻Ͱ͖Δπʔϧ • %/4ઃఆΛܧଓతσϦόϦʔ
– %/4Ϩίʔυͷ3VCZ%4-Λ(JU)VCͰཧ – 1VMM3FRVFTUܖػʹςετ ESZSVO Λ࣮ߦ – NBTUFSʹϚʔδͨ͠Β3PVUFʹө͢Δ
%/4ઃఆΛ(JU)VCͰཧ͠
1VMM3FRVFTUͯ͠$*ϨϏϡʔ
NBTUFSʹϚʔδ͢Δͱ%/4ө
͜Εԡ͢ɻҎ্ มߋөΛ(JU)VCͷϚʔδϘλϯʹू
Ͳ͏ͨ͠ΒՄೳʹ ŋŋŋ3FQSPEVDJCMF#VJME • 3FQSPEVDJCMF#VJME Ϗϧυͷ࠶ݱՄೳੑ ॏཁ – ίʔυԽɺࣗಈԽŋŋŋΑΓ3FQSPEVDJCMF͔Ͳ͏͔ – खॱͰͳ͋͘Δ͖ঢ়ଶΛهड़
એݴత ɻ࣮ߦ݁Ռႈ • 3FQSPEVDJCMFͳΒϏϧυͯ͠ςετͯ͠σϓϩΠ͕Մೳʹ • ͦΕΛୡ͢ΔͨΊͷํ๏͕$POpHVSBUJPOBT$PEFͰ͋Γɺએݴతͳ $POpHVSBUJPONBOBHFNFOUUPPM – %PDLFSͦͷ΄͔ಉ͡ߟ͑ํ – ΞϓϦέʔγϣϯ։ൃͷੈքͰ5IF5XFMFWF'BDUPS"QQʹ͋ΔϓϥΫςΟε
3FQSPEVDJCMF#VJME • $POpHVSBUJPO.BOBHFNFOU5PPM 1VQQFU $IFG "OTJCMF – αʔόʔߏΛ3FQSPEVDJCMFʹ •
SPBEXBMLFS – %/4ઃఆΛ3FQSPEVDJCMFʹ • 5FSSBGPSN – "84.BOBHFNFOU$POTPMF্ͰͷϙνϙνۀΛ3FQSPEVDJCMFʹ • %PDLFS$PNQPTF – %PDLFSίϯςφؒͷґଘؔΛ3FQSPEVDJCMFʹ
ŋŋŋͱ͍͏Θ͚Ͱ • ʮ*OGSBTUSVDUVSFBT$PEFιϑτΣΞ։ൃͷϓϥΫςΟεΛΠϯϑϥ ʹద༻͢ΔΜͩʯ • ͱ͍͏จ຺Ͱ·ͬͯɺΘΓͱड͚ೖΕΒΕ͍ͯΔͷ͕ݱঢ়
ͰɺͦΕͰྑ͔ͬͨͷ͔ • ίʔυʹ͢ΔͷखॱԽͷͨΊ͚ͩͳ͍ˠಉҙ • ιϑτΣΞ։ൃͷϓϥΫςΟεΛʙˠಉҙ • Ϋϥυ࣌ͷΠϯϑϥཧʹద͍ͯ͠Δˠಉҙ • Ҏ্Ͱ͢ˠ͑ͬ
• ʮߏஙखॱΛίʔυԽʯ͢ΔΜ͡Όͳ͍ • ΠϯϑϥετϥΫνϟΛϞσϦϯά͢ΔΜͩ – ͜Ε͕*OGSBTUSVDUVSFBT$PEFͷຊջͩͱࢥ͍ͬͯͨ
ෳࡶੑʹཱ͔ͪ͏ʹŋŋŋ • ιϑτΣΞ։ൃͷෳࡶੑʹର͢Δ࠷ॏཁͳϓϥΫςΟεϞσϦϯάͰͳ͍ ͷ͔ • ۀΛͦͷ··γεςϜʹམͱ͢ͷͰͳ͘ɺϞσϦϯά͢Δ͜ͱͰॳΊͯγες ϜΛۀʹઓུతʹ׆͔ͤΔͷͰͳ͔ͬͨͷ͔ •
ͦͷ*OGSBTUSVDUVSFBT$PEFɺޙɺෛ࠴ʹͳͬͯͳ͍
"OTJCMFWT$IFGͱ͔ŋŋŋ • Ͳ͏Ͱ͍͍ • ʮΤʔδΣϯτΛΠϯετʔϧ͠ͳ͍͍ͯ͘ ŝžŕʯ – ͦΜͳͷೖΕΕ͍͍͚ͩͩΖϝϯςͯ͘͠ͷʹΠϯετʔϧͷख͕ؒল͚ ͔ͨΒͬͯԿ͕خ͍͠Μͩ •
ͲͪΒ͕ʮΑΓ༏ΕͨϞσϦϯάΛఏҊ͢Δʯͷͳͷ͔ • ͲͪΒ͕ΑΓɺݱγεςϜͷϞσϦϯάཁٻਫ४ʹద͍ͯ͠Δͷ͔
ʮΠϯϑϥͷϞσϦϯάʯ͕ٞΜʹͳΔ͔ • ŋŋŋͳΒͳͦ͏ • ࣮ફதͷΤϯδχΞͷظͦ͜ʹͳͦ͞͏ • Ή͠ΖίϯςφͦͷଞͰίʔυͰཧ͖͢ରΛͳΔ͘ݮΒ͢ର Λখ͘͢͞Δ͜ͱͰෛ࠴ԽΛආ͚Δ
– ʮ%PDLFSpMFͰ͍͍ʯΈ͍ͨͳػӡ – ڊେͳ$IFGDPPLCPPLϨϙδτϦͱ͔୭ݟͨ͘ͳͦ͞͏ – *OGSBTUSVDUVSFBT$PEFͷϓϥΫςΟεͷ࣮ફྖҬ૿ͭͭ͠ɺίʔυԽରׂ౷ ࣏
·ͱΊ • ͋Δ͖࢟Λίʔυʹ͢ΔɺࣗಈԽ͢Δ͚ͩͰͳ͍ • ຊ࣭ιϑτΣΞ։ൃͷϓϥΫςΟεͷద༻ɺΒ͍͠ • 3FQSPEVDJCMF#VJMEॏཁ • ʮϞσϦϯάʯͷظ͋·Γߴ͘ͳΒͳ͔ͬͨ •
ΑΓখׂ͘͞͠ɺΑΓཧ͠ͳ͍ํʹΉ͔ͬͯ͘ŋŋŋͷ͔
ΤϯδχΞืूத