Slide 1

Slide 1 text

αʔόʹϩάΠϯ͠ͳ͍ɾͤ͞ͳ͍ αʔϏεӡ༻ ɹ גࣜձࣾ!Gunosyɹখग़!޾య

Slide 2

Slide 2 text

ࣗݾ঺հ • খग़"޾య"/"@koid • גࣜձࣾGunosy"։ൃຊ෦ • ޙํࢧԉܥΤϯδχΞ • ͨ·ʹόονॻ͍ͨΓͨ·ʹAPI௚ͨ͠Γ

Slide 3

Slide 3 text

͜Μʹͪ͸GunosyͰ͢

Slide 4

Slide 4 text

Gunosyʹ͍ͭͯ • χϡʔεΩϡϨʔγϣϯΞϓϦ • 2011.09'ϝʔϧαʔϏεͱͯ͠։࢝ • 2013.01'iOS൛ΞϓϦϦϦʔε • 2013.02'Android൛ΞϓϦϦϦʔε • ݱࡏ900ສDLಥഁ

Slide 5

Slide 5 text

΍͍ͬͯΔ͜ͱ • χϡʔε഑৴ • ޿ࠂ഑৴ • ΞυωοτϫʔΫ • ϓϥοτϑΥʔϜ

Slide 6

Slide 6 text

ΤϯδχΞʹ͍ͭͯ • ݱࡏ26໊ • ͓͓Αͦͷकඋൣғ σβΠϯ+ϑϩϯτΤϯυ:&3ਓ ΫϥΠΞϯτ+QA:&5ਓ Web+API:&5ਓ Ξυ:&5ਓ ਺஋ղੳ+ίϯςϯπ:&5ਓ Πϯϑϥ:&1ਓ ͦͷଞSMͬΆ͍ਓ

Slide 7

Slide 7 text

GunosyͰΑ͘࢖͍ͬͯΔ΋ͷ • ։ൃݴޠ ɹ"#API:#Golang ɹ"#ύʔτφʔ༷/޿ࠂओ༷޲͚؅ཧը໘:#Rails ɹ"#όονɾ಺෦޲͚؅ཧը໘:#Django#or#ૉͷPython • ͦͷଞ ɹ"#όʔδϣϯ؅ཧ:#GitHub ɹ"#ߏ੒؅ཧ/σϓϩΠ:#Chef#(+AWS#OpsWorks)

Slide 8

Slide 8 text

։ൃͷಛ௃ • খ͍͞୯ҐͰ࡞͙ࣺͬͯͯ͢Δ • ϚΠΫϩαʔϏεతͳ • ػೳ͕૿͑ա͗ͨΒ෼ׂ • ϝϯς͢ΔΑΓϦϓϨʔε

Slide 9

Slide 9 text

ຊ୊ɿ ։ൃੜ࢈ੑΛ্͛ΔͨΊͷऔΓ૊Έ αʔό΁ͷෆཁͳϩάΠϯΛ΍ΊΑ͏

Slide 10

Slide 10 text

͔͜͜Βஏ͔͍ͣ͠࿩Λ͠·͢

Slide 11

Slide 11 text

αʔόʹϩάΠϯ͞ΕͯࠔΔ͜ͱ ʢϩάΠϯࣗମ͕௚઀ѱ͍Θ͚Ͱ͸ͳ͍Ͱ͕͢…ʣ

Slide 12

Slide 12 text

৴པͰ͖ͳ͍ϏϧυɾσϓϩΠ • ։ൃऀͷखݩͰϏϧυ→Ξοϓϩʔυ • αʔόʹೖͬͯσϓϩΠεΫϦϓτ࣮ߦ • ͦΕͲ͜ͷஅ໘ͳΜ͚ͩͬʁ࠷৽ͷmasterͱஅ໘߹ͬͯΔʁ • ࠓϓϩμΫγϣϯʹ্͕͍ͬͯΔϞϊ͕৴༻Ͱ͖ͳ͍ • ࠓεςʔδϯάʹ্͕͍ͬͯΔϞϊɺຊ౰ʹςετ͍ͨ͠அ ໘͚ͩͬʁ

Slide 13

Slide 13 text

উखʹՃ͑ΒΕΔมߋ • উखʹ௥Ճ͞ΕΔύοέʔδ • αʔό௥Ճ/ϦϓϨʔε͠Α͏ͱͨ͠Βಈ͔ͳ͍ • উखʹมߋ͞ΕΔcrontab • ίϝϯτΞ΢τͨ͠ͷ୭ʁͦͯ͠Կނʁ

Slide 14

Slide 14 text

ฐࣾɺҎલ͔ΒChefΛ࢖͍ͬͯ·ͨ͠

Slide 15

Slide 15 text

ʮαʔόͱϨγϐͷؒʹဃ཭͕͋Δʯ ʮϨγϐΛ௥ਵͤ͞Δඞཁ͕͋Δʯ

Slide 16

Slide 16 text

͑ͬ…

Slide 17

Slide 17 text

ϩάΠϯͯ͠௚઀͍͡Δͷ͸΍Ί·͠ΐ͏ ʢ੾࣮ʣ

Slide 18

Slide 18 text

ΞϓϦέʔγϣϯͷσϓϩΠ͸ ৴པͰ͖Δ΋ͷͰ͋Δඞཁ͕͋Δ

Slide 19

Slide 19 text

৴པͰ͖ͳ͍σϓϩΠ • ࣄނͷϦεΫ • ख໭Γͷൃੜ • ΤϯδχΞͷ࣌ؒతɾਫ਼ਆతෛ୲

Slide 20

Slide 20 text

ܧଓతσϦόϦ • όʔδϣϯ؅ཧ • ܧଓతΠϯςάϨʔγϣϯ • ܧଓతσϓϩΠ

Slide 21

Slide 21 text

͔͠͠ • όʔδϣϯ؅ཧπʔϧΛ࢖͑͹ྑ͍ͱ͍͏΋ͷͰ͸ͳ͍ • CIπʔϧΛ࢖͑͹ྑ͍ͱ͍͏΋ͷͰ͸ͳ͍ • σϓϩΠπʔϧΛ࢖͑͹ྑ͍ͱ͍͏΋ͷͰ͸ͳ͍ શͯΛ౷߹ͨ͠Ұ࿈ͷϫʔΫϑϩʔΛ࡞Δ͜ͱ͕ॏཁ

Slide 22

Slide 22 text

৭ʑͳਏ͍ࢥ͍Λͯ͠ɺݱࡏ

Slide 23

Slide 23 text

GitHubΛத৺ͱͨ͠։ൃɾσϓϩΠϑϩʔ • Service(HookΛར༻͠ɺ֤αʔϏεΛ࿈ܞ • GitHub • CircleCI • AWS(OpsWorks • GunosyͰͷOpsWorksͷར༻ʹ͍ͭͯ͸Լه • h;ps:/ /speakerdeck.com/koid/yokuwakaruCawsCopsworks

Slide 24

Slide 24 text

MergeϘλϯʹશͯΛूதͤ͞Δ

Slide 25

Slide 25 text

۩ମతʹ • ֤ϒϥϯνΛϚʔδ͢Δ౓ʹࣗಈͰϏϧυɾςετɾσϓϩΠ

Slide 26

Slide 26 text

σϓϩΠ͚ͨ͠Ε͹Pull$RequestΛ࡞Δ

Slide 27

Slide 27 text

༨ஊʣOpsWorksͰ΋σϓϩΠཤྺ͕௥͑Δ

Slide 28

Slide 28 text

݁Ռ • Pull%Request%Driven%Deploy • શͯͷ৘ใ͕GitHubʹू໿ • ݟ͑ΔԽɺϏϧυɾσϓϩΠͷޮ཰Խɺࣄނͷ࡟ݮ • ϫʔΫϑϩʔ͕Θ͔Γ΍͘͢ͳͬͨ

Slide 29

Slide 29 text

ΑΓαʔόʹϩάΠϯ͠ͳ͍ͨΊʹ

Slide 30

Slide 30 text

Ͳ͏ͯ͠΋͖ͭ΋ͷͳͷ͕ௐࠪ • ϛυϧ΢ΣΞϩάऩू • ΞϓϦέʔγϣϯϩάऩू αʔόʹϩάΠϯͯ͠ௐ΂·͔͢ʁ

Slide 31

Slide 31 text

ϒϥ΢β͔ΒશͯͷαʔόͷϩάΛݟΒΕΔΑ͏ʹ • OS/ϛυϧ΢ΣΞϩάऩू • papertrail • ΞϓϦέʔγϣϯϩάऩू • airbrake.(errbit) • kibana

Slide 32

Slide 32 text

αʔό΁ͷෆཁͳϩάΠϯ͸΍Ί·͠ΐ͏

Slide 33

Slide 33 text

͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠