IBM Cloudで実現するCI/CD入門

B9af09b28f6a47a055a1e15d59037266?s=47 motuo1201
December 05, 2019

IBM Cloudで実現するCI/CD入門

IBM Developer Dojo Online 2019 #09 PaaS&CI/CD
PaaSで継続的デリバリーを活用してみる?
主催 : 日本IBM デベロッパー・アドボカシー事業部

https://ibm-developer.connpass.com/event/156581/

B9af09b28f6a47a055a1e15d59037266?s=128

motuo1201

December 05, 2019
Tweet

Transcript

  1. IBM CloudͰ࣮ݱ͢Δ CI/CDೖ໳

  2. WebinarͷλΠϜςʔϒϧ 内容 時間 CI/CDの概要 - CI/CDとは何か - CI/CDのもたらすメリットと注意点 15分程度 PaaSの概要

    - PaaSとは何か 5分程度 CI/CDのデモ - PaaSとの連携を例として、Githubリポジトリとの連携や Slackへの通知などをお見せします。 30分程度 質疑応答など 10分程度
  3. ࣗݾ঺հ 3 ΤϯδχΞͷ޾ͤΛ໨ࢦ͢&$ಛԽܕελʔτΞοϓɺ גࣜձࣾδϣʔϨϯͷ8FCΞϓϦέʔγϣϯΤϯδχΞ NPUVP ΋͓ͭ ͱ͍͏໊લͰ2JJUBॻ͍ͨΓͯ͠·͢ɻ IUUQTRJJUBDPNNPUVP #.96( *#.$MPVE6TFS(SPVQ

    ౦ژࢧ෦ओ࠵ ೥౓ *#.$IBNQJPOೝఆ௖͖·ͨ͠ʂ ೥3FOFXBMਃ੥த
  4. CI/CDの概要

  5. CI/CDͷ֓ཁʹ͍ͭͯ 3FE)BUͷϗʔϜϖʔδΑΓൈਮ $*$%ͱ͸ɺΞϓϦέʔγϣϯ։ൃͷεςʔδʹࣗಈԽΛऔΓೖΕͯɺސ٬ʹΞϓϦέʔ γϣϯΛఏڙ͢Δස౓ΛߴΊΔख๏Ͱ͢ɻ $*$%͔Βൃੜͨ͠ओͳίϯηϓτ͸ɺܧଓతΠϯςάϨʔγϣϯɺܧଓతσϦόϦʔɺ ܧଓతσϓϩΠϝϯτͰ͢ɻ$*$%͸ɺ৽نίʔυͷ౷߹ʹΑͬͯ։ൃνʔϜ΍ӡ༻νʔ Ϝʹੜ͡Δ໰୊ ͢ͳΘͪʮΠϯςάϨʔγϣϯ஍ࠈʯ ʹର͢ΔղܾࡦͰ͢ɻ ۩ମతʹ͸ɺ$*$%ʹΑͬͯɺ౷߹͓ΑͼςετͷϑΣʔζ͔ΒσϦόϦʔɺσϓϩΠϝ

    ϯτʹࢸΔɺΞϓϦέʔγϣϯͷϥΠϑαΠΫϧશମΛ௨ͯ͡ɺܧଓతͳࣗಈԽͱܧଓత ͳ؂ࢹ͕ಋೖ͞Ε·͢ɻ͜ΕΒͷ࿈݁ͨ͠࡞ۀश׳͸·ͱΊͯʮ$*$%ύΠϓϥΠϯʯͱ ݺ͹ΕɺΞδϟΠϧͳํ๏Ͱڞಉ࡞ۀ͢Δ։ൃνʔϜͱӡ༻νʔϜ͕࣮ࢪ͠·͢ɻ
  6. ࠷΋؆୯ͳ$*$%ͷྫ Githubでソースを管理⇒Cloud Foundry(PaaS)のアプリへのデプロイを実現する例 ্هͷ৔߹ɺ(JU)VCͷϦϙδτϦͷมߋ͕͋ͬͨ৔߹ʹࣗಈతʹ$MPVE'PVOESZΞϓϦʹσϓ ϩΠ͢Δɺͱ͍͏ྲྀΕΛ࣮ݱ͍ͯ͠·͢ɻ ޙ΄ͲɺσϞʹ͓ͯݟͤ͠·͢

  7. ΋͜͠ͷ࢓૊Έ͕ແ͔ͬͨΒɻɻɻ ͜ΕΒͷଟ͘ͷ࢓ࣄ͕׬਱͞Ε͍ͯΔ͔ ख࡞ۀͰνΣοΫ͢Δ͜ͱʹͳΓ·͢ɻ ։ൃνʔϜ • コーディング • 単体テスト ӡ༻νʔϜ ソースコード

    引き渡し • 本番環境へのデプロイ • 障害発生時の切り戻し
  8. ݁Ռɺൃੜ͕ͪ͠ͳ໰୊ • ϦϙδτϦͱຊ൪ͷιʔεʹဃ཭͕͋ΓɺԿΛਖ਼ ͱͯ͠։ൃͯ͠ྑ͍͔෼͔Βͳ͘ͳΔɻ • ςετ͞Ε͍ͯͳ͍ιʔείʔυ͕Ϛʔδ͞Εͯɺ σϓϩΠઌͷ؀ڥ͕ಈ͔ͳ͘ͳΔɻ • ϦϦʔεΛґཔͨ͠ιʔείʔυʹ࿙Ε͕ੜ͡Δ •

    ϦϦʔε·Ͱͷखॱ͕൥ࡶʹͳΓ͗ͯ͢ɺ৽͍͠ ػೳ͕ϦϦʔε͞ΕΔ·Ͱͷظ͕ؒ௕͘ͳͬͯ͠ ·͏ɻ
  9. CI/CDͷಋೖʹΑͬͯ • ϦϙδτϦ͔ΒσϓϩΠͰ͖Δҝɺຊ൪ͷιʔε ͱͷဃ཭͕ͳ͘ͳΔɻ • ࣗಈͰςετ͕࣮ߦ͞Εɺςετʹࣦഊͨ͠৔߹ ͸ϏϧυΛఀࢭ͢Δ͜ͱ͕Ͱ͖Δɻͦͷҝɺ඼࣭ ͕୲อ͞Εͨιʔείʔυ͕ϦϦʔεͰ͖Δ • ϦϙδτϦ͔ΒͷσϓϩΠͳͷͰखॱ౳ͷϛεʹ

    ΑΔσϓϩΠͷࣦഊ͸ແ͘ͳΔɻ • ࣗಈͰσϓϩΠ͞ΕΔͷͰɺӡ༻ෛՙ͕ݮΓɺϦ Ϧʔε·Ͱͷ࣌ؒΛ୹ॖͰ͖Δɻ
  10. Ͱ΋ɺۜͷॐ஄Ͱ͸ແ͍ • ιʔείʔυ؅ཧπʔϧΛ࢖͍͑ͯΔ͔Ͳ͏͔ • ඼࣭Λ୲อ͢Δϑϩʔ͕։ൃ૊৫ʹ͋Δ͔Ͳ͏͔ɻ ϨϏϡʔͳͲ • ςετίʔυΛॻ͘จԽ͕͋Δ͔Ͳ͏͔ • ։ൃͱӡ༻ͦΕͧΕͷίϛϡχέʔγϣϯ͕औΕ

    ͍ͯΔ͔ɻ πʔϧͷಋೖ͚ͩͰऴΘΒͳ͍༷ʹɺ։ൃ૊৫ͱͯ͠%FMJWFSZ·Ͱͷ αΠΫϧ΍จԽΛݟ௚༷͢ʹ͠·͠ΐ͏ʂ Ұ౓ʹશͯ΍Ζ͏ͱ͢ΔͷͰ͸ͳ͘ɺιʔείʔυ؅ཧπʔϧ͔Β σϓϩΠͰ͖Δ༷ʹͳΔ͚ͩͰ΋ɺੜ࢈ੑ͸มΘΓ·͢ɻ Check Point!
  11. PaaSの概要

  12. PaaSの概要 コンピュートリソース CPUとかメモリとかディスクとかの物 理から仮想的なものまで。 下位のリソースの管理、権限、監視、ログ管理、 などが抽象化されている On-demandで利用できる機能やアプリ ケーション。カタログやマーケットプレ イスを経由して利用。多くは「サーバレ ス」なサービス

    API API
  13. IBM Cloud PaaSͰ͸ɺ PaaSͱSaaSͰΞϓϦΛ࡞Δ ロジック部分をPaaSですばや く開発 PaaSで実装しない機能は用意さ れているSaaSを徹底的に利用 API IBM

    Cloud以外の外部のSaaS も使えます
  14. IBM Cloud の PaaS “ Cloud Foundry” • $'ͷ࠷େͷಛ௃͸ɺσΟϕϩούʔ͕ࡉ͔͍͜ͱ͸ Կ΋஌Βͳͯ͘΋

    DGQVTI ͷϫϯɾΞΫγϣϯͰ ༷ʑͳΞϓϦέʔγϣϯΛىಈ͢Δ͜ͱ͕ग़དྷΔ͜ͱ
  15. 例えば、こんな言語が使えます!

  16. いよいよ実践 ×

  17. ४උ *#.$MPVEͷΞΧ΢ϯτΛ࡞Γ·͠ΐ͏ʂ ࡞੒͸ҎԼͷ63-͔Βɻ https://ibm.biz/BdztaJ

  18. ४උ 1BB4ͷΠϯελϯεΛ࡞Γ·͠ΐ͏ʂ ໿෼

  19. Demo1 ܧଓతσϦόϦʔΛ༗ޮʹͯ͠Έ·͠ΐ͏ɻ ໿෼

  20. Demo1の結果

  21. Demo2 ར༻͢ΔϦϙδτϦΛ(JUIVC΁มߋͯ͠Έ·͠ΐ͏ɻ ໿෼ఔ౓

  22. Demo2 ར༻͢Δ(JUϦϙδτϦΛ (JUIVC΁มߋ͢Δ͜ͱ͕ Ͱ͖·ͨ͠ʂ

  23. Demo3 リポジトリからデータを取得してクラウドに デプロイしてみましょう! (約5分)

  24. Demo3

  25. Demo3 (Build Stageͷ಺༰) (JUϦϙδτϦͷ63-΍ ར༻͢ΔϒϥϯνΛࢦఆ ͠·͢ɻ ͜ͷεςοϓ͕ಈ͖ग़͢ ͖͔͚ͬΛఆٛ͠·͢ɻ

  26. Demo3 (Build Stageͷ಺༰) σϓϩΠɾεΫϦϓτͷ DG QVTI Ͱ*#.$MPVE 1BB4 ΁ͷ σϓϩΠΛߦͳ͍ͬͯ·͢ɻ

    σϓϩΠʹඞཁͳॲཧ͸ ͪ͜Βʹॻ͍͍͖ͯ·͠ΐ͏ɻ
  27. Demo3 (Deploy Stageͷ֬ೝ)

  28. Demo4 (JU)VCͷมߋ͕ࣗಈతʹɺ Ϋϥ΢υ্ͷΞϓϦέʔγϣʹ ൓ө͞ΕΔ༷ࢠΛݟͯΈ·͠ΐ͏ɻ ໿෼

  29. Demo5 σϓϩΠͨ݁͠ՌΛ4MBDLʹ௨஌ͯ͠Έ·͠ΐ͏ʂ

  30. Demo6 σϓϩΠ͢ΔલʹΞϓϦέʔγϣϯͷςετΛ ͠·͠ΐ͏ʂ

  31. σϓϩΠ͢Δલʹ୯ମςετΛ͢Δํ๏ େ͖͘෼͚ͯͭͷํ๏͕͋Γ·͢ɻ  σϓϩΠର৅ͷϒϥϯνʹϚʔδ͢Δલʹɺ5SBWJT$*౳Λ࢖ͬͯ  ୯ମςετΛߦ͏ɻࢀߟ  %FMJWFSZ1JQFMJOF্ͰσϓϩΠલʹ୯ମςετΛ࣮ߦ͢Δɻ  ˠࠓճɺ͓ݟͤ͢Δ಺༰

  32. ஫ҙʂ ར༻ՄೳͳαʔϏε͸ϦʔδϣϯʹΑͬͯҟͳΓ·͢ɻ ࢖͍͍ͨαʔϏε͕ɺͦͷϦʔδϣϯʹ͋Δ͔Ͳ͏͔͸ࣄલʹ ֬ೝ͢ΔΑ͏ʹ͠·͠ΐ͏ʂ

  33. ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ Any Questions?