Upgrade to Pro — share decks privately, control downloads, hide ads and more …

「カスタマイズ」から「標準化」へ。
CI as a Service の考え方を取り入れて 
D...

「カスタマイズ」から「標準化」へ。
CI as a Service の考え方を取り入れて 
DevOps を加速させよう!

#devkan 「CI/CDの話」発表資料です。

More Decks by Hiroshi Maekawa (a.k.a. Posaune)

Other Decks in Programming

Transcript

  1. ࣗݾ঺հ • ΪϧυϫʔΫεגࣜձࣾ ALMΤϯδχΞ • Application Lifecycle Management • ಘҙٕ

    • ։ൃ • αʔόʔαΠυɿ Java • "OESPJE+BWB→,PUPMJO • iOS: Swift • Webϑϩϯτɿ Vuejs, Angular/Ionic • ͦͷଞɿ C# ͕Ұ൪޷͖͚ͩͲ࠷ۙॻ͍͍ͯͳ͍… • CI / CDͷ੔උ • ࠷ۙ͸΋ͬͺΒCircleCI
  2. Agenda • CI/CDͷྺ࢙͓͞Β͍ • ͳͥCI as a Service ͳͷ͔ •

    CI as a Service ͱ͸ͲΜͳ΋ͷ ʁ • ·ͱΊ
  3. CI/CDͷྺ࢙ʢJenkinsΛத৺ͱͨ͠ʣ 2005೥ 2011೥ 2018೥ Jenkins X 2004೥ 2008೥ 2013೥ Kubernetes

    2014೥ 2016೥ 2011೥ Docker Jenkins 2.0 Travis CI Ϗϧυͷ
 ίϯςφԽ
  4. ͳͥ CI as a Serviceͳͷ͔ - Jenkinsͷޭࡑ - Jenkins৬ਓ໰୊ -

    CI as a Service ͱ͍͏खஈ - CI as a Service ͷϝϦοτ
  5. CI as a Service ͱ͍͏खஈ • Ϋϥ΢υ্ʹߏங͞ΕͨϏϧυαʔό • GithubͳͲ֎෦ΞΫηεՄೳͳϨϙδτϦ͕ඞཁ •

    ར༻ऀܹ૿த • Github ΍ GitlabͳͲͷιʔε؅ཧαʔϏε΋૊ΈࠐΈ ͷCI ServiceΛఏڙ։࢝࢝͠Ίͨ • https://github.com/features/actions
  6. CI as a Service ͷ͍͍ͱ͜Ζ • ্ཱͪ͛͸ઃఆϘλϯҰͭɺ͋ͬͱ͍͏ؒʹCI͕։࢝ Ͱ͖Δ • ؀ڥͷFresh͕͞อূ͞Ε͍ͯΔͷͰɺ؀ڥґଘΤϥʔ

    ͷಛఆ͕༰қʹͳΔ • ෳࡶͳઃఆ͸ϨϙδτϦ಺ͷYAMLͳͲʹॻ͘ͷͰɺ όʔδϣϯ؅ཧͰ͖Δɻ
  7. CI as a Service ͱ৬ਓ໰୊ • Ϛγϯߏ੒ؚΊͯɺ΍Δ͜ͱ͕΄΅ίʔυԽ͞Ε͍ͯΔ
 = ʮ৬ਓ͔͠஌Βͳ͍৘ใʯΛۃখԽͰ͖Δ
 㱺

    ৬ਓ΁ͷ஌ࣝଐਓԽ໰୊Λճආ • ͳΜ͔ͩΜͩͰ΍ΕΔ͜ͱʹ੍ݶ͕͋Δ
 = ৬ਓࠢΛద౓ʹ੍ݶͰ͖Δ
 㱺 ຊདྷCIʹ͸ෆదͳ͜ͱΛ΍Βͤͯ͠·͏໰୊Λճආ
  8. CI as a Service ͱ͸ͲΜͳ΋ͷ ʁ
 - CircleCIΛྫʹͱͬͯߟ͑Δ - -

    CircleCIͰϏϧυ͢Δʹ͸ʁ - config.ymlͷத਎Λ஌Δ - ଞʹCircleCIͰͰ͖Δ͜ͱ
  9. ͔Β͘Γ • ඪ४తͳϏϧυγεςϜͰߏங͞Ε͍ͯΕ͹ɺ
 উखʹͦΕʹैͬͨϏϧυΛ࡞ͬͯ͘ΕΔ • maven / gradle • npm

    / yarn • Rake & Bundle • ͜ͷΑ͏ʹɺͰ͖Δ͚ͩʮඪ४ʹै͏ʯͷ͕
 CI as a Service Λ࢖͏ϙΠϯτ
  10. ଞʹCircleCIͰͰ͖Δ͜ͱ • MacOSϏϧυ • AWS CodeDeploy࿈ܞ / Heroku࿈ܞ • SlackͳͲChatOpsͱͷ࿈ܞ

    • SSHͰίϯςφ಺ʹ઀ଓ • ϩʔΧϧʹCircleCIͷΫϩʔϯΛ࡞੒ • CircleCI 2.0 ͔Βಋೖ
  11. ·ͱΊ • CI as a Service ͸ɺؾܰʹCIΛ࢝ΊΔ࠷ྑͷखஈ • ඪ४తͳελΠϧʹ߹ΘͤΔ͜ͱͰɺߴ଎ʹCI/CD Λ։ൃʹऔΓࠐΊΔ

    • ͜ΕΛػձʹඪ४Λֶ΅͏ • ϏϧυγεςϜ / Docker / AWS • Github / CircleCI མͪͨͱ͖ͷ͜ͱ͸ߟ͓͑ͯ͜͏ • CircleCI ΋ Travis ΋ϩʔΧϧϏϧυͰ͖Δ͔Β…