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 at Codenize Meetup
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Gosuke Miyashita
December 08, 2016
Technology
5k
10
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Infrastructure as Code at Codenize Meetup
Gosuke Miyashita
December 08, 2016
More Decks by Gosuke Miyashita
See All by Gosuke Miyashita
なぜインフラコードのモジュール化は難しいのか - アプリケーションコードとの本質的な違いから考える
mizzy
72
37k
Serverspec(をつくった自分)のそれまでとその後
mizzy
9
3.4k
A method for separating policy definition and behavior control by an intermediate language to achieve optimal server configuration management according to the situation
mizzy
3
320
Past and future of Infrastructure as Code
mizzy
0
380
Configuration Managementツールのポリシー定義用中間言語に関する考察/Considerations about an intermediate language of configuration management tools
mizzy
0
540
Infrastructure as Codeのこれまでとこれから/Infra Study Meetup #1
mizzy
28
13k
エンジニアかつ研究者としての今後のキャリアについて/My Career As An Engineer And A Researcher
mizzy
0
470
Compare OCI Runtimes
mizzy
2
1.7k
Serverspec and OSS at IEICE Society Conference 2018
mizzy
2
390
Other Decks in Technology
See All in Technology
GopherCon @シアトル に行ってきました
logica0419
0
320
形式手法特論:Hyperproperty とモデル検査 #kernelvm / Kernel VM Study Tokyo 19th
ytaka23
0
850
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
20k
[ホンマでっか SRE] あなたはなぜ SRE に?
_awache
0
280
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
5k
サービス内で複数のOP・ASを連鎖させる(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
320
VPCでもFloatingIPを使いたいんだ
y_kotani
1
110
AI時代のアウトプット――変わったこと、変わらないこと / Devsumi 2026 Kansai #devsumi
jnchito
0
600
全社に広がるMCPサーバーを、 どう安全に管理するか MCPass開発の舞台裏
mtpooh
2
150
どんな手を使っても絶対間に合わせるスケジューラ
asari194617
0
1.5k
『自分で判断できるか』を基準に、プロダクトのハンズオン研修でAI利用の線を引いてみた / Where We Drew the Line on AI in Hands-on Training
honyanya
0
330
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
77k
Featured
See All Featured
How to Talk to Developers About Accessibility
jct
2
530
Optimizing for Happiness
mojombo
378
71k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
300
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
WCS-LA-2024
lcolladotor
0
810
We Are The Robots
honzajavorek
0
310
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
500
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
970
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
490
Transcript
Infrastructure as Codeͱ Կ͔ͦͯ͠ԿͰ͋Δ͖͔ Codenize Meetup 2016/12/08 1
ࣗݾհ • ٶԼ ߶ี (mizzy@github, gosukenator@twitter) • ߹ಉձࣾServerspec Operationsද •
גࣜձࣾϦΫϧʔτςΫϊϩδʔζATLٕज़ސ • ઍגࣜձٕࣾज़ސ • ϞϏϯΪגࣜձࣾ/גࣜձࣾDEPARTUREͷ͓ख͍ Codenize Meetup 2016/12/08 2
ࠓ͓͢͠Δ͜ͱ • Infrastructure as CodeͱԿ͔ • Infrastructure as Codeͳͥඞཁͳͷ͔ •
Infrastructure as Codeͷݪଇ • Infrastructure as CodeͷϓϥΫςΟε • ΞϯνϑϥδϟΠϧͱਓؒத৺ઃܭ Codenize Meetup 2016/12/08 3
Infrastructure as Code ͱԿ͔ Codenize Meetup 2016/12/08 4
Infrastructure as CodeͱԿ͔ • ༁͢Δͱʮίʔυͱͯ͠ͷΠϯϑϥʯ • ΠϯϑϥΛίʔυͰهड़͢Δ͜ͱ • ݴ༿͕ग़࢝Ίͨ࣌ʮࣗಈԽʯ͕য •
ݱࡏιϑτΣΞ։ൃͷϓϥΫςΟεΛΠϯϑϥཧʹ׆ ͔͢Ξϓϩʔνͱଊ͑ΒΕ͍ͯΔ Codenize Meetup 2016/12/08 5
ιϑτΣΞ։ൃͷϓϥΫςΟε • ίʔυϨϏϡʔ • GitHubϑϩʔ • ςετ • Continuous Integration/Continuous
Deployment • (ϞσϦϯά) Codenize Meetup 2016/12/08 6
Infrastructure as Code ͳͥඞཁͳͷ͔ Codenize Meetup 2016/12/08 7
ԾԽΫϥυͷൃలɾීٴ • μΠφϛοΫΠϯϑϥετϥΫνϟ • खܰʹΠϯϑϥ͕ߏஙͰ͖ΔΑ͏ʹͳͬͨ • ΠϯϑϥௐୡͷϦʔυλΠϜ͕ϘτϧωοΫͰͳ͘ͳͬͨ • ͜ΕΒʹΑΓ৽ͨͳΠϯϑϥཧ্ͷ͕ݦࡏԽͨ͠ Codenize
Meetup 2016/12/08 8
μΠφϛοΫΠϯϑϥετϥΫνϟʹΑΓݦࡏԽͨ͠ • αʔόʔεϓϩʔϧ • ߏυϦϑτ • εϊʔϑϨʔΫαʔόʔ • ੬ऑͳΠϯϑϥ •
Φʔτϝʔγϣϯڪා • γεςϜർ࿑ Codenize Meetup 2016/12/08 9
αʔόʔεϓϩʔϧ • sprawlʲsprɔ́ːlʳ: όϥόϥʹ͕Δɺແடংʹ͕Δ • αʔό͕؆୯ʹཱͯΒΕΔͷͰཧೳྗΛ͑ͯཚཱ • ઃఆมߋύονͯͷ࡞ۀʹΘΕΔ • ·ͨ์ஔ͞ΕΔ
• ඍົʹߏ/ઃఆ͕ҧ͏αʔό͕૿͑Δ → ߏυϦϑτ Codenize Meetup 2016/12/08 10
ߏυϦϑτ • ͕࣌ؒܦͭʹͭΕͯߏ/ઃఆͷࠩҧ͕ฆΕࠐΉ • ಛఆͷαʔό͚ͩҰ࣌తͳରԠͯ͠͠ΕΔ • ৬ਓʹΑΔख࡞ۀɺ͔͠ਓʹΑͬͯΓํҧ͏ • εϊʔϑϨʔΫαʔόΦʔτϝʔγϣϯڪාΛੜΈग़͢ Codenize
Meetup 2016/12/08 11
εϊʔϑϨʔΫαʔό • ଞͷαʔόͱߏ/ઃఆ͕ҟͳΔαʔό • εϊʔϑϨʔΫ ʹ ઇͷͻͱ͔͚Β • ࠶ݱ͢Δͷ͕͍͠ •
ߏ/ઃఆ͕Ѳ͖͠ΕͣΞϯλονϟϒϧʹ • εϊʔϑϨʔΫαʔόͷ૿৩ → ੬ऑͳΠϯϑϥ Codenize Meetup 2016/12/08 12
੬ऑͳΠϯϑϥ • εϊʔϑϨʔΫαʔό͕ຮԆͯ͠Πϯϑϥશମ͕੬ऑʹͳΔ • γεςϜશମ͕؆୯ʹյΕम෮ෆೳ Codenize Meetup 2016/12/08 13
Φʔτϝʔγϣϯڪා • εϊʔϑϨʔΫαʔό͕૿͑ΔͱɺࣗಈԽπʔϧ͕ͨΒ͢ ݁Ռ͕༧ଌෆೳʹͳΔ • ݁Ռͱͯ͠πʔϧ͕ेʹ׆͔ͤͳ͍ɺ͑ͳ͍ • ࣗಈԽʹΑΓΛղফΛͨͯ͘͠Ͱ͖ͳ͍ѱ॥ Codenize Meetup
2016/12/08 14
γεςϜർ࿑ • ݪจͰErosionʢਁ৯ɺ่յɺࢎḝͳͲʣ • Կ͠ͳͯ࣌ؒ͘ͷܦաͱͱʹγεςϜ͕յΕ͍ͯ͘ Codenize Meetup 2016/12/08 15
ݦࡏԽͨ͠·ͱΊ • αʔόʔεϓϩʔϧ • ߏυϦϑτ • εϊʔϑϨʔΫαʔόʔ • ੬ऑͳΠϯϑϥ •
Φʔτϝʔγϣϯڪා • γεςϜർ࿑ • ཁ͢ΔʹɺαʔόΛΜΜཱͯΒΕΔΑ͏ʹͳ͍ͬͨͤͰɺมߋཧ͕ഁ໓ͯ͠ γεςϜ͕ࢮ͵ Codenize Meetup 2016/12/08 16
ΠϯϑϥมߋͷϦʔυλΠϜ • ͦΕ·Ͱආ͚͍ϘτϧωοΫͱଊ͑ΒΕ͍ͯͨϦʔυλΠ Ϝ͕ϘτϧωοΫͰͳ͘ͳͬͨ • ϏδωεཁٻͷมԽʹΠϯϑϥଆਝʹରԠ͢Δඞཁੑ͕ ग़͖ͯͨ • ैདྷͷཧΞϓϩʔνͰ͜ͷʹ͍͍͚ͭͯͳ͍ Codenize
Meetup 2016/12/08 17
ͦ͜ͰInfrastructure as Code • μΠφϛοΫΠϯϑϥετϥΫνϟͷൃలɾීٴʹΑΓɺ৽ͨʹ ग़͖ͯͨΛղܾ͢ΔͨΊͷΞϓϩʔν͕Infrastructure as Code • ϏδωεཁٻͷมԽʹ͋ΘͤͯਝʹΠϯϑϥΛมߋ͢Δ
• ৽ͨʹݦࡏԽͨ͠มߋཧ্ͷΛղܾ͢Δ • ཁ͢Δʹʮมߋཧ͕༰қͳΠϯϑϥΛͭ͘ΔʯͨΊͷΞϓϩ ʔν͕Infrastructure as Code Codenize Meetup 2016/12/08 18
Infrastructure as Code ͷݪଇ Codenize Meetup 2016/12/08 19
Infrastructure as Codeͷݪଇ • ؆୯ʹ࠶ݱͰ͖ΔγεςϜ • ͍ࣺͯʹͰ͖ΔγεςϜ • ౷ҰతͳγεςϜ •
෮Մೳͳϓϩηε • มߋ͍͢͠σβΠϯ Codenize Meetup 2016/12/08 20
؆୯ʹ࠶ݱͰ͖ΔγεςϜ • ͋ΒΏΔߏཁૉਓखΛ͔͚ͣʹ࣮֬ʹ࠶ߏஙͰ͖Ͷͳ Βͳ͍ • εϊʔϑϨʔΫԽΛආ͚ΒΕΔ • ߏஙɺ࠶ߏங͕؆୯Ͱ͋ΕɺมߋΛՃ͑Δͱ͖ͷϦεΫ ڪා৺ͷେ͕औΓআ͔ΕΔ Codenize
Meetup 2016/12/08 21
͍ࣺͯʹͰ͖ΔγεςϜ • μΠφϛοΫΠϯϑϥετϥΫνϟʹΑΓϦιʔε͕؆୯ʹ࡞ ɺഁغɺަɺมߋɺҠಈͰ͖Δ • ͜ͷϝϦοτΛ׆͔ͨ͢Ίʹɺαʔό͕ফ͑ͨΓݱΕͨΓมԽ ͨ͠Γͯ͠ɺαʔϏε͕ܧଓͰ͖ΔΑ͏ʹઃܭ͖͢ • ͍ͭͰ͍ࣺͯʹͰ͖Δͱ͍͏͜ͱɺมԽΛॊೈʹॲཧͰ ͖ɺվྑɺमਖ਼ΛՃ͑Δ͜ͱ͕؆୯ʹͳΔ
• Τϥʔੑߴ͘ͳΔ Codenize Meetup 2016/12/08 22
౷ҰతͳγεςϜ • ಉ͡Α͏ͳαʔϏεΛఏڙ͢Δෳͷαʔόಉ͡ߏ/ઃఆͰ ͋Δ͖ • ߏ/ઃఆʹҧ͍͕͋ΔͱࣗಈԽπʔϧ͕ͨΒ݁͢Ռ͕༧ଌෆ ೳʹ • ࣗಈԽͷ৴པੑ͕ଛͳΘΕΔͱɺมߋ͕ࠔʹͳΔ •
౷ҰతͳγεςϜΛ࠶ߏஙՄೳʹ͓ͯ͘͠ͱɺߏυϦϑτͷղ ফʹཱͭ Codenize Meetup 2016/12/08 23
෮Մೳͳϓϩηε • Πϯϑϥʹର͢ΔΞΫγϣϯΛεΫϦϓτͳΓπʔϧͳΓͰ ෮Մೳʹ͢Δ • ࠶ߏஙͷ͢͠͞ʹͭͳ͕Γɺ؆୯ʹ࠶ݱͰ͖Δ౷Ұతͳγ εςϜΛߏͰ͖Δ • ςετ͘͢͠ͳΔ Codenize
Meetup 2016/12/08 24
มߋ͍͢͠σβΠϯ • μΠφϛοΫΠϯϑϥετϥΫνϟͰطଘγεςϜʹมߋ ΛՃ͑Δͷ؆୯ • ͜Εͯ͢ͷ෦͕มߋ͘͢͠ઃܭ͞Ε͍ͯΔͱ͍͏લ ఏͷݩ • ιϑτΣΞͱΠϯϑϥɺมߋ͍͢͠Α͏Ͱ͖ΔݶΓ୯ ७ʹઃܭ͞Ε͍ͯͳ͚ΕͳΒͳ͍
Codenize Meetup 2016/12/08 25
Infrastructure as Codeͷݪଇʢ࠶ܝʣ • ؆୯ʹ࠶ݱͰ͖ΔγεςϜ • ͍ࣺͯʹͰ͖ΔγεςϜ • ౷ҰతͳγεςϜ •
෮Մೳͳϓϩηε • มߋ͍͢͠σβΠϯ Codenize Meetup 2016/12/08 26
Infrastructure as Code ͷϓϥΫςΟε Codenize Meetup 2016/12/08 27
Infrastructure as CodeͷϓϥΫςΟε • ఆٛϑΝΠϧ • ࣗݾهड़γεςϜͱϓϩηε • όʔδϣϯཧ •
ܧଓతςετ • খࠁΈͳมߋ • ʢܧଓతʹαʔϏεΛར༻Մೳঢ়ଶʹอͭʣ Codenize Meetup 2016/12/08 28
ఆٛϑΝΠϧ • جૅதͷجૅ • PuppetͷϚχϑΣετChefͷϨγϐ • Πϯϑϥཁૉͱͦͷߏ/ઃఆํ๏Λࢦఆ͢Δ • ςΩετϑΝΠϧͰཧ Codenize
Meetup 2016/12/08 29
ࣗݾهड़γεςϜͱϓϩηε • υΩϡϝϯτΛͳΔ͘ॻ͔ͳ͍ • ϓϩηεΛ࣮ࢪ͢ΔͨΊͷखॱɺ࣮ࡍʹϓϩηεΛ࣮͠ ͍ͯΔεΫϦϓτɺఆٛϑΝΠϧɺπʔϧʹॻ͖ࠐ·Ε͍ͯΔ • ͍Θʮ࣮ߦͰ͖ΔυΩϡϝϯτʯ • ͦΕҎ֎ʹɺॳΊͯ͏ਓͷͨΊͷ࠷খݶͷυΩϡϝϯτ
ʹཹΊΔ Codenize Meetup 2016/12/08 30
όʔδϣϯཧ • ͋ΒΏΔͷΛόʔδϣϯཧ͢Δͷ͕·͍͠ • τϨʔαϏϦςΟ • ϩʔϧόοΫ • ૬ؔؔͷཧ •
Մࢹੑ • ΞΫγϣφϏϦςΟ Codenize Meetup 2016/12/08 31
ܧଓతςετ • Πϯϑϥίʔυʹมߋ͕͋ΔʹςετΛ࣮ߦ • ςελϏϦςΟΛߴΊΔͱૄ݁߹ͰΫϦʔϯͰ୯७ͳઃܭ͕ ଅ͞ΕΔ • มߋʹର͢ΔϑΟʔυόοΫ͕ૣ͘ɺͻΜͺΜʹมߋΛՃ͑ ͯେৎͩͱ͍͏ࣗ৴͕ੜ·ΕΔ Codenize
Meetup 2016/12/08 32
খࠁΈͳมߋ • খ͞ͳมߋΛςετ࣮ͯ֬͠ʹಈ࡞͢ΔΑ͏ʹ͢Δํ͕؆୯ Ͱ࡞ۀྔ͕গͳ͍ • มߋʹΑΓൃੜͨ͠ͷݪҼ͕ಛఆ͍͢͠ • ϩʔϧόοΫ͍͢͠ • ͻΜͺΜʹมߋͯ͠ϦϦʔε͢Δํ͕Ϟνϕʔγϣϯ্͕Δ
Codenize Meetup 2016/12/08 33
Infrastructure as CodeͷϓϥΫςΟεʢ࠶ܝʣ • ఆٛϑΝΠϧ • ࣗݾهड़γεςϜͱϓϩηε • όʔδϣϯཧ •
ܧଓతςετ • খࠁΈͳมߋ • ʢܧଓతʹαʔϏεΛར༻Մೳঢ়ଶʹอͭʣ Codenize Meetup 2016/12/08 34
ΞϯνϑϥδϟΠϧͱਓؒத৺ઃܭ Codenize Meetup 2016/12/08 35
ΞϯνϑϥδϟΠϧ • Infrastructure as Codeݎ࿚Λ͑ͯΞϯνϑϥδϟΠϧͳ ΠϯϑϥΛࢦ͢ • ਓؒτϨʔχϯά͠ͳ͍ͱମ͕ऑ͘ͳΓյΕ͘͢ͳΔ • γεςϜಉ༷ɺมߋΛ࠷খݶʹ͑Δͱݎ࿚ʹͳΒͳ͍
• γεςϜΛઈ͑ͣมߋ͠վྑ͢Δ͜ͱͰΑΓݎ࿚ʹͳΔ Codenize Meetup 2016/12/08 36
ਓؒத৺ઃܭ • ࣗಈԽ͚ͩͰΞϯνϑϥδϟΠϧʹͰ͖ͳ͍ • γεςϜΛΑ͘ཧղ͠ɺܧଓతʹมߋΛՃ͑ΒΕΔਓͷଘࡏ ͕ॏཁ • มԽʹରԠͰ͖ΔγεςϜΛઃܭ͢ΔͨΊͷൿ݃ɺਓΛத ৺ʹͯ͠ઃܭ͢Δ͜ͱ Codenize
Meetup 2016/12/08 37
·ͱΊ • ͔ͭͯITΠϯϑϥ͕มԽͷ੍ʹͳ͍ͬͯͨ • μΠφϛοΫΠϯϑϥετϥΫνϟͷൃలɾීٴʹΑΓมԽͷ੍ Ͱͳ͘ͳͬͨ • ੍Λલఏͱͨ͠ैདྷతͳΞϓϩʔν௨༻͠ͳ͘ͳͬͨ • μΠφϛοΫΠϯϑϥετϥΫνϟ࣌ʹରԠ͠ɺมԽʹڧ͍Ξ
ϯνϑϥδϟΠϧͳΠϯϑϥΛͭ͘ΔͨΊͷΞϓϩʔν͕ Infrastructure as CodeͰ͋Δ Codenize Meetup 2016/12/08 38
ࢀߟࢿྉ • Infrastructure as Code - O'Reilly Media • http://shop.oreilly.com/product/0636920039297.do
• Infrastructure as Code ࠶ߟ - Gosuke Miyashita • http://mizzy.org/blog/2016/04/22/1/ • serverspec ͷจެ։͠·͢ - Gosuke Miyashita • http://mizzy.org/blog/2014/03/11/1/ • Recruit Technologies Open Lab #03 ςʔϚɿInfrastructure as Code • http://atl.recruit-tech.co.jp/blog/4240/ Codenize Meetup 2016/12/08 39