Slide 1

Slide 1 text

ϦΫϧʔτϚʔέςΟϯάύʔτφʔζͰͷ
 DeployGate׆༻ࣄྫ @naokiainoya

Slide 2

Slide 2 text

ࣗݾ঺հ • @naokiainoya • ϦΫϧʔτϚʔέςΟϯάύʔτφʔζ
 ϓϩμΫτ։ൃ෦ ։ൃࢧԉάϧʔϓ

Slide 3

Slide 3 text

։ൃج൫ΤϯδχΞతͳ͜ͱΛ ͍ͯ͠·͢ ։ൃࢧԉ(
 ϓϩμΫτԣஅతͰٕज़ࢧԉΛߦ͏ ϓϩμΫτ։ൃ෦ͷ୲౰ϓϩμΫτ܈

Slide 4

Slide 4 text

ϓϩμΫτ։ൃΛ
 Ճ଎ͤ͞ΔͨΊͷ։ൃ • ΤϯδχΞͷख͕ճΓ͖Εͯͳ͍ͱ͜ΖΛ
 र͍ʹ͍͓͘࢓ࣄͰ͢

Slide 5

Slide 5 text

۩ମతͳۀ຿ • ࣾ಺herokuͷߏங(deis on GCP) • σʔλղੳج൫ߏங • e2eςετ(Appium/Selenium) • ݕূ୺຤؀ڥ੔උ(OpenSTFಋೖ)

Slide 6

Slide 6 text

CI؀ڥߏங(CircleCI, DeployGate) • ଍ճΓݻΊେࣄ https://cdn.meme.am/instances/500x/ 65068604.jpg https://cdn.meme.am/instances/500x/ 65068604.jpg https://cdn.meme.am/instances/500x/ 65068604.jpg

Slide 7

Slide 7 text

DeployGate • (΄΅)શͯͷϓϩμΫτͰ࢖ͬͯ·͢!!

Slide 8

Slide 8 text

Έͳ͞ΜԿਓ͙Β͍Ͱ DeployGate࢖ͬͯ·͔͢ʁ • 50ਓҎ্ͷਓʁ • 100ਓҎ্ͷਓʁʁ • 500ਓҎ্ͷਓʁʁʁ

Slide 9

Slide 9 text

ฐࣾͷDeployGateϢʔβ਺ɺ ଟ͍ • ϦΫϧʔτάϧʔϓͱͯ͠ શࣾతʹར༻
 ฐΧϯύχʔ͚ͩͰ100ਓ ௒ɾΞϓϦ਺ेຊ • (શମͰ਺͑ΔͱͱΜͰ΋ͳ ͍ਓ਺ʹ)

Slide 10

Slide 10 text

εςʔΫϗϧμʔଟ͍؀ڥͰͷ ΞϓϦ഑෍… • σΟϨΫλʔɾӦۀɾίϯςϯπฤूऀͳͲ ؔ܎ऀ͕ଟ͍ • iOSͷ৔߹uuidొ࿥ͳͲ൥Θ͍͠λεΫ͕ଟ͍ ͷͰࠔ͍ͬͯͨ

Slide 11

Slide 11 text

EnterpriseϏϧυ+ެ։ϖʔδ Ͱര଎഑෍ • ѹ౗తͳෛ୲ݮ

Slide 12

Slide 12 text

slack࿈ܞͰ͙͢഑෍ • (iOS)fastlaneͷslack webhookͰ௨஌ • (android)deploygateͷwebhookͰ௨஌

Slide 13

Slide 13 text

഑෍ཤྺ΋ݟฦͤΔศར͞ • ୭͕ԿͷversionΛμ΢ϯϩʔυͨ͠ͷ͔·Ͱ Slackʹ௨஌Ͱ͖Δ • QAͷͱ͖ಛʹ໾ʹཱͭ

Slide 14

Slide 14 text

μ΢ϯϩʔυͨ͠ΞϓϦ͕ͻͱ໨Ͱ Կͷόʔδϣϯ͔Θ͔Βͳ͍໰୊ • ݱ৔Ͱ֬ೝͷ࣌ɺεϚϗͰΞϓϦΛ։͍ͯ
 όʔδϣϯ৘ใΛݟͳ͍ͱ෼͔Βͳ͍ • QAͷͱ͖ɺಛʹࠔΔ

Slide 15

Slide 15 text

։ൃ൛Ͱͷͪΐͬͱͨ͠޻෉ • ΞΠίϯʹόʔδϣϯ෇༩ • Πϯετʔϧ͞Εͨόʔδϣϯ͕
 Ұ໨ྎવʹ

Slide 16

Slide 16 text

fastlaneͷλεΫͰόʔδϣϯ ෇༩ • ΞΠίϯʹόʔδϣϯ෇༩ http://nsscreencast.com/episodes/213-icon-badging-with-fastlane

Slide 17

Slide 17 text

stampͰ෇༩ • github.com/ainoya/stamp • go੡ɺCIεΫϦϓτʹຒΊࠐΉ͚ͩ

Slide 18

Slide 18 text

ര଎഑෍Ͱ͖ΔΑ͏ʹͳ͚ͬͨͲ… Ϣʔβଟ਺ͳΒͰ͸ͷ໰୊͕

Slide 19

Slide 19 text

Ϣʔβ਺ଟ͍ͳΒͰ͸ͷ໰୊ • ආ͚ͯ௨Εͳ͍ͷ͕Ϣʔβ؅ཧ • ݖݶ؅ཧ • IDΫϦʔχϯά • ౳ʑ…

Slide 20

Slide 20 text

ن໛େ͖Ίͷ૊৫Ͱͷ
 Ϣʔβ؅ཧ͋Δ͋Δ • ਃ੥->(ঝೝ)->ొ࿥ͷ࡞ۀ ͕໘౗ • ݖݶʢ։ൃऀɾςελʔʣ ͷίϯτϩʔϧ͕໘౗ • ΞΧ΢ϯτ਺Ͱ՝ۚͳͷͰ Ή΍Έʹ਺;΍ͨ͘͠ͳ ͍…

Slide 21

Slide 21 text

֎෦αʔϏεଆͷ؅ཧը໘Ͱ
 खಈઃఆ͢Δͷ͸ݶք • Φϖϛε͕ࢥΘ͵Πϯγσϯτͷݩʹ…

Slide 22

Slide 22 text

Infrastrucuture as codeԽͯ͠ ͠·͓͏ʂʂ • AWSҎ֎ͷSaaSͷઃఆ΋codeͰҰݩ؅ཧ͢ Δ࣌୅དྷͯ·͢

Slide 23

Slide 23 text

Ϣʔβ؅ཧ΋code؅ཧʹͯ͠ ͠·͍·͠ΐ͏ɻ

Slide 24

Slide 24 text

terraformͰɻ

Slide 25

Slide 25 text

recruit-mp/terraform- provider-deploygate ͷ͝঺հ • (deploygate apiͷgoΫϥΠΞϯτ
 recruit-mp/go-deploygate΋ఴ͑ͯ…) ⏩

Slide 26

Slide 26 text

͜Ε͸Կ • terraformͷpluginͰ͢ • terraform/builtin/githubϓϥάΠϯΛࢀߟʹ ͠ͳ͕Β࡞Γ·ͨ͠

Slide 27

Slide 27 text

Կ͕Ͱ͖Δ͔ • PersonalͰެ։ͨ͠ΞϓϦ΁ͷ
 Ϣʔβݖݶ௥Ճɾ࡟আ • Organization΁ͷϢʔβ௥Ճɾ࡟আ • ެ։APIͰͰ͖Δ͜ͱΛҰ௨Γαϙʔτ

Slide 28

Slide 28 text

࢖͍ํ • terraformͷ࢖͍ํʹ४͡·͢ • terraform-provider-deploygateΛ
 go buildͯ͠terraformͷόΠφϦͱ
 ಉσΟϨΫτϦʹ഑ஔ

Slide 29

Slide 29 text

ઃఆϑΝΠϧͷهड़

Slide 30

Slide 30 text

terraform plan/applyͰ
 ઃఆΛαʔϏεʹద༻ • "terraform plan"Ͱద༻಺༰Λ֬ೝ

Slide 31

Slide 31 text

terraform plan/applyͰ
 ઃఆΛαʔϏεʹద༻ • "terraform apply"ͰઃఆΛద༻

Slide 32

Slide 32 text

Ϣʔβઃఆas codeͷϝϦοτ • git؅ཧʹͳΔͷͰɺൃߦཤྺ͕࢒Δʢ؂ࠪϩ άͷ୅ΘΓʹ΋ͳΔ) • ϓϧϦΫϕʔεͰͷਃ੥ϑϩʔͳͲϫʔΫϑ ϩʔͮ͘Γ͕༰қ

Slide 33

Slide 33 text

·ͱΊ • deploygateര଎ศར • ໘౗ͳϢʔβ؅ཧ͸؅ཧը໘Ͱ
 ΍Βͳ͍ͰterraformΛ࢖͏ͱ
 ΋΍΋΍ײ͕͖ͬ͢Γ☺ • deploygate api͸؅ཧܥͷ
 ΤϯυϙΠϯτ௥Ճʹظ଴

Slide 34

Slide 34 text

෇࿥ɾterraform provider࡞੒ ͷࢀߟʹͨ͠ࢿྉ • goॻ͚ΔਓͳΒҙ֎ͱ؆୯ɻ൒೔͙Β͍Ͱ࡞Ε·ͨ͠ɻ • hashicorp/terraform/builtin ҎԼͷprovider܈ͷίʔυΛಡΉ ͱཧղ͕ૣ͍ͱࢥ͍·͢ • (ྑهࣄ)TerraformͷProviderΛ࡞ͬͨ - tkak's tech blog 
 http://tkak.hatenablog.com/entry/2014/11/07/074044 • ͔Θ͍͍ϑϦʔૉࡐू ͍Β͢ͱ΍ 
 http://www.irasutoya.com/