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

Docker Meetup Tokyo #4 - Docker at Wantedly

Docker Meetup Tokyo #4 - Docker at Wantedly

2015/01/17 Docker Meetup Tokyo 第 4 回での発表資料。
Wantedly が Docker の本番運用から学んだことについて発表しました。
スライドだけだと分かりづらいかもしれません。
以下発表時の動画です。
https://www.youtube.com/watch?v=ia5w5UBic2E

Seigo Uchida

January 19, 2015
Tweet

More Decks by Seigo Uchida

Other Decks in Programming

Transcript

  1. Docker
    @ ANTELDY
    W

    View Slide

  2. ಺ా ੣ޛ

    View Slide

  3. @spesnova

    View Slide

  4. Wantedly ʹ͍ͭͯ

    View Slide

  5. ݟ͚ͭΔ৔ॴ
    Λ࣋ͬͯऔΓ૊Ή࢓ࣄΛ
    ৘೤

    View Slide

  6. 150,000 Ϣʔβʔ!
    5,000 ࣾ!
    30 ਓ͘Β͍
    2015/01/17ݱࡏ

    View Slide

  7. 2 (2) Rails!
    4 iOS!
    1 Android!
    1 (1) Infrastructure
    2015/01/17ݱࡏ

    View Slide

  8. ࠓ೔ͷ࿩

    View Slide

  9. ͔ΒֶΜͩ͜ͱ
    Docker
    in production

    View Slide

  10. heroku
    2011 Ն ~ 2014 Ն

    View Slide

  11. Rails on

    View Slide

  12. web!
    worker!
    scheduler!
    on-off

    View Slide

  13. ଞ͸શ෦ AWS

    View Slide

  14. Search!
    Database!
    Storage!
    Image distribute!
    etc…

    View Slide

  15. Chef Ͱ؅ཧ

    View Slide

  16. ͋ͱ SaaS

    View Slide

  17. NewRelic!
    Logentries!
    Wercker!
    DNSimple!
    etc…

    View Slide

  18. GitHub Flow

    View Slide

  19. heroku࣌୅

    View Slide

  20. heroku࣌୅
    σϓϩΠ଎͍ʢ2෼ʣ
    εέʔϧ଎͍ʢ1෼ʣ
    Dyno ͷૢ࡞؆୯

    View Slide

  21. ౦ژϦʔδϣϯ͕ͳ͍
    ͚ͩͲ…

    View Slide

  22. Docker
    2014 Ն ~

    View Slide

  23. ͳ͍ͨ͘͠
    ౦ւ؛΁ߦͬͯؼͬͯΛ

    View Slide

  24. AWS Ҡߦ + Docker

    View Slide

  25. Rails Λ heroku !
    ͔Β Docker ΁

    View Slide

  26. ৭ʑࢼͯ͠:
    Elastic beanstalk
    Centurion
    Chef with Docker

    View Slide

  27. ͜Εʹͨ͠:
    Capistrano3
    Chef
    Packer

    View Slide

  28. Dockerϗετ
    Ubuntu 14.04LTS

    View Slide

  29. DockerϨδετϦ
    Private Registry (S3)

    View Slide

  30. DockerϨδετϦ
    ೝূճආͱՄ༻ੑͷͨΊ!
    શϗετʹ഑උ

    View Slide

  31. Capistrano Ͱ
    “ελςΟοΫ”!
    ΦʔέετϨʔγϣϯ

    View Slide

  32. σϓϩΠ!
    ίϯςφͷૢ࡞!
    ϗετͷૢ࡞!
    etc…

    View Slide

  33. σϓϩΠ
    Dockerfile ͰϏϧυ
    Nginx Ͱ৽چίϯςφ੾Γସ͑

    View Slide

  34. Chef ͱ Packer Ͱ
    ϏϧυʢҰ෦ʣ

    View Slide

  35. DockerϗετAMI!
    “base” Πϝʔδ!
    “ruby” Πϝʔδ!
    etc…

    View Slide

  36. Datadog Ͱ
    ϞχλϦϯά

    View Slide

  37. View Slide

  38. Logentries gemͰ
    ϩάऩू

    View Slide

  39. ֶΜͩ͜ͱ

    View Slide

  40. DockerϏϧυ
    Dockerfileͦͷ··࢖͓͏

    View Slide

  41. Chef+Packer ͰϏϧυ!
    →Ωϟογϡཉ͍͠!
    →ඞཁͳπʔϧ͕ଟ͍

    View Slide

  42. Dockerfile ಈతੜ੒!
    →ཧղͮ͠Β͍

    View Slide

  43. DockerfileͰॻ͘ͷ͸ਏ͍!
    ෳࡶͳΞϓϦέʔγϣϯ!
    →͓ͦΒ͘ίϯςφʹ޲͔ͳ͍!
    →VM ޲͖͔΋

    View Slide

  44. γϯϓϧ͞ΛอͭͨΊ
    ͷ੍໿Λड͚ೖΕΔ

    View Slide

  45. Dockerϗετ
    ϗετ͸ܰྔʹ͓ͯ͘͠

    View Slide

  46. ϗετ͸AMIম͍ͯΔ!
    →Կ͔ม͍͑ͨ!
    →AMIম͘!
    →docker pull ΍Γ௚͠!
    →ϗετ͝ͱ blue-green!
    →݁ߏେม

    View Slide

  47. ϗετʹ৭ʑೖΕͯΔͱ!
    ୯७ʹ؅ཧ୆਺ഒ૿͢Δ

    View Slide

  48. ڈ೥৭ʑେมͩͬͨ…

    View Slide

  49. ίϯςφͷ࢖͍ํ
    heroku ͔Βֶ΅͏

    View Slide

  50. heroku ࢖ͬͯαʔϏε
    ӡ༻ͨ͠ܦݧ͕ྑ͔ͬͨ

    View Slide

  51. one-off ίϯςφͱ͍͏࢖͍ํ!
    ৗʹ“ࣺͯΒΕΔ”Α͏ʹ͓ͯ͘͠!
    ઃఆ͸؀ڥม਺Ͱ౉͢!
    ίϯςφΛࡌͤΔج൫ʹඞཁͳ΋ͷ!
    etc…

    View Slide

  52. ͦͷଞ
    1 ίϯςφ 1 ϓϩηε!
    ϩά͸ stdout/stderr ΁!
    ϞχλϦϯάɾϩάऩू͸ઐ༻ίϯςφͰ!
    restart Φϓγϣϯ࢖͏!
    ग़དྷΔ͚ͩશͯίϯςφͰ΍Δ!
    Private Registry Φεεϝ͠ͳ͍!
    etc…

    View Slide

  53. CoreOS
    2015 ౙ ~ ?

    View Slide

  54. ϗετΛܰྔʹ͍ͨ͠

    View Slide

  55. capistrano͸୆਺૿͑Δͱ஗͍

    View Slide

  56. Rails ίϯςφҎ֎΋ࡌ͍ͤͨ
    etc…

    View Slide

  57. CoreOS ಋೖʹ
    νϟϨϯδத

    View Slide

  58. WebPରԠը૾αʔόʔ!
    ίϯςφͷςετ
    nginx-image-server

    View Slide

  59. etcd / fleet Λϕʔεʹͨ͠!
    ΦʔέετϨʔγϣϯπʔϧ
    kujiraʢࣾ಺πʔϧ։ൃதʣ

    View Slide

  60. ֶΜͩ͜ͱ
    ࣗಈΞοϓσʔτ͸·ͩෆ҆ఆ, off ͕ແ೉!
    fleet ͸Ϧιʔε؅ཧ͠ͳ͍ͷͰμΠφϛο
    ΫΦʔέετϨʔγϣϯ͸஫ҙ͢΂͖!
    k8s ͷ Pod ͷ֓೦͕ඞཁʹͳΔཧ༝!
    cloud-config ͸࠷খݶʹͯ͠ fleet ࢖͏!
    etc…

    View Slide

  61. ֶΜͰΔ͜ͱ
    ίϯςφΦʔέετϨʔγϣϯ!
    fleet ʹ͓͚ΔϦιʔε؅ཧ!
    etcd ͷΫϥελӡ༻ϊ΢ϋ΢!
    systemd ͷৄ͍͠࢖͍ํ!
    etc…

    View Slide

  62. ·ͱΊ
    ໎ͬͨΒγϯϓϧͳํʂ!
    Docker & CoreOS ָ͍͠ʂ!
    ҙݟަ׵͠·͠ΐ͏ʂ

    View Slide

  63. ͓ΘΓ

    View Slide

  64. Q&A

    View Slide