Slide 1

Slide 1 text

*OGSBTUSVDUVSFBT$PEF /BPZB*UP גࣜձࣾҰٳ$50

Slide 2

Slide 2 text

ΞδΣϯμ •  *OGSBTUSVDUVSFBT$PEF͕ੈͷதʹग़͖ͯͯ •  ͲΜͳࢥߟɾࢼߦաఔ͕͋ͬͯ •  ࠓͲ͏͍͏ঢ়گʹࢸ͍ͬͯΔͷ͔

Slide 3

Slide 3 text

•  $'&OHJOF •  1VQQFU •  $IFG •  "OTJCMF

Slide 4

Slide 4 text

•  $'&OHJOF •  1VQQFU •  $IFG •  "84౦ژϦʔδϣϯ •  "OTJCMF •  ʰೖ໳$IFG4PMPʱग़൛

Slide 5

Slide 5 text

ೖ໳$IFG4PMPग़൛౰࣌ •  ࠃ಺Ͱ΋਺ඦ୆ن໛ͷαʔόʔΛ࣋ͭҰ෦8FCاۀ͕1VQQFU$IFG •  ʮ*OGSBTUSVDVUVSFBT$PEFʯ͸·ͩ·ͩ •  *BB4ͷར༻͕ຊ֨Խ͠ɺαʔόʔ͕ΑΓಈతͳ΋ͷʹ

Slide 6

Slide 6 text

౰࣌ͷ*OGSBTUSVDUVSFBT$PEF΁ͷظ଴஋ •  Ϋϥ΢υʹͳͬͯΑ͘࡞Γ௚͢͠ɺߏஙΛࣗಈԽ͍ͨ͠ •  ൿ఻ͷλϨԽ͢Δαʔόʔઃఆۀ຿ΛͲ͏ʹ͔͍ͨ͠

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

ؾ͕͍ͭͨ͜ͱ •  ίʔυʹͳͬͨ͠ɺόʔδϣϯ؅ཧ͢Ε͹͍͍ •  (JUΛ࢖͏ͳΒ(JU)VC

Slide 9

Slide 9 text

Πϯϑϥ΋1VMM3FRVFTU͢Δ

Slide 10

Slide 10 text

ίʔυʹͯ͠ΈͨΒ෼͔ͬͨ •  ΞϓϦέʔγϣϯ։ൃͰഓ͖ͬͯͨϓϥΫςΟεΛΠϯϑϥʹ΋Ԡ༻Ͱ͖ ΔͷͰ͸ •  (JU(JU)VCΛओ࣠ʹͨ͠ܧଓతσϦόϦʔ

Slide 11

Slide 11 text

ςετ΋ॻ͚Δ 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

Slide 12

Slide 12 text

$*΋Ͱ͖Δ

Slide 13

Slide 13 text

NBTUFSʹϚʔδͨ͠ΒσϓϩΠɺ΋Ͱ͖Δ 『インフラの継続的デリバリー』 h#p://d.hatena.ne.jp/naoya/20140821/1408577976

Slide 14

Slide 14 text

*OGSBTUSVDUVSFBT$PEFͷ࠶ൃݟ •  ࣗಈԽ΍ίʔυԽ͕ୡ੒͍ͨ͠໨తͰ͸ͳ͔ͬͨ –  ͦΕ͸$POpHVSBUJPOBT$PEFΒ͍͠ •  5IPVHIU8PSLTTBZT5IJTJTOPUTJNQMZXSJUJOHTDSJQUT CVUJOWPMWFT VTJOHUFTUFEBOEQSPWFOTPGUXBSFEFWFMPQNFOUQSBDUJDFTUIBUBSF BMSFBEZCFJOHVTFEJOBQQMJDBUJPOEFWFMPQNFOU IUUQTXXXUIPVHIUXPSLTDPNJOTJHIUTCMPHJOGSBTUSVDUVSFDPEFSFBTPOTNJMF

Slide 15

Slide 15 text

'PXMFSઌੜͷϓϥΫςΟε •  6TF%FpOJUJPO'JMFT •  4FMGEPDVNFOUFETZTUFNTBOEQSPDFTTFT •  7FSTJPOBMMUIFUIJOHT •  $POUJOVPVTMZUFTUTZTUFNTBOEQSPDFTTFT •  4NBMMDIBOHFTSBUIFSUIBOCBUDIFT •  ,FFQTFSWJDFTBWBJMBCMFDPOUJOVPVTMZ h#p://mar;nfowler.com/bliki/InfrastructureAsCode.html

Slide 16

Slide 16 text

Ϋϥ΢υͱ*OGSBTUSVDUVSFBT$PEF •  Ϋϥ΢υ࣌୅ʹͳͬͯΠϯϑϥ͕ಈతʹͳͬͨ –  ʮΠϯϑϥετϥΫνϟʯ͕ιϑτ΢ΣΞʹΑͬͯந৅Խ͞Εͨ •  ಈతͳΠϯϑϥΛίϯτϩʔϧ͢Δͷʹɺ*OGSBTUSVDUVSFBT$PEFͷϓϥ ΫςΟε͸૬ੑͷྑ͍ղͩͬͨ

Slide 17

Slide 17 text

͜ͷύλʔϯ͕Ԡ༻Ͱ͖Δͷ͸αʔόʔ͚ͩͳͷ͔ •  ࣅͨΑ͏ͳύλʔϯ͕αʔόʔҎ֎ʹ΋ݟͯऔΕΔ •  XJOFCBSSFMSPBEXPSLFS –  "843PVUFͷઃఆΛએݴతͳ3VCZ%4-Ͱఆٛద༻Ͱ͖Δπʔϧ •  %/4ઃఆΛܧଓతσϦόϦʔ –  %/4Ϩίʔυͷ3VCZ%4-Λ(JU)VCͰ؅ཧ –  1VMM3FRVFTUܖػʹςετ ESZSVO Λ࣮ߦ –  NBTUFSʹϚʔδͨ͠Β3PVUFʹ൓ө͢Δ

Slide 18

Slide 18 text

%/4ઃఆΛ(JU)VCͰ؅ཧ͠

Slide 19

Slide 19 text

1VMM3FRVFTUͯ͠$*ϨϏϡʔ

Slide 20

Slide 20 text

NBTUFSʹϚʔδ͢Δͱ%/4൓ө

Slide 21

Slide 21 text

͜Εԡ͢ɻҎ্ มߋ൓өΛ(JU)VCͷϚʔδϘλϯʹू໿

Slide 22

Slide 22 text

Ͳ͏ͨ͠ΒՄೳʹ ŋŋŋ3FQSPEVDJCMF#VJME •  3FQSPEVDJCMF#VJME Ϗϧυͷ࠶ݱՄೳੑ ॏཁ –  ίʔυԽɺࣗಈԽŋŋŋΑΓ΋3FQSPEVDJCMF͔Ͳ͏͔ –  खॱͰ͸ͳ͋͘Δ΂͖ঢ়ଶΛهड़ એݴత ɻ࣮ߦ݁Ռ͸ႈ౳ •  3FQSPEVDJCMFͳΒϏϧυͯ͠ςετͯ͠σϓϩΠ͕Մೳʹ •  ͦΕΛୡ੒͢ΔͨΊͷํ๏͕$POpHVSBUJPOBT$PEFͰ͋Γɺએݴతͳ $POpHVSBUJPONBOBHFNFOUUPPM –  %PDLFSͦͷ΄͔΋ಉ͡ߟ͑ํ –  ΞϓϦέʔγϣϯ։ൃͷੈքͰ͸5IF5XFMFWF'BDUPS"QQʹ͋ΔϓϥΫςΟε

Slide 23

Slide 23 text

3FQSPEVDJCMF#VJME •  $POpHVSBUJPO.BOBHFNFOU5PPM 1VQQFU $IFG "OTJCMF –  αʔόʔߏ੒Λ3FQSPEVDJCMFʹ •  SPBEXBMLFS –  %/4ઃఆΛ3FQSPEVDJCMFʹ •  5FSSBGPSN –  "84.BOBHFNFOU$POTPMF্ͰͷϙνϙνۀΛ3FQSPEVDJCMFʹ •  %PDLFS$PNQPTF –  %PDLFSίϯςφؒͷґଘؔ܎Λ3FQSPEVDJCMFʹ

Slide 24

Slide 24 text

ŋŋŋͱ͍͏Θ͚Ͱ •  ʮ*OGSBTUSVDUVSFBT$PEF͸ιϑτ΢ΣΞ։ൃͷϓϥΫςΟεΛΠϯϑϥ ʹ΋ద༻͢ΔΜͩʯ •  ͱ͍͏จ຺Ͱ޿·ͬͯɺΘΓͱड͚ೖΕΒΕ͍ͯΔͷ͕ݱঢ়

Slide 25

Slide 25 text

Ͱ΋ɺͦΕͰྑ͔ͬͨͷ͔ •  ίʔυʹ͢Δͷ͸खॱԽͷͨΊ͚ͩ͸ͳ͍ˠಉҙ •  ιϑτ΢ΣΞ։ൃͷϓϥΫςΟεΛʙˠಉҙ •  Ϋϥ΢υ࣌୅ͷΠϯϑϥ؅ཧʹద͍ͯ͠Δˠಉҙ •  Ҏ্Ͱ͢ˠ͑ͬ

Slide 26

Slide 26 text

•  ʮߏஙखॱΛίʔυԽʯ͢ΔΜ͡Όͳ͍ •  ΠϯϑϥετϥΫνϟΛϞσϦϯά͢ΔΜͩ –  ͜Ε͕*OGSBTUSVDUVSFBT$PEFͷຊջͩͱࢥ͍ͬͯͨ

Slide 27

Slide 27 text

ෳࡶੑʹཱͪ޲͔͏ʹ͸ŋŋŋ •  ιϑτ΢ΣΞ։ൃͷෳࡶੑʹର͢Δ࠷΋ॏཁͳϓϥΫςΟε͸ϞσϦϯάͰ͸ͳ͍ ͷ͔ •  ۀ຿Λͦͷ··γεςϜʹམͱ͢ͷͰ͸ͳ͘ɺϞσϦϯά͢Δ͜ͱͰॳΊͯγες ϜΛۀ຿ʹઓུతʹ׆͔ͤΔͷͰ͸ͳ͔ͬͨͷ͔ •  ͦͷ*OGSBTUSVDUVSFBT$PEFɺ೥ޙɺෛ࠴ʹͳͬͯͳ͍

Slide 28

Slide 28 text

"OTJCMFWT$IFGͱ͔ŋŋŋ •  Ͳ͏Ͱ΋͍͍ •  ʮΤʔδΣϯτΛΠϯετʔϧ͠ͳͯ͘΋͍͍ ŝžŕʯ –  ͦΜͳ΋ͷೖΕΕ͹͍͍͚ͩͩΖ௕೥ϝϯςͯ͘͠ͷʹΠϯετʔϧ෼ͷख͕ؒল͚ ͔ͨΒͬͯԿ͕خ͍͠Μͩ •  ͲͪΒ͕ʮΑΓ༏ΕͨϞσϦϯάΛఏҊ͢Δʯ΋ͷͳͷ͔ •  ͲͪΒ͕ΑΓɺݱγεςϜͷϞσϦϯάཁٻਫ४ʹద͍ͯ͠Δͷ͔

Slide 29

Slide 29 text

ʮΠϯϑϥͷϞσϦϯάʯٞ࿦͕੝ΜʹͳΔ͔ •  ŋŋŋͳΒͳͦ͏ •  ࣮ફதͷΤϯδχΞͷظ଴஋͸ͦ͜ʹͳͦ͞͏ •  Ή͠ΖίϯςφͦͷଞͰίʔυͰ؅ཧ͢΂͖ର৅ΛͳΔ΂͘ݮΒ͢ର৅ Λখ͘͢͞Δ͜ͱͰෛ࠴ԽΛආ͚Δ܏޲ –  ʮ%PDLFSpMFͰ͍͍΍ʯΈ͍ͨͳػӡ –  ڊେͳ$IFGDPPLCPPLϨϙδτϦͱ͔୭΋ݟͨ͘ͳͦ͞͏ –  *OGSBTUSVDUVSFBT$PEFͷϓϥΫςΟεͷ࣮ફྖҬ͸૿΍ͭͭ͠ɺίʔυԽର৅͸෼ׂ౷ ࣏

Slide 30

Slide 30 text

·ͱΊ •  ͋Δ΂͖࢟Λίʔυʹ͢ΔɺࣗಈԽ͢Δ͚ͩͰ͸ͳ͍ •  ຊ࣭͸ιϑτ΢ΣΞ։ൃͷϓϥΫςΟεͷద༻ɺΒ͍͠ •  3FQSPEVDJCMF#VJMEॏཁ •  ʮϞσϦϯάʯ΁ͷظ଴஋͸͋·Γߴ͘ͳΒͳ͔ͬͨ •  ΑΓখ͘͞෼ׂ͠ɺΑΓ؅ཧ͠ͳ͍ํ޲ʹΉ͔ͬͯ͘ŋŋŋͷ͔΋

Slide 31

Slide 31 text

ΤϯδχΞืूத