Slide 1

Slide 1 text

ʮΧελϚΠζʯ͔Βʮඪ४Խʯ΁ɻ 
 CI as a Service ͷߟ͑ํΛऔΓೖΕͯ 
 DevOps ΛՃ଎ͤ͞Α͏ʂ ΪϧυϫʔΫεגࣜձࣾ લ઒ തࢤ

Slide 2

Slide 2 text

͸͡Ίʹ

Slide 3

Slide 3 text

ΪϧυϫʔΫεʹ͍ͭͯ

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

ͤΓΧΠθϯΞϓϦͷ৔Ͱىͬͨ͜CIମݧ • ே4࣌ͷڕࢢ৔Ͱ࣮ূ࣮ݧ • ࣮ݧதʹόάൃੜʂʂ • ✨ ͦͷ৔Ͱόάमਖ਼͠ɺGithubʹPush • CircleCIͰϏϧυ/ςετ࣮ߦ • खݩͷΞϓϦʹमਖ਼൛͕഑৴͞Εɺݕূଓߦʂʂ ͍͍ͩͨɺ෼͘Β͍Ͱղܾ

Slide 8

Slide 8 text

CI/CDඪ४౥ࡌͷ։ൃʹڵຯ͋Δํ͸
 ΪϧυϫʔΫε·Ͱʂ https://guildworks.jp/contacts/new.html

Slide 9

Slide 9 text

ʮΧελϚΠζʯ͔Βʮඪ४Խʯ΁ɻ 
 CI as a Service ͷߟ͑ํΛऔΓೖΕͯ 
 DevOps ΛՃ଎ͤ͞Α͏ʂ ΪϧυϫʔΫεגࣜձࣾ લ઒ തࢤ

Slide 10

Slide 10 text

ࣗݾ঺հ • ΪϧυϫʔΫεגࣜձࣾ ALMΤϯδχΞ • Application Lifecycle Management • ಘҙٕ • ։ൃ • αʔόʔαΠυɿ Java • "OESPJE+BWB→,PUPMJO • iOS: Swift • Webϑϩϯτɿ Vuejs, Angular/Ionic • ͦͷଞɿ C# ͕Ұ൪޷͖͚ͩͲ࠷ۙॻ͍͍ͯͳ͍… • CI / CDͷ੔උ • ࠷ۙ͸΋ͬͺΒCircleCI

Slide 11

Slide 11 text

ͯ͞ɺຊ୊ɻ

Slide 12

Slide 12 text

Agenda • CI/CDͷྺ࢙͓͞Β͍ • ͳͥCI as a Service ͳͷ͔ • CI as a Service ͱ͸ͲΜͳ΋ͷ ʁ • ·ͱΊ

Slide 13

Slide 13 text

CI/CDͷྺ࢙ʢJenkinsΛத৺ͱͨ͠ʣ 2005೥ 2011೥ 2018೥ Jenkins X 2004೥ 2008೥ 2013೥ Kubernetes 2014೥ 2016೥ 2011೥ Docker Jenkins 2.0 Travis CI Ϗϧυͷ
 ίϯςφԽ

Slide 14

Slide 14 text

ͳͥ CI as a Serviceͳͷ͔ - Jenkinsͷޭࡑ - Jenkins৬ਓ໰୊ - CI as a Service ͱ͍͏खஈ - CI as a Service ͷϝϦοτ

Slide 15

Slide 15 text

Jenkinsͷޭࡑ • Jenkins͸CI Λ౰ͨΓલʹͨ͠ • ʮఆظతʹԿ͔Λ࣮ߦ͢Δʯͱ͍͏࡞ۀ͕ϧʔνϯͰ ͋Δ͜ͱΛΈΜͳ͕ೝࣝͨ͠ • ʮ໘౗͍͔͘͞ΒJenkinsͰ΍Βͳ͍ʁʯͱ͍͏จԽ͕ ৢ੒͞Εͨ • ͳΜͰ΋JenkinsͰ΍Δਓ͕૿͖͑ͯͨ • Jenkins৬ਓͷ஀ੜ

Slide 16

Slide 16 text

Jenkins৬ਓ໰୊ • ෳ਺ͷϓϥάΠϯΛ૊Έ߹ΘͤͨΓ࢝͠ΊΔͱɺಠࣗͷจԽ͕ Ͱ͖ͯϝϯς͕೉͘͠ͳΔ • ઃఆͷϘϦϡʔϜ͕ଟ͘ͳΓ͗ͯ͢ɺ؅ཧෆೳʹͳΔʢJenkins ͸ઃఆΛίʔυԽͰ͖ͳ͔ͬͨʣ • Jenkins͕Πϯετʔϧ͞Ε͍ͯΔϚγϯͷߏ੒؅ཧΛͪΌΜͱ ͍ͯ͠ͳ͍ͱɺʮJenkins্Ͱ͸ಈ͍ͯ·ͨ͠ʯͱ͍͏໰୊͕ɻ • ʮΈ͏Β͞ΜʢԾ໊ʣ͕͍ͳ͍ͷͰϏϧυͰ͖·ͤΜʂʯͱ͔ ݴΘΕ࢝ΊΔɻ • ͦΜͳͱ͜ΖͰ৬ਓ͕͍ͳ͘ͳͬͨΒɺɺɺ

Slide 17

Slide 17 text

ςετࣗಈԽͷύλʔϯݴޠ
 http://www.slideshare.net/Posaune/agile-tourosaka

Slide 18

Slide 18 text

CI as a Service ͱ͍͏खஈ • Ϋϥ΢υ্ʹߏங͞ΕͨϏϧυαʔό • GithubͳͲ֎෦ΞΫηεՄೳͳϨϙδτϦ͕ඞཁ • ར༻ऀܹ૿த • Github ΍ GitlabͳͲͷιʔε؅ཧαʔϏε΋૊ΈࠐΈ ͷCI ServiceΛఏڙ։࢝࢝͠Ίͨ • https://github.com/features/actions

Slide 19

Slide 19 text

ࢀߟ: Github Actions

Slide 20

Slide 20 text

CI as a Service ͷಛ௃ • ϏϧυɾσϓϩΠຖʹϑϨογϡͳVMΛىಈ͢Δ࢓૊ Έ͕औΒΕ͍ͯΔ • ؆୯ͳઃఆ͸GUIɺෳࡶͳઃఆ͸૊ΈࠐΈͷઃఆϑΝΠ ϧͰߦ͏ʢYAMLϑΝΠϧ͕ଟ͍) • GithubͳͲͷϗεςΟϯάαʔϏε΍Heroku/AWSͳ Ͳͱͷ࿈ܞػߏΛඋ͑Δ

Slide 21

Slide 21 text

CI as a Service ͷ͍͍ͱ͜Ζ • ্ཱͪ͛͸ઃఆϘλϯҰͭɺ͋ͬͱ͍͏ؒʹCI͕։࢝ Ͱ͖Δ • ؀ڥͷFresh͕͞อূ͞Ε͍ͯΔͷͰɺ؀ڥґଘΤϥʔ ͷಛఆ͕༰қʹͳΔ • ෳࡶͳઃఆ͸ϨϙδτϦ಺ͷYAMLͳͲʹॻ͘ͷͰɺ όʔδϣϯ؅ཧͰ͖Δɻ

Slide 22

Slide 22 text

CI as a Service ͱ৬ਓ໰୊ • Ϛγϯߏ੒ؚΊͯɺ΍Δ͜ͱ͕΄΅ίʔυԽ͞Ε͍ͯΔ
 = ʮ৬ਓ͔͠஌Βͳ͍৘ใʯΛۃখԽͰ͖Δ
 㱺 ৬ਓ΁ͷ஌ࣝଐਓԽ໰୊Λճආ • ͳΜ͔ͩΜͩͰ΍ΕΔ͜ͱʹ੍ݶ͕͋Δ
 = ৬ਓࠢΛద౓ʹ੍ݶͰ͖Δ
 㱺 ຊདྷCIʹ͸ෆదͳ͜ͱΛ΍Βͤͯ͠·͏໰୊Λճආ

Slide 23

Slide 23 text

CI as a Service ͱ͸ͲΜͳ΋ͷ ʁ
 - CircleCIΛྫʹͱͬͯߟ͑Δ - - CircleCIͰϏϧυ͢Δʹ͸ʁ - config.ymlͷத਎Λ஌Δ - ଞʹCircleCIͰͰ͖Δ͜ͱ

Slide 24

Slide 24 text

໭Γ·͢

Slide 25

Slide 25 text

CircleCIͰϏϧυͯ͠ΈΑ͏ʂ ʙͦͷ1ʙ • GithubΞΧ΢ϯτΛ࿈ܞ͢Δ • Build Project Λઃఆ͢Δ •

Slide 26

Slide 26 text

CircleCIͰϏϧυͯ͠ΈΑ͏ʂ ʙͦͷ1ʙ • ࣗಈੜ੒͞ΕͨconfigϑΝΠϧΛίϐϖ͢Δ • ʢ͓͠·͍ʣ

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

͔Β͘Γ • ඪ४తͳϏϧυγεςϜͰߏங͞Ε͍ͯΕ͹ɺ
 উखʹͦΕʹैͬͨϏϧυΛ࡞ͬͯ͘ΕΔ • maven / gradle • npm / yarn • Rake & Bundle • ͜ͷΑ͏ʹɺͰ͖Δ͚ͩʮඪ४ʹै͏ʯͷ͕
 CI as a Service Λ࢖͏ϙΠϯτ

Slide 29

Slide 29 text

config.ymlͷத਎Λ஌Δ ᶃ ϙΠϯτᶅ 
 ϏϧυΩϟογϡ ϙΠϯτᶄ npm ϙΠϯτᶃ Docker ϙΠϯτᶆ 
 ޙଓͷϏϧυͷͨΊͷ
 ݁Ռอ࣋

Slide 30

Slide 30 text

config.ymlͷத਎Λ஌Δᶄ ϙΠϯτᶇ ෳ਺ͷϏϧυύλʔϯ ϙΠϯτ ᶈ AWSͱͷ࿈ܞ

Slide 31

Slide 31 text

config.ymlͷத਎Λ஌Δᶅ ϙΠϯτ ᶉ ෳ਺Ϗϧυͷ࿈ܞ

Slide 32

Slide 32 text

ଞʹCircleCIͰͰ͖Δ͜ͱ • MacOSϏϧυ • AWS CodeDeploy࿈ܞ / Heroku࿈ܞ • SlackͳͲChatOpsͱͷ࿈ܞ • SSHͰίϯςφ಺ʹ઀ଓ • ϩʔΧϧʹCircleCIͷΫϩʔϯΛ࡞੒ • CircleCI 2.0 ͔Βಋೖ

Slide 33

Slide 33 text

·ͱΊ • CI as a Service ͸ɺؾܰʹCIΛ࢝ΊΔ࠷ྑͷखஈ • ඪ४తͳελΠϧʹ߹ΘͤΔ͜ͱͰɺߴ଎ʹCI/CD Λ։ൃʹऔΓࠐΊΔ • ͜ΕΛػձʹඪ४Λֶ΅͏ • ϏϧυγεςϜ / Docker / AWS • Github / CircleCI མͪͨͱ͖ͷ͜ͱ͸ߟ͓͑ͯ͜͏ • CircleCI ΋ Travis ΋ϩʔΧϧϏϧυͰ͖Δ͔Β…