バックエンド基盤チームのお仕事 / The value of the backend base team

バックエンド基盤チームのお仕事 / The value of the backend base team

0814cba621ab9aeabcf91b4095d9dd50?s=128

Takuya Matsumoto

November 29, 2019
Tweet

Transcript

  1. ό ο Ϋ Τ ϯ υ ج ൫ ν ʔϜ

    ͷ ͓ ࢓ ࣄ 2 0 1 9 / 1 1 / 2 9 We b α ʔ Ϗ ε ։ ൃ ͷ ͨ ͷ ͠ Έ ํ - ϕʔ γ ο Ϋ x S T O R E S . j p Ta k u y a M a t s u m o t o @ u p i n e t re e
  2. দຊ୓໵ @upinetree STORES.jp, Inc. ϓϩάϥϚ (2019/05 - current)

  3. 2 0 1 2 ೥

  4. S T O R E S . j p ஀

  5. ஀ ੜ ͔ Βͣͬ ͱ ૸ Γ ଓ ͚ ͯ

    ͖ ͯ … 2012
  6. ఏ ڙ ͯ͠ ͖ ͨ Ձ ஋ ͱ ͱ ΋

    ʹ ੵ Έ ॏ ͳ ͬ ͨ ٕ ज़ త ෛ ࠴ 2012
  7. ڊ େ ͳ Ϟ ϊ Ϧε ɺ ֦ େ ͢

    Δ ν ʔϜ ɺ ݹ ͍ ϥ Π ϒ ϥ Ϧ ɺ བྷ · ͬ ͨ ෳ ࡶ ੑ ɺ ෆ ཁ ͳ ί ʔ υ … 2019 2012
  8. ʮ ό ο Ϋ Τ ϯ υ ج ൫ ʯ

    ν ʔϜ ͷ ొ ৔
  9. S T O R E S . j p ͷ

    Τ ϯ δχΞ ν ʔϜ 2 (+1) ໊ Τ ϯ δχ Ξ Ϧ ϯ ά D i v ج ൫ վ ળ G ϓ ϩ μΫ τ ਪ ਐ G ۀ ຿ վ ળ S R E ό ο Ϋ Τ ϯ υ ج ൫
  10. ό ο Ϋ Τ ϯ υ ج ൫ ν ʔϜ

    ͷ ௚ ۙ ͷ ϛ ο γ ϣ ϯ • ֤छϥΠϒϥϦͷόʔδϣϯΞοϓ • ΞϓϦέʔγϣϯͱσʔλج൫ͷ੔උ • શମͷ։ൃޮ཰ͷ޲্ • νʔϜԣஅͨ͠ϨϏϡʔɺٕज़తͳϝϯλϦϯά
  11. ͜ ͜ ൒ ೥ Ͱ ͷ औ Γ ૊ Έ

    • Ruby 2.3 㱺 2.5 • Rails 5.0 㱺 5.1 • Mongoid (※) 6.1 㱺 6.4 • Dependabot ͷಋೖͱ֤ gem ͷΞοϓσʔτ • ෆཁͳ gem ΍ίʔυͷ͓૟আ • CI ߴ଎Խ • ίʔυঢ়گͷՄࢹԽ ※STORES.jp ͷΞʔΩςΫνϟͷಛ௃తͳ఺͸ɺMongoDB ΛΨοπϦ࢖͍ͬͯΔͱ͜Ζ
  12. ͜ ͜ ൒ ೥ Ͱ ͷ औ Γ ૊ Έ

    • Ruby 2.3 㱺 2.5 • Rails 5.0 㱺 5.1 • Mongoid (※) 6.1 㱺 6.4 • Dependabot ͷಋೖͱ֤ gem ͷΞοϓσʔτ • ෆཁͳ gem ΍ίʔυͷ͓૟আ • CI ߴ଎Խ • ίʔυঢ়گͷՄࢹԽ ※STORES.jp ͷΞʔΩςΫνϟͷಛ௃తͳ఺͸ɺMongoDB ΛΨοπϦ࢖͍ͬͯΔͱ͜Ζ Ξοϓσʔτ ޮ཰Խ ࢓ࠐΈ
  13. · ͩ · ͩ ϨΨ γ ʔ ͳ ෦ ෼

    ͸ ଟ ͘ ͋ Δ ΋ ͷ ͷ ண ࣮ ʹ ྑ ͍ ঢ় ଶ ʹ ͯ͠ ͍ ͬͯ ͍ Δ
  14. · ͩ · ͩ ϨΨ γ ʔ ͳ ෦ ෼

    ͸ ଟ ͘ ͋ Δ ΋ ͷ ͷ ண ࣮ ʹ ྑ ͍ ঢ় ଶ ʹ ͯ͠ ͍ ͬͯ ͍ Δ
  15. ʮ ྑ ͍ ঢ় ଶ ʯ ͱ ͸ ʁ

  16. ό ο Ϋ Τ ϯ υ ج ൫ ν ʔϜ

    ͱ ͯ͠ Ͳͷ Α ͏ ʹ ʮ ྑ ͍ ঢ় ଶ ʯ ʹ ޲ ͔ ͏ ΂ ͖ ʁ
  17. ό ο Ϋ Τ ϯ υ ج ൫ ν ʔϜ

    ͷ Ձ ஋ Λ ߟ ͑ͯ Έ Δ
  18. ι ϑ τ ΢ Σ Ξ ͷ Ձ ஋ •

    Ϣʔβ͔Β௚઀ݟ͑ΔՁ஋ • ྫʣຬ଍͢Δػೳ͕͋Δ͔ɺ
 ɹɹ͔͍ͭ΍͍͔͢ ֎ ෦ త ͳ Ձ ஋ ಺ ෦ త ͳ Ձ ஋ • Ϣʔβ͔Β௚઀ݟ͑ͳ͍Ձ஋ • ྫʣ҆ఆతʹػೳΛఏڙ͠ଓ͚ ΒΕΔ͔
  19. ι ϑ τ ΢ Σ Ξ ͷ Ձ ஋ ֎

    ෦ త ͳ Ձ ஋ ಺ ෦ త ͳ Ձ ஋ • Ϣʔβ͔Β௚઀ݟ͑ΔՁ஋ • ྫʣຬ଍͢Δػೳ͕͋Δ͔ɺ
 ɹɹ͔͍ͭ΍͍͔͢ • Ϣʔβ͔Β௚઀ݟ͑ͳ͍Ձ஋ • ྫʣ҆ఆతʹػೳΛఏڙ͠ଓ͚ ΒΕΔ͔
  20. ಺ ෦ త ͳ Ձ ஋ Λ ࢧ ͑Δ S

    R E • SRE (Site Reliability Engineer) • ओʹγεςϜͷ৴པੑ޲্ʹऔΓ૊Ή • ۙ೥ͦͷඞཁੑͷཧղ͕༷ʑͳ૊৫ʹ޿͕͖ͬͯͨ
  21. ಺ ෦ త ͳ Ձ ஋ Λ ࢧ ͑Δ ό

    ο Ϋ Τ ϯ υ ج ൫ • ٕज़తෛ࠴Λฦࡁ͠ɺ։ൃ͠΍͘͢͢Δʁ • ٕज़తෛ࠴ͬͯͳΜͩʁ • ۷ΓԼ͛ͯߟ͑ͯΈΔ
  22. I S O / I E C 2 5 0

    1 0 ͷ ੡ ඼ ඼ ࣭ Ϟ σϧ : 8 ͭ ͷ ಛ ੑ ˞*1"ʮͭͳ͕Δੈքͷιϑτ΢ΣΞ඼࣭ΨΠυʯΑΓҾ༻
  23. I S O / I E C 2 5 0

    1 0 ͷ ੡ ඼ ඼ ࣭ Ϟ σϧ : อ क ੑ • ػೳ௥Ճ΍มߋΛɺޮ཰తʹɺطଘΛյͣ͞ ʹͰ͖Δ͔ • յΕͨͱ͖ʹɺͲ͕͜ݪҼͰɺͲ͜·ͰӨڹ ͢Δ͔Λ൑அ͠΍͍͔͢
  24. ಺ ෦ త ͳ Ձ ஋ Λ ࢧ ͑Δ ό

    ο Ϋ Τ ϯ υ ج ൫ • γεςϜͷอकੑ޲্ʹऔΓ૊Ή
  25. อ क ੑ ͱ ͍ ͏ ͱ ʮ क Γ

    ʯ ͷ ҹ ৅ ͕ ͋ Δ
  26. क Γ ͩ ͚ Ͱ ͸ ͳ ͍ ʂ •

    อकੑ͕͋Δ͔Βͦ͜ɺ͢͹΍͘ϦϦʔεͰ͖Δ • ͢͹΍͘ϦϦʔεͰ͖ΔͱɺԾઆݕূΛճ͠΍͘͢ͳΔ • => ϓϩμΫτ͕૸Γଓ͚ɺਐԽ͢ΔͨΊʹٻΊΒΕΔཁૉ ؔ࿈ɿ https://speakerdeck.com/twada/quality-and-speed
  27. อ क ੑ ͸ ߈ Ί ͷ ͨ Ί ͷ

    ඼ ࣭ Ͱ ΋ ͋ Δ
  28. ಺ ෦ త ͳ Ձ ஋ Λ ࢧ ͑Δ ό

    ο Ϋ Τ ϯ υ ج ൫ • γεςϜͷอकੑ޲্ʹऔΓ૊Ή • कΓ͚ͩͰ͸ͳ͍ɺ߈ΊͷͨΊͷऔΓ૊Έ
  29. ઐ ೚ Ͱ ͸ ͳ ͘ ɺ ػ ೳ ։

    ൃ ν ʔϜ Ͱ ΍ Ε ͹ े ෼ Ͱ ͸ ʁ
  30. ػ ೳ ։ ൃ ν ʔϜ ͕ อ क ੑ

    Λ ୲ อ ͢ Δ ʹ ͸ • ܭըతʹඞཁͳอकੑΛఆٛ͠ɺධՁ͠ɺվળ͍ͯ͘͠ • ৽͘͠ॻ͘ίʔυ͸ઓུతʹରॲՄೳ • ͢Ͱʹอकੑʹରͯ͠ଟ͘ͷ՝୊Λ๊͍͑ͯͨ৔߹͸ʁ
  31. ͢ Ͱ ʹ อ क ੑ ͷ ՝ ୊ Λ

    ๊ ͑ͯ ͍ Δ γε ςϜ • STORES.jp ΋ͦ͏͍ͬͨγεςϜͷ̍ͭ • େ͖ͳมߋΛ൐͏՝୊΋͋ΔʢRails ͷόʔδϣϯΞοϓͳͲʣ • ػೳ։ൃͱͷฒߦͩͱΏͬ͘ΓਐΊ͟ΔΛಘͳ͍ • ߴ͍ίϯϑϦΫτϦεΫ΍ௐ੔ίετ • ༏ઌ౓ͷߴׂ͍ΓࠐΈλεΫʹΑΔதஅͷՄೳੑ
  32. ͦ ͜ Ͱɺ ό ο Ϋ Τ ϯ υ ج

    ൫ ν ʔϜ • ݪଇతʹ͸ׂΓࠐΈλεΫͷӨڹΛड͚ͳ͍ɺઐ໳νʔϜͱͯ͠׆ಈ͢Δ • ෼ް͍՝୊ͷนΛɺ੎͍Λ͚ͭͯഁ͍ͬͯ͘
  33. ࢲ ͕ ߟ ͑Δ ό ο Ϋ Τ ϯ υ

    ج ൫ ν ʔϜ ͷ Ձ ஋ • γεςϜͷอकੑ޲্ʹऔΓ૊Ή • कΓ͚ͩͰ͸ͳ͍ɺ߈ΊͷͨΊͷऔΓ૊Έ • ෼ް͍՝୊ͷนΛɺ੎͍Λ͚ͭͯഁ͍ͬͯ͘
  34. ͜ ΕͰ ΍ ͬͯ ͍ ͚Δ ͧ ʂ

  35. ό ο Ϋ Τ ϯ υ ج ൫ ν ʔϜ

    ͷ ೉ ͠ ͞
  36. ೉ ͠ ͍ • ΍Γ͍ͨ͜ͱ͕ͨ͘͞Μ͋Δ • ͲΕ͕কདྷޮ͍ͯ͘Δ͔ෆ࣮֬ɻ༏ઌ౓શ෦ߴ͘ݟ͑Δ • ཱͪ޲͔͏૬ख͕Ͱ͔͍ɻ՝୊΋Ͱ͔͍ •

    Կ೥΋ͷੵΈॏͶ͕͋Δίʔυϕʔεɻࠓ΋ࠁʑͱมԽ͢Δ
  37. ࣗ ෼ ͨ ͪ ͩ ͚ Ͱ ͳ Μ ͱ

    ͔ ͠ Α ͏ ͱ ͠ ͳ ͍
  38. ν ʔϜ ͕ อ क ੑ Λ ֬ อ ͠

    ΍ ͢ ͍ Α ͏ ͳ ߏ ଄ Λ ࡞ ͬͯ ͍ ͖ ͨ ͍
  39. อ क ੑ Λ ֬ อ ͠ ΍ ͢ ͍

    Α ͏ ͳ ߏ ଄ Λ ߟ ͑Δ • => ΞϓϦέʔγϣϯ΍૊৫͕ɺ࣋ଓతʹਐԽͰ͖ΔΑ͏ʹ༠ಋ͢Δߏ଄ Λ͍͔ʹ༩͑Δ͔ • ͲΜͳ஌͕ࣝͲͷΑ͏ʹڞ༗͞ΕͨΒɺશһͰऔΓ૊Έ΍͍͔͢ • ͲΜͳࢦඪ͕ՄࢹԽ͞Ε͍ͯͨΒɺอकੑΛҙࣝ͠΍͍͔͢ • ΞϓϦέʔγϣϯΛͲͷΑ͏ʹ۠੾ͬͨΒอक͠΍͍͔͢ɻͦͷͱ͖ͷ૊ ৫ߏ଄͸Ͳ͏͋Δ΂͖͔
  40. ਺ ೥ ઌ ͷ ཧ ૝ Λ ඳ ͍ͯ ஍

    ಓ ʹ΍ ͬͯ ͍ ͘ • ཧ૝ঢ়ଶʹ͸Ͳ͏ਐΜͰ͍͘ͷ͕Α͍ͩΖ͏͔ʁ • ͦͷաఔͰͲΜͳ͜ͱ͕ো֐ʹͳΓಘΔͩΖ͏͔ʁ • ো֐ΛͳΔ΂͘ճආ͢ΔͨΊʹɺࠓԿΛ΍Δ΂͖ͩΖ͏͔ʁ
  41. ೉ ͠ ͍ ɺ Կ ΋ Θ ͔ Β ͳ

    ͍
  42. ͜ Ε Β ͷ ౴ ͑Λ ୳ ͠ ͳ ͕

    Β ɺ ੒ Ռ ͱ ͠ ͯ ൃ ද Ͱ ͖ Δ Α ͏ ͕Μ ͹ Γ · ͢
  43. · ͱ Ί • όοΫΤϯυج൫νʔϜ͸ɺSTORES.jp ͕߈Ί͍ͯͨ͘Ίʹγε ςϜͷอकੑ޲্ʹऔΓ૊Ή • Ұ෦ͷνʔϜ͚ͩͰ՝୊ʹཱͪ޲͔͏ͷ͸ݶք͕͋Δ •

    ਺೥ઌͷཧ૝Λඳ͍ͯɺ՝୊Λղܾ͢ΔͨΊͷߏ଄Λߟ͍͑ͯ͘
  44. ͓ Θ Γ ʹ • όοΫΤϯυج൫νʔϜ͕ଘࡏ͢Δɺͱ͍͏͜ͱ΋ɺϝλͳࢹ఺ Ͱ͸՝୊ղܾΛ༠ಋ͢Δߏ଄ͱ͍͑Δ • όοΫΤϯυج൫νʔϜΛؚΉج൫վળGͱ͍͏ମ੍Λ͔ͬ͠Γͱ ΕΔࠓͷ૊৫͸͢͹Β͍͠ͱࢥ͏

  45. A p p e n d i x

  46. I S O / I E C 2 5 0

    1 0 • ιϑτ΢ΣΞͷ඼࣭Λද͢ಛੑΛఆΊͨࠃࡍن֨ • ඼࣭ͷఆٛɺධՁʹࢀߟʹͳΔɻ඼࣭ཁٻͱ͍͏ͷ͸େମಉ͡Α͏ͳ؍఺͕ٻΊΒΕΔ͜ͱ͕ଟ͍ͷ Ͱɺن֨͸଍͕͔Γͱͯ͠ॿ͚ʹͳΔ • JIS X 25010 ͱͯ͠JISԽ • https://www.jisc.go.jp/app/jis/general/GnrJISSearch.html • X25010 Ͱݕࡧͯ͠ӾཡՄೳɻͨͩ͠ɺμ΢ϯϩʔυ͸ෆՄ… • IPAͷࢿྉ΋ࢀߟʹͳΔ • https://www.ipa.go.jp/sec/publish/20150529.html
  47. ι ϑ τ ΢ Σ Ξ ͷ Ձ ஋ ֎

    ෦ త ͳ Ձ ஋ ಺ ෦ త ͳ Ձ ஋ • Ϣʔβ͔Β௚઀ݟ͑ΔՁ஋ • ྫʣຬ଍͢Δػೳ͕͋Δ͔ɺ
 ɹɹ͔͍ͭ΍͍͔͢ • Ϣʔβ͔Β௚઀ݟ͑ͳ͍Ձ஋ • ྫʣ҆ఆతʹػೳΛఏڙ͠ଓ͚ ΒΕΔ͔ Өڹ ཁٻ
  48. ೉ ͠ ͞ 1 : ΍ Γ ͨ ͍ ͜

    ͱ ͕ ͨ ͘ ͞ Μ ͋ Δ • Ϧιʔεʹ͸౰વݶΓ͕͋Δ • ༏ઌ౓෇͚͕೉͍͠ • ͲΕ͕কདྷޮ͍ͯ͘Δ͔ෆ࣮֬ɻ༏ઌ౓શ෦ߴ͘ݟ͑Δ
  49. ೉ ͠ ͞ 2 : ཱ ͪ ޲ ͔ ͏

    ૬ ख ͕ Ͱ ͔ ͍ • ௕೥΋ͷੵΈॏͶ͕͋Δେ͖ͳίʔυϕʔε • 1ͭ͋ͨΓͷ՝୊΋େ͖͍ • গਓ਺Ͱ૬खΛ͍ͯͯ͠͸ɺԿ೥΋͔͔Δ • ରॲ͍ͯ͠Δؒʹ΋ίʔυ͸ࠁʑͱมԽ͢Δ
  50. อ क ੑ ʹ ؔ ͢ Δ ՝ ୊ ͷ

    ੑ ࣭ • ॏཁ౓͕ߴͯ͘ۓٸ౓͕௿͍ • ධՁ͕ਓͦΕͧΕͰɺӨڹΛೝࣝͮ͠Β͍ • ػೳ։ൃͷओཁͳؔ৺ͷ֎ͳͷͰɺޙճ͠ʹͳΓ͕ͪ • ͍ͭͷ·ʹ͔։ൃεϐʔυ͸ݮ଎͠ɺόάΛੜΈ΍͘͢ͳͬͯΔʢා͍ʣ