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

2019/02/27 PHP勉強会 #135 PHPでCI・CD

Kaz Watanabe
February 27, 2019

2019/02/27 PHP勉強会 #135 PHPでCI・CD

Kaz Watanabe

February 27, 2019
Tweet

More Decks by Kaz Watanabe

Other Decks in Technology

Transcript

  1. @ k a z _ 2 9
    2 0 1 9 / 2 / 2 7 @ p h p ษ ڧ ձ # 1 3 5
    P H P Ͱ C I / C D ʙ ࠷ ۙ ͜ Μ ͳ ײ ͡ Ͱ ΍ ͬͯ · ͢

    View Slide

  2. W H O ?
    ౉ลҰ޺(@kaz_29)
    גࣜձࣾϋʔτϏʔπ ։ൃࣄۀ෦
    WebΞϓϦέʔγϣϯͷ։ൃ
    iOS/AndroidΞϓϦέʔγϣϯͷ։ൃ
    Ϋϥ΢υΠϯϑϥͷߏஙɾӡ༻

    View Slide

  3. View Slide

  4. P o d c a s t ࢝ Ί · ͠ ͨ ʂ
    #hbsakaba

    View Slide

  5. – J O H N N Y A P P L E S E E D
    “we are hiring”

    View Slide

  6. C I / C D

    View Slide

  7. C I / C D
    • CI - Continuous Integration
    • ܧଓతΠϯςάϨʔγϣϯ
    • CD - Continuous Delivery
    • ܧଓతσϦόϦʔ

    View Slide

  8. “CI/CD͸1ͭͷٕज़Λࢦ͢΋ͷͰͳ͘ɺιϑτ
    ΢ΣΞͷมߋΛৗʹςετͯࣗ͠ಈͰຊ൪؀ڥʹ
    ϦϦʔεՄೳͳঢ়ଶʹ͓ͯ͘͠ɺιϑτ΢ΣΞ։
    ൃͷख๏”

    View Slide

  9. Q u e s t i o n ?
    C I / C D ࣮ ફ ͯ͠ ͍ Δ ํ

    View Slide

  10. ग़ ձ ͍

    View Slide

  11. 2 0 1 2 / 1 1 / 0 3

    View Slide

  12. View Slide

  13. https://www.ryuzee.com/contents/blog/6102
    https://slide.meguro.ryuzee.com/slides/59

    View Slide

  14. ࣮ ફ ͠ ͨ
    • 2012-10-01 - CakePHP2࣮ફೖ໳͕Ͱ·ͨ͠(deployͷষΛॻ͍ͨ)
    • http://kaz29.hatenablog.com/entry/2012/10/01/100150
    • 2012-10-30 - ࠓ࣌ͳCakePHPͰͷ։ൃ؀ڥʂʁ
    • http://kaz29.hatenablog.com/entry/2012/11/30/173424
    • 2013-04-30 - ʮCIΛ൒೥ؒ·Θͯ͠Έͯʯͱ͍͏͓୊ͰLTΛ͖ͯ͠·ͨ͠
    • http://kaz29.hatenablog.com/entry/2013/04/30/122642
    • 2013-04-30 - ʮCakePHPͰֶͿܧଓతΠϯςάϨʔγϣϯʯ- CakePHPΛ࢖ͬͯܧଓ
    తΠϯςάϨʔγϣϯΛ࣮ફ͢Δͳ͕ΕΛղઆͨ͠ॻ੶͕ग़൛͞Ε·͢
    • http://kaz29.hatenablog.com/entry/2014/09/03/095358

    View Slide

  15. View Slide

  16. C I / C D ؀ ڥ ͷ ม ભ / ; Γ ͔͑Γ

    View Slide

  17. # 1

    View Slide

  18. # 1
    • Jenkins
    • εςʔδϯάαʔόʹ͍͋ͷΓ
    • ઐ༻CIαʔό
    • Capistrano2
    • εςʔδϯά͸ࣗಈߋ৽
    • ։ൃ؀ڥ
    • Mac্ͷApache/PHP

    View Slide

  19. # 2

    View Slide

  20. # 2
    • CircleCI(v1)
    • UnitTest
    • Capistrano
    • ࣗಈσϓϩΠ͸΍ͬͯͳ͍
    • ։ൃ؀ڥ
    • Vagrant (+Chef)

    View Slide

  21. # 3

    View Slide

  22. # 2
    • CircleCI(v1)
    • UnitTest
    • dockerԽ
    • Ansistrano
    • ࣗಈσϓϩΠ͸΍ͬͯͳ͍
    • ϓϩϏδϣχϯάͱಉ͡πʔϧ
    • ։ൃ؀ڥ
    • Vagrant+Ansible
    • Docker

    View Slide

  23. # 4 ʙ N O W

    View Slide

  24. # 4 ʙ N O W
    • AWS CodePipeline
    • Azure DevOps

    View Slide

  25. A W S C o d e P i p e l i n e

    View Slide

  26. A W S C o d e P i p e l i n e
    • Docker imageͷbuild
    • ECR΁ͷPush
    • Deploy
    • ECS(Fargate)΁ͷB/G deploy
    • खಈapproveͰB/GΛswap

    View Slide

  27. S A M P L E
    AWS CodePipeline + ECS Fargate

    View Slide

  28. S a m p l e
    https://github.com/aws-samples/ecs-blue-green-deployment/tree/fargate

    View Slide

  29. A W S C o d e P i p e l i n e

    View Slide

  30. A W S C o d e P i p e l i n e

    View Slide

  31. A W S C o d e P i p e l i n e
    https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/sample-docker.html
    buildspec.yml sample

    View Slide

  32. A z u re D e v O p s

    View Slide

  33. A z u re D e v O p s
    • Visual Studio Team ServicesʢVSTSʣΛϦϒϥϯυͯ͠࠶ߏஙͨ͠αʔϏε
    • ։ൃऀ5໊·Ͱ͸ແྉͰ࢖͑Δ(10Ϣʔβ ¥3,360/݄)
    • Ұݸͷδϣϒ (1,800෼/݄·Ͱ)
    • ͔Μ͹ΜϘʔυ
    • GitϦϙδτϦແ੍ݶ(Githubͱ΋࿈ܞՄೳ)
    • ؔ܎ऀແ੍ݶ(ϦϙδτϦ͸ݟΕͳ͍)
    • Visual Studio αϒεΫϥΠόʔ͸Χ΢ϯτ͞Εͳ͍

    View Slide

  34. A z u re D e v O p s
    • Azure Boards -> ͔Μ͹ΜϘʔυ
    • Azure Pipelines -> CI/CDͷ࣮ߦϓϥοτϗʔϜ
    • Azure Repos -> Git ϦϙδτϦ
    • Azure Test Plans -> ୳ࡧςετ(?)
    • Azure Artifacts -> ύοέʔδϦϙδτϦ

    View Slide

  35. A z u re D e v O p s
    • Git repository
    • ͔Μ͹ΜϘʔυ
    • Build pipeline
    • UnitTest
    • Docker imageͷbuild
    • ACR΁ͷpush
    • AKS΁ͷB/G deploy
    • खಈapproveͰGreenΛstage

    View Slide

  36. S A M P L E
    Azure DevOps + Azure Kubernetes Service(AKS)

    View Slide

  37. S a m p l e

    View Slide

  38. A z u re D e v O p s

    View Slide

  39. A z u re D e v O p s

    View Slide

  40. A z u re D e v O p s

    View Slide

  41. A z u re D e v O p s

    View Slide

  42. A z u re D e v O p s

    View Slide

  43. A z u re D e v O p s

    View Slide

  44. · ͱ Ί

    View Slide

  45. · ͱ Ί
    • CI/CD؀ڥͷӡ༻͸݁ߏେม
    • ࡞Γͬͺͳ͠ʹ͢Δͱࢮ͵
    • ཁ݅తʹڐ͢ͳΒSaaSָ͕
    • Ϋϥ΢υϕϯμඪ४ͷ΋ͷΛ࢖͏ͱศར
    • ݸਓతʹAzure DevOpsΦεεϝ

    View Slide

  46. ࠙ ਌ ձ Ͱ օ ͞ Μ Ͳ Μ ͳ ײ ͡ ͔ ੋ ඇ ฉ ͔ ͤ ͯ͘ ͩ ͞ ͍ ʂ
    ͓͠·͍

    View Slide