最近やった仕事の話 #shibuyarb

B8668563cbe87543c303dbb818cf9f02?s=47 onigra
March 18, 2015

最近やった仕事の話 #shibuyarb

Shibuya.rb 2015/03/18

参考資料、リンク

Circle ci and docker+serverspec by @minimum2scp
http://www.slideshare.net/minimum2scp/circle-ci-and-dockerserverspec

CircleCIのキャッシュを利用する
https://gist.github.com/onigra/17b06a26356e7cc75c82

Dockerイメージのレイヤー構造について
http://d.hatena.ne.jp/enakai00/20140802/1406958412

特定のセキュリティグループのInboundの追加と削除のみができるIAM policy
https://gist.github.com/onigra/060877faa60e29f2c07f

B8668563cbe87543c303dbb818cf9f02?s=128

onigra

March 18, 2015
Tweet

Transcript

  1. ࠷ۙ΍ͬͨ࢓ࣄͷ࿩ @nekogeruge_987 @onirgra_ Shibuya.rb 2015.03.18

  2. ͜ͷ΁Μ࢖ͬͨ࿩Ͱ͢ - CircleCI - Docker - Serverspec - Ansible

  3. Yudai Suzuki / ླ໦༤େ onigra @nekogeruge_987 ༗ݶձࣾexvisionz @onigra_

  4. - ΠϯϑϥCIͷ࿩ - αϒγεςϜ։ൃͷ࿩ - طଘγεςϜͷe2eςετͷ࿩ ͓඼ॻ͖

  5. ΠϯϑϥCIͷ࿩

  6. ҰݴͰݴ͏ͱ CircleCI্ʹDockerίϯςφىಈͯ͠ Ansible࣮ߦͯ͠ Serverspec࣮ߦ͢ΔΑ͏ʹͨ͠

  7. CIπʔϧษڧձ@෱ԬͰৄ͍͠આ໌ͷࢿྉ͕Ξοϓ͞Εͯ·ͨ͠ɻ ΍ͬͯΔ͜ͱ͸جຊతʹҰॹͰͨ͠ɻ ! Circle ci and docker+serverspec by @minimum2scp http://www.slideshare.net/minimum2scp/circle-ci-and-dockerserverspec

  8. ೰Έ # ԿΛςετ͢Δ΂͖͔͕͋·Γࢥ͍͔ͭͳ͍ - ͱΓ͋͑ͣϛυϧ΢ΣΞͷόʔδϣϯͱ͔… - ۭ͍ͯΔϙʔτͱ͔… - Ϣʔβʔͱ͔… -

    Πϯϑϥํ໘ͷਓͷ஌ݟ΄͍͠
  9. αϒγεςϜ։ൃͷ࿩

  10. طଘγεςϜʹ࡞ΒΕͨWebAPIͱ࿈ܞ͢Δ RailsΞϓϦ։ൃͰɺ طଘγεςϜͷAPIΛୟ͘ ςετΛͲ͏͢Δ͔ͱ͍͏໰୊

  11. ղܾҊ A. طଘΞϓϦͷDockerΠϝʔδΛ࡞Γɺ CircleCI্Ͱίϯςφىಈ͢Δ 
 B. طଘΞϓϦΛAWSͰಈ͔ͯ͠
 CircleCI͔Βͦ͜Λୟ͘

  12. AҊ࠾༻ - ޾͍ʹ΋طଘΞϓϦͷVagrant؀ڥߏங༻ Ansible Playbook͕͋ͬͨ ! - ݱঢ়ಈ͍ͯΔ؀ڥʹखΛೖΕͣʹͰ͖ͦ͏

  13. ΍ͬͯΈͯ # ͦ΋ͦ΋طଘΞϓϦͷ؀ڥ࡞Δͷʹ͕͔͔࣌ؒΔ - Playbookͷ׬ྃʹ2͙࣌ؒΒ͍͔͔Δ - 1൪͔͔࣌ؒͬͨͷ͸DBͷdumpͷload͚ͩͲ - 1ίϯςφʹϛυϧ΢ΣΞશ෦ೖΓ -

    ෼͚ͯͪΌΜͱಈ͘ॴ·Ͱ΍Δ༨༟͕ແ͔ͬͨ - Image࡞Δͷ΋ࣗಈԽ͔ͨͬͨ͠ # ImageͷऔಘͲ͏͠Α͏ - Private Docker RegistryཱͯΔͷμϧ͍… - Google Container Registry࢖ͬͯ΋Α͔͔ͬͨ΋ - ݁ہɺtar.gzʹͯ͠S3ʹஔ͘Α͏ʹͨ͠ - 2G͙Β͍͋ͬͯ௨৴ྉ͕…
  14. Docker Imageͷऔಘ # CircleCI্ͰS3͔Βऔಘ͢ΔΑ͏ʹ͢Δ - Image͕ஔ͍ͯ͋ΔύεʹΞΫηεͰ͖Δ͚ͩͷ IAM࡞੒ͯ͠࢖͏ - CIrcleCIͷཱͯΔΠϯελϯεͷPublicIPRange͕
 ެ։͞ΕͯΔͷͰɺ͔ͦ͜ΒͷΞΫηεΛڐՄ͢Δ

    - https://circleci.com/docs/ec2ip-and-security-group - CircleCIͷΩϟογϡΛར༻͢Δ - https://gist.github.com/onigra/17b06a26356e7cc75c82
  15. ϋϚͬͨॴ # Imageͷ࡞੒ͱϩʔυͰϋϚͬͨ - docker commit -> save -> import

    = ಈ͔ͳ͍ - docker export -> import = ಈ͘ - docker commit -> save -> load = ಈ͘ - http://d.hatena.ne.jp/enakai00/20140802/1406958412
  16. طଘγεςϜe2eςετͷ࿩

  17. طଘγεςϜͷςετ͕ແ͍ - ͱΓ͋͑ͣCapybara + PhantomJSͰςετॻ͍ͨ - ࡞͚ͬͨͩ͡Ό୭΋࢖Θͳ͍ͩΖ͏͔Βɺࣗಈ࣮ߦ͞ΕΔΑ͏ʹ͍ͨ͠ - CircleCIͰಈ͔͢ -

    Staging(AWS)͸IP੍ݶ͔͔ͬͯΔ - Staging͕ಈ͍ͯΔEC2ΠϯελϯεͷSecurityGroupʹର͠ɺ ಈతʹIP੍ݶͷ௥Ճ&࡟আΛߦ͏ (BҊ͸͜ΕͰ΍Δͭ΋Γͩͬͨ) - ্هͷΈ͕Ͱ͖ΔIAMϢʔβʔΛ࡞੒͠ɺςετͷલͱޙʹ্هΛߦ͏ - https://gist.github.com/onigra/060877faa60e29f2c07f
  18. ײ૝ # ͍ΘΏΔmicroserviceతͳαϒγεςϜͷ૊Έ߹ΘͤΛऔΔΑ͏ͳΞʔΩςΫνϟͷ৔߹ɺ
 Dockerͷ࢖͍ॴ͕͚ͬ͜͏͋Γͦ͏ - ։ൃ؀ڥΛαΫοͱىಈͰ͖Δͷ͸ศར - αϒγεςϜͷ؀ڥΛDockerͰ؆୯ʹ؅ཧͰ͖ΔΑ͏ʹ͍ͨ͠ - ͱ͸ݴ͑ɺ࢖ͬͯΈͯ໘౗ͳॴ͕ଟ͍ͱײ͡Δ

    - Docker͓͡͞Μͷඞཁੑ # ࠓͷϓϩδΣΫτͰ͸ɺࣗ෼͕࡞ͬͨαϒγεςϜΛAtlas(چVagrantCloud)Ͱ ؀ڥߏஙࡁΈͷVagrantBoxΛ഑෍͍ͯ͠Δ - Atlasศརͦ͏ͳͷͰɺ΋͏ͪΐͬͱௐ΂ͯ࢖ͬͯΈΑ͏ͱࢥͬͯΔ # ProductionͰDockerΛੵۃతʹ࢖͍͍ͨͱ͸·ͩࢥΘͳ͍ - ଞʹ৮ΕΔਓ͕͍ͳ͍͠ - Ͱ΋ɺ͙͢Ͱ͖ΔΑ͏ʹ͸͓͖͍ͯͨ͠ # Docker࢖ͬͯΈͯࢥͬͨ͜ͱͱ͔͕࠷ۙͷRebuild PodcastͰ݁ߏ࿩͞Εͯͨ - http://rebuild.fm/79/ - http://rebuild.fm/83/