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

32f2e5ddb187baa2abac66d7e8b283fe?s=128

Seigo Uchida

January 19, 2015
Tweet

Transcript

  1. Docker @ ANTELDY W

  2. ಺ా ੣ޛ

  3. @spesnova

  4. Wantedly ʹ͍ͭͯ

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

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

  7. 2 (2) Rails! 4 iOS! 1 Android! 1 (1) Infrastructure

    2015/01/17ݱࡏ
  8. ࠓ೔ͷ࿩

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

  10. heroku 2011 Ն ~ 2014 Ն

  11. Rails on

  12. web! worker! scheduler! on-off

  13. ଞ͸શ෦ AWS

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

  15. Chef Ͱ؅ཧ

  16. ͋ͱ SaaS

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

  18. GitHub Flow

  19. heroku࣌୅

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

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

  22. Docker 2014 Ն ~

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

  24. AWS Ҡߦ + Docker

  25. Rails Λ heroku ! ͔Β Docker ΁

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

  27. ͜Εʹͨ͠: Capistrano3 Chef Packer

  28. Dockerϗετ Ubuntu 14.04LTS

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

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

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

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

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

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

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

  36. Datadog Ͱ ϞχλϦϯά

  37. None
  38. Logentries gemͰ ϩάऩू

  39. ֶΜͩ͜ͱ

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

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

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

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

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

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

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

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

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

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

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

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

  52. ͦͷଞ 1 ίϯςφ 1 ϓϩηε! ϩά͸ stdout/stderr ΁! ϞχλϦϯάɾϩάऩू͸ઐ༻ίϯςφͰ! restart

    Φϓγϣϯ࢖͏! ग़དྷΔ͚ͩશͯίϯςφͰ΍Δ! Private Registry Φεεϝ͠ͳ͍! etc…
  53. CoreOS 2015 ౙ ~ ?

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

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

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

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

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

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

  60. ֶΜͩ͜ͱ ࣗಈΞοϓσʔτ͸·ͩෆ҆ఆ, off ͕ແ೉! fleet ͸Ϧιʔε؅ཧ͠ͳ͍ͷͰμΠφϛο ΫΦʔέετϨʔγϣϯ͸஫ҙ͢΂͖! k8s ͷ Pod

    ͷ֓೦͕ඞཁʹͳΔཧ༝! cloud-config ͸࠷খݶʹͯ͠ fleet ࢖͏! etc…
  61. ֶΜͰΔ͜ͱ ίϯςφΦʔέετϨʔγϣϯ! fleet ʹ͓͚ΔϦιʔε؅ཧ! etcd ͷΫϥελӡ༻ϊ΢ϋ΢! systemd ͷৄ͍͠࢖͍ํ! etc…

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

  63. ͓ΘΓ

  64. Q&A