Slide 1

Slide 1 text

Codepipelineͷ࿩ ιχʔωοτϫʔΫίϛϡχέʔγϣϯζגࣜձࣾ ࠤ౻ॠ 2018.10.3 JAWSUG Yokohama DevOps࿮LT

Slide 2

Slide 2 text

୭ʁ ࠤ౻ɹॠ ιχʔωοτϫʔΫίϛϡχέʔγϣϯζגࣜձࣾ
 ʢ2016ʙʣ ςϨϏ΍ϨίʔμʔͷαʔόʔαΠυΛ୲౰͍ͯ͠·͢

Slide 3

Slide 3 text

୭ʁ ԣ඿ࡏॅͰ͢ ʢԣ඿Ξϐʔϧʣ

Slide 4

Slide 4 text

ஶॻʢڞஶʣ 2015/3 ग़൛ 2016/4 ग़൛ 2018/3 ग़൛ վగ

Slide 5

Slide 5 text

Codepipeline

Slide 6

Slide 6 text

࢖ͬͯ·͔͢ʁ

Slide 7

Slide 7 text

Codepipelineͷར༻ঢ়گ Dev/Staging/ProdͳͲɺશ؀ڥ߹Θͤͯ40ຊఔ౓ͷPipeline CodePipeline ECS EC2 Lambda Github Dev/Staging Push Dev/Staging͸GithubΛTriggerʹσϓϩΠ

Slide 8

Slide 8 text

Codepipelineͷར༻ঢ়گ Dev/Staging/ProdͳͲɺશ؀ڥ߹Θͤͯ40ຊఔ౓ͷPipeline CodePipeline ECS EC2 Lambda Prod ࣮ߦ Prod͸खಈͰPipelineΛ࣮ߦ →ެ։೔ͳͲɺλΠϛϯάΛௐ੔͢Δඞཁ͕͋ΔͨΊ

Slide 9

Slide 9 text

ͱ͍͏ײ͡Ͱɺ ͦͦ͜͜࢖͖ͬͯ·ͨ͠

Slide 10

Slide 10 text

ྑ͍఺΍ࠔͬͯΔ͜ͱʹ͍ͭͯ TipsͬΆ͘ޠ͍ͬͯ͜͏ͱࢥ͍·͢

Slide 11

Slide 11 text

Codepipelineͷྑ͍఺

Slide 12

Slide 12 text

Codepipelineͷྑ͍఺ • Sourceͷॊೈੑ • GithubҎ֎ͷSourceΛࢦఆͰ͖Δ • S3ͷτϦΨʔͰͷىಈ͸࢖͍ॴ͕ଟ͍ • Codepipelineͷෆ଍෦෼ΛิͬͯΔ͚ͩͱ΋ݴ͑Δ͕ɾɾɾ
 ʢޙड़ʣ • ෳ਺ͷϦϙδτϦΛInputʹͰ͖Δ • Github ͱ S3ΦϒδΣΫτΛ྆ํInputʹ͢Δ͜ͱ΋Ͱ͖Δ

Slide 13

Slide 13 text

Codepipelineͷྑ͍఺ • JenkinsΛ࢖͑Δʢ࢖͑ͯ͠·͏ʁʣ • طʹBuild΍Deployͷδϣϒ͕͋Δ৔߹͸ɺͦͷ··࢖͑Δ • ͱΓ͋͑ͣɺCodepipelineʹ৐ͤͯɺޙͰCodeBuildʹ
 Ҡ͕͢Ͱ͖Δ ͜Ε͕͋ͬͨͷͰCodepipelineΛબ୒ͨ͠෦෼͕͋Δ Build/DeployͳͲͷ֤࡞ۀ͸JenkinsͰδϣϒԽ͞Ε͓ͯΓɺ ͦΕͳΓʹ࡞Γࠐ·Ε͍ͯͨͷͰҠߦ͕؆୯Ͱ͸ͳ͔ͬͨ

Slide 14

Slide 14 text

Codepipelineͷྑ͍఺ • AWSͷଞαʔϏεͱͷ࿈ܞ • CodeBuildɺECSɺCloudFormationɺLambdaͳͲ • ଞͷCI/CDαʔϏεͰ΋ɺCLI౳ͰAPIୟ͚͹͍͍ͷͰɺ ػೳతʹ͜͜ʹେ͖ͳ༏Ґੑ͸ͳ͍ͱࢥ͏ • IAMͷೝূճΓͰAccessKey/SecretKeyΛ౉͞ͳͯ͘
 ͍͍͘Β͍

Slide 15

Slide 15 text

Codepipelineͷྑ͍఺ • CloudWatch EventͰͷPipelineىಈ • Github΁ͷPushҎ֎ʹ΋༷ʑͳΠϕϯτͰىಈͰ͖Δ • ࠓͷͱ͜S3͔͠࢖ͬͯͳ͍͕ɺଞʹ΋Կ͔࢖͑ͦ͏ͳ ؾ͸͍ͯ͠Δ

Slide 16

Slide 16 text

CodepipelineͷࠔΓ͝ͱ

Slide 17

Slide 17 text

CodepipelineͷࠔΓ͝ͱ • GitͷTagࢦఆͰιʔεΛऔಘͰ͖ͳ͍ • TagࢦఆͰιʔεΛऔΓ͍ͨέʔε͕݁ߏ͋Δ • Dev/StagingͰݕূ͕ऴΘͬͨόʔδϣϯΛ
 TagͰࢦఆͯ͠σϓϩΠ͢ΔɹɹͳͲ Github CodePipeline Jenkins S3 TagΛऔಘ Upload JenkinsͱS3Ͱ΍ͬͯΔ

Slide 18

Slide 18 text

CodepipelineͷࠔΓ͝ͱ • ύϥϝʔλʔΛࢦఆͯ͠PipelineΛ࣮ߦ͍ͨ͠ • ʢͦ΋ͦ΋ɺͦͷӡ༻͕ਖ਼͍͔͠͸ஔ͍ͱ͍ͯʣ • ؀ڥ໊ʢDev/Staging/ProdʣͳͲɺ
 ύϥϝʔλʔͰ౉͍ͨ͠΋ͷ͕͋Δ • S3ʹYAMLΛஔ͍ͨΓɺLambdaͰύϥϝʔλʔΛ
 ੜ੒ͯ͠ରॲ CodePipeline parameter.yml source

Slide 19

Slide 19 text

Codepipelineͷ࢖͍উख • ϦϦʔε౰ॳ͸ʮ୭͕࢖͏Μͩ…ʯͱ͍͏ҹ৅ͩͬͨ • CodeBuildʗLambda࿈ܞ͕ग़ͨ͜ͱʹΑΓɺ
 PipelineαʔϏεͱͯ͠࢖͑ΔΑ͏ʹͳ͖ͬͯͨ • Ұ൪ͷࠔΓ͝ͱͩͬͨCodeBuildʹҰ͔ͭ͠
 ΠϯϓοτΛ౉ͤͳ͍ͱ͍͏੍໿͕͕͋ͬͨɺ
 ࠷ۙվળ͞Εͨ • CodeBuild Multi Input Source

Slide 20

Slide 20 text

CodepipelineΛબ୒͢Δ͔Ͳ͏͔ • Circle CI΍Gitlab CIͱਅਖ਼໘͔ΒԥΓ߹ͬͨΒ
 ෛ͚Δͱࢥ͍·͕͢ɺ࠷௿ݶ͸໰୊ͳ͍
 • AWSͷαʔϏε্Ͱ࢖͑Δͷ͸ɺ΍͸Γڧ͍ • Ϣʔβʔ؅ཧ΍ίετ؅ཧΛAWSӡ༻ͷԆ௕ͰͰ͖Δ • AWSͰӡ༻͍ͯͯ͠ଞͷαʔϏε࢖ͬͯͳ͍ͳΒ
 ࠷ॳͷબ୒ࢶʹͳΔ

Slide 21

Slide 21 text

ൃද͸Ҏ্Ͱ͢

Slide 22

Slide 22 text

Ұॹʹಇ͍ͯ͘ΕΔํืूͯ͠ΔͷͰ ڵຯ͋Ε͹ੋඇ͓ئ͍͠·͢ • AWSΨϯΨϯ࢖͍͍ͨ • SRE΍Γ͍ͨ • ιχʔ੡඼ʹؔΘΓ͍ͨ • ςϨϏ͕޷͖ɹɹɹɹɹɹͳͲ https://www.gpcareers.sony.co.jp/000/u/job.phtml? job_code=149&company_code=8