Bakusoku Iterations Tokyo Vol.2 での発表資料です。
ϦΫϧʔτϚʔέςΟϯάύʔτφʔζͰͷ DeployGate׆༻ࣄྫ@naokiainoya
View Slide
ࣗݾհ• @naokiainoya• ϦΫϧʔτϚʔέςΟϯάύʔτφʔζ ϓϩμΫτ։ൃ෦ ։ൃࢧԉάϧʔϓ
։ൃج൫ΤϯδχΞతͳ͜ͱΛ͍ͯ͠·͢։ൃࢧԉ( ϓϩμΫτԣஅతͰٕज़ࢧԉΛߦ͏ϓϩμΫτ։ൃ෦ͷ୲ϓϩμΫτ܈
ϓϩμΫτ։ൃΛ Ճͤ͞ΔͨΊͷ։ൃ• ΤϯδχΞͷख͕ճΓ͖Εͯͳ͍ͱ͜ΖΛ र͍ʹ͍͓͘ࣄͰ͢
۩ମతͳۀ• ࣾherokuͷߏங(deis on GCP)• σʔλղੳج൫ߏங• e2eςετ(Appium/Selenium)• ݕূڥඋ(OpenSTFಋೖ)
CIڥߏங(CircleCI, DeployGate)• ճΓݻΊେࣄhttps://cdn.meme.am/instances/500x/65068604.jpghttps://cdn.meme.am/instances/500x/65068604.jpghttps://cdn.meme.am/instances/500x/65068604.jpg
DeployGate• (΄΅)શͯͷϓϩμΫτͰͬͯ·͢!!
Έͳ͞ΜԿਓ͙Β͍ͰDeployGateͬͯ·͔͢ʁ• 50ਓҎ্ͷਓʁ• 100ਓҎ্ͷਓʁʁ• 500ਓҎ্ͷਓʁʁʁ
ฐࣾͷDeployGateϢʔβɺଟ͍• ϦΫϧʔτάϧʔϓͱͯ͠શࣾతʹར༻ ฐΧϯύχʔ͚ͩͰ100ਓɾΞϓϦेຊ• (શମͰ͑ΔͱͱΜͰͳ͍ਓʹ)
εςʔΫϗϧμʔଟ͍ڥͰͷΞϓϦ…• σΟϨΫλʔɾӦۀɾίϯςϯπฤूऀͳͲؔऀ͕ଟ͍• iOSͷ߹uuidొͳͲΘ͍͠λεΫ͕ଟ͍ͷͰࠔ͍ͬͯͨ
EnterpriseϏϧυ+ެ։ϖʔδͰര• ѹతͳෛ୲ݮ
slack࿈ܞͰ͙͢• (iOS)fastlaneͷslack webhookͰ௨• (android)deploygateͷwebhookͰ௨
ཤྺݟฦͤΔศར͞• ୭͕ԿͷversionΛμϯϩʔυͨ͠ͷ͔·ͰSlackʹ௨Ͱ͖Δ• QAͷͱ͖ಛʹʹཱͭ
μϯϩʔυͨ͠ΞϓϦ͕ͻͱͰԿͷόʔδϣϯ͔Θ͔Βͳ͍• ݱͰ֬ೝͷ࣌ɺεϚϗͰΞϓϦΛ։͍ͯ όʔδϣϯใΛݟͳ͍ͱ͔Βͳ͍• QAͷͱ͖ɺಛʹࠔΔ
։ൃ൛Ͱͷͪΐͬͱͨ͠• ΞΠίϯʹόʔδϣϯ༩• Πϯετʔϧ͞Εͨόʔδϣϯ͕ Ұྎવʹ
fastlaneͷλεΫͰόʔδϣϯ༩• ΞΠίϯʹόʔδϣϯ༩http://nsscreencast.com/episodes/213-icon-badging-with-fastlane
stampͰ༩• github.com/ainoya/stamp• goɺCIεΫϦϓτʹຒΊࠐΉ͚ͩ
രͰ͖ΔΑ͏ʹͳ͚ͬͨͲ…ϢʔβଟͳΒͰͷ͕
Ϣʔβଟ͍ͳΒͰͷ• ආ͚ͯ௨Εͳ͍ͷ͕Ϣʔβཧ• ݖݶཧ• IDΫϦʔχϯά• ʑ…
نେ͖Ίͷ৫Ͱͷ Ϣʔβཧ͋Δ͋Δ• ਃ->(ঝೝ)->ొͷ࡞ۀ͕໘• ݖݶʢ։ൃऀɾςελʔʣͷίϯτϩʔϧ͕໘• ΞΧϯτͰ՝ۚͳͷͰΉΈʹ;ͨ͘͠ͳ͍…
֎෦αʔϏεଆͷཧը໘Ͱ खಈઃఆ͢Δͷݶք• Φϖϛε͕ࢥΘ͵Πϯγσϯτͷݩʹ…
Infrastrucuture as codeԽͯ͠͠·͓͏ʂʂ• AWSҎ֎ͷSaaSͷઃఆcodeͰҰݩཧ͢Δ࣌དྷͯ·͢
Ϣʔβཧcodeཧʹͯ͠͠·͍·͠ΐ͏ɻ
terraformͰɻ
recruit-mp/terraform-provider-deploygate ͷ͝հ• (deploygate apiͷgoΫϥΠΞϯτ recruit-mp/go-deploygateఴ͑ͯ…)⏩
͜ΕԿ• terraformͷpluginͰ͢• terraform/builtin/githubϓϥάΠϯΛࢀߟʹ͠ͳ͕Β࡞Γ·ͨ͠
Կ͕Ͱ͖Δ͔• PersonalͰެ։ͨ͠ΞϓϦͷ ϢʔβݖݶՃɾআ• OrganizationͷϢʔβՃɾআ• ެ։APIͰͰ͖Δ͜ͱΛҰ௨Γαϙʔτ
͍ํ• terraformͷ͍ํʹ४͡·͢• terraform-provider-deploygateΛ go buildͯ͠terraformͷόΠφϦͱ ಉσΟϨΫτϦʹஔ
ઃఆϑΝΠϧͷهड़
terraform plan/applyͰ ઃఆΛαʔϏεʹద༻• "terraform plan"Ͱద༻༰Λ֬ೝ
terraform plan/applyͰ ઃఆΛαʔϏεʹద༻• "terraform apply"ͰઃఆΛద༻
Ϣʔβઃఆas codeͷϝϦοτ• gitཧʹͳΔͷͰɺൃߦཤྺ͕ΔʢࠪϩάͷΘΓʹͳΔ)• ϓϧϦΫϕʔεͰͷਃϑϩʔͳͲϫʔΫϑϩʔͮ͘Γ͕༰қ
·ͱΊ• deploygateരศར• ໘ͳϢʔβཧཧը໘Ͱ Βͳ͍ͰterraformΛ͏ͱ ײ͕͖ͬ͢Γ☺• deploygate apiཧܥͷ ΤϯυϙΠϯτՃʹظ
ɾ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/