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

エンジニアリング組織アーキテクチャの調査と設計要点に対する考察 / Investigation...

エンジニアリング組織アーキテクチャの調査と設計要点に対する考察 / Investigation of engineering organization architecture and consideration of design points

第5回 Web System Architecture 研究会 (WSA研) の発表資料です。
https://websystemarchitecture.hatenablog.jp/entry/2019/07/30/172650

Narimichi Takamura

September 28, 2019
Tweet

More Decks by Narimichi Takamura

Other Decks in Technology

Transcript

  1. ࣗݾ঺հ • Takamura Narimchi / ߴଜ ੒ಓ • @nari_ex •

    גࣜձࣾϋʔτϏʔπ औక໾ VP of Engineering • ిؾ௨৴େֶ • ৘ใཧ޻ֶ෦৘ใɾ௨৴޻ֶՊ ֶ࢜ • άϩʔϏεܦӦେֶӃ • ܦӦݚڀՊܦӦઐ߈ म࢜ʢMBAʣ ୈ 5 ճ Web System Architecture ݚڀձ (2019/09/28) | Takamura Narimichi (@nari_ex) 2
  2. ໨࣍ • എܠͱ՝୊ • ୅දతͳ૊৫ߏ଄ͱ։ൃख๏ͷௐࠪ • ૊৫ͱ͸ɺ૊৫ͷڥքͱ͸ • ·ͱΊ ୈ

    5 ճ Web System Architecture ݚڀձ (2019/09/28) | Takamura Narimichi (@nari_ex) 3
  3. എܠͱ՝୊ • Web γεςϜͷ੒௕ʹ൐͍ɺෳࡶ͕͞૿Ճ • ૊৫ؒͷ࿈ܞෆ଍ʹىҼ༷ͯ͠ʑͳ໰୊͕ൃੜ • Web γεςϜͷ੒௕ϑΣʔζʹ͓͍ͯɺΤϯδχΞϦϯά૊৫ ͷύϑΥʔϚϯεͱεέʔϥϏϦςΟ͕ϘτϧωοΫʹ

    • ΤϯδχΞϦϯά૊৫ͷઃܭʹ͓͍ͯମܥԽ͞Εͨ஌ݟ͕๡͠ ͍ͨΊɺख୳ΓͰߦ͏͜ͱ͕ଟ͍ ୈ 5 ճ Web System Architecture ݚڀձ (2019/09/28) | Takamura Narimichi (@nari_ex) 4
  4. ୅දతͳ Web γεςϜΞʔΩςΫνϟͱ૊৫ߏ଄ • ϞϊϦε • ϚΠΫϩαʔϏε ୈ 5 ճ

    Web System Architecture ݚڀձ (2019/09/28) | Takamura Narimichi (@nari_ex) 7
  5. ϞϊϦεͷ૊৫ߏ଄ • యܕతͳڞ༗DBϞσϧ • ϑϩϯτΤϯυ։ൃɺόοΫΤϯυ։ൃɺ DBAɺOps ͱ͍͏Α͏ʹػೳผ૊৫Ͱߏ ੒͞Ε͍ͯΔ৔߹ʹ࠾༻͞ΕΔ͜ͱ͕ଟ͍ • ٕज़՝୊:

    DB पΓͷॲཧੑೳ΍มߋίε τ͕։ൃͷϘτϧωοΫʹͳΔ • ૊৫՝୊: ෦໳ؒͷαΠϩԽ͕ൃੜ͠΍͢ ͍ɺڞ༗ϦιʔεΛ࣋ͭ૊৫ʢDBAɺ Opsʣʹෛՙ͕ूத͢Δ ୈ 5 ճ Web System Architecture ݚڀձ (2019/09/28) | Takamura Narimichi (@nari_ex) 8
  6. ϚΠΫϩαʔϏεͷ૊৫ߏ଄ • ٯίϯ΢ΣΠઓུʹΑΓɺαʔϏε͝ͱʹνʔ ϜΛߏ੒͢Δ • ٕज़՝୊: αʔϏεؒ௨৴ࣦഊͷέΞ΍τϥϯ βΫγϣϯͷෳࡶԽͳͲɺαʔϏε͕෼ࢄͨ͠ ͜ͱʹΑΔσϝϦοτ͕ੜ͡Δ •

    ૊৫՝୊: • ੹೚ൣғ͕αʔϏεશମʹͳΔͨΊɺཁٻ͞ ΕΔٕज़ྖҬ͕֦େ͢Δ • ୲౰αʔϏεΛෳ਺࣋ͭ৔߹ʹ͸ɺաෛՙʹ ͳΔνʔϜ΍ϝϯόʔ͕ੜ͡ΔՄೳੑ͕͋Δ ୈ 5 ճ Web System Architecture ݚڀձ (2019/09/28) | Takamura Narimichi (@nari_ex) 10
  7. DevOpsʁ SREʁ • DevOps: ૊৫αΠϩͷղফΛ໨తͱͨ͠ந৅֓೦ • ந৅౓͕ߴ͘૊৫ΞʔΩςΫνϟͷઃܭ·Ͱམͱ͠ࠐΉ͜ͱ ͕೉͍͠ • SRE:

    ૊৫αΠϩͱӡ༻ٕज़ऀͷઢܗ૿ՃΛղফ͢ΔͨΊͷٕज़ ख๏ • ΤϯδχΞϦϯά૊৫ͱ͍͏είʔϓ͸ෆద౰ ୈ 5 ճ Web System Architecture ݚڀձ (2019/09/28) | Takamura Narimichi (@nari_ex) 12
  8. ૊৫ͷڥքͷछྨ Ұൠతͳ૊৫ਤͷఆٛҎ֎ʹ΋׆ಈൣғ͝ͱʹఆٛ͞ΕΔ2ͭͷڥք͕͋Δ2 ૊৫ͷू߹ମͷύϑΥʔϚϯε͸ୈೋɺୈࡾͷڥքΛ͍͔ʹίϯτϩʔϧ͢Δ͔͕ॏ ཁͱͳΔ3 1. ୈҰڥք: ݫີͳʮ૊৫ʯ֓೦ʹ΋ͱͮ͘ڥք 2. ୈೋڥք: υϝΠϯͱͯ͠ͷڥք

    3. ୈࡾڥք: ҙࣝతௐ੔ͷٴͿൣғͱͯ͠ͷڥք 3 Niels Pflaeging, Organize for Complexity, 2014 2 ܂ాߞଠ࿠ɾాඌխ෉, "૊৫࿦", 2010 ୈ 5 ճ Web System Architecture ݚڀձ (2019/09/28) | Takamura Narimichi (@nari_ex) 18
  9. ૊৫ͷڥք4 4 Team Topology, Ma.hew SkeltonɾManuel Pais, 2019 ୈ 5

    ճ Web System Architecture ݚڀձ (2019/09/28) | Takamura Narimichi (@nari_ex) 19
  10. ૊৫ؒͷ૬ޓ࡞༻ͷଳҬ4 4 Team Topology, Ma.hew SkeltonɾManuel Pais, 2019 ୈ 5

    ճ Web System Architecture ݚڀձ (2019/09/28) | Takamura Narimichi (@nari_ex) 21
  11. team-sized architecture4 • Monoliths vs Microservices is Missing the Point

    • Start with Team Cogni7ve Load • 2019/09/17 ʹग़൛͞Εͨຊ 4 Team Topology, Ma.hew SkeltonɾManuel Pais, 2019 ୈ 5 ճ Web System Architecture ݚڀձ (2019/09/28) | Takamura Narimichi (@nari_ex) 23
  12. team-sized architecture • νʔϜΛ୯ʹಉ͡ϚωʔδϟʔΛ࣋ͭݸਓͷू·ΓͰ͸ͳ͘ɺಠࣗͷֶशɺ໨ඪɺϛογϣ ϯɺ͓Αͼ߹ཧతͳࣗ཯ੑΛ࣋ͭΤϯςΟςΟͷू·Γͱఆٛ • 7ʙ9໊ఔ౓ͷνʔϜΛ૊৫ͷجຊ୯Ґͱ͢Δ • νʔϜͷ੹೚ʹΑͬͯڥքΛ໌֬ʹ͢Δ •

    ૊৫ͷਐԽΛײ஌ͯ͠׆ಈΛमਖ਼͢Δ • νʔϜͷೝ஌ෛՙʢCogni&ve LoadʣͷΩϟύγςΟʹ߹ΘͤͯνʔϜͷ੹೚Λ੍ݶ͢Δ • 4ͭͷνʔϜλΠϓ • 3ͭͷ૬ޓ࡞༻λΠϓ ୈ 5 ճ Web System Architecture ݚڀձ (2019/09/28) | Takamura Narimichi (@nari_ex) 24
  13. team-sized architecture: 4ͭͷνʔϜλΠϓ Stream-aligned νʔϜ͸૊৫ͷओཁͳνʔϜλΠϓͰ͋ΓɺଞͷνʔϜ͸ɺStream-aligned νʔϜͷෛ୲Λܰݮ͢Δ͜ͱͰ͢ɻ • Stream-aligned νʔϜ •

    ୯Ұͷ੡඼·ͨ͸αʔϏεɺ୯Ұͷػೳηοτɺ୯ҰͷϢʔβʔδϟʔχʔɺ·ͨ͸୯ҰͷϢʔβʔϖϧιφͷ࡞ۀϑϩʔ Λ୲౰͢Δ • Enabling νʔϜ • υϝΠϯ஌͕ࣝඞཁͳ࡞ۀϑϩʔͷࢧԉΛ୲౰͢Δ • Complicated-subsystem νʔϜ • ෳࡶͳαϒγεςϜͷࢧԉΛ୲౰͢Δ • Pla9orm νʔϜ • ηϧϑαʔϏεAPIɺπʔϧɺαʔϏεɺ஌ࣝɺαϙʔτͷج൫Λ୲౰͢Δ ୈ 5 ճ Web System Architecture ݚڀձ (2019/09/28) | Takamura Narimichi (@nari_ex) 25
  14. team-sized architecture: 3ͭͷ૬ޓ࡞༻ͷλΠϓ • Collabora(on • ผͷνʔϜͱۓີʹ࿈ܞ͢Δ • X-as-a-Service •

    ࠷খݶͷίϥϘϨʔγϣϯͰԿ͔Λফඅ·ͨ͸ఏڙ͢Δ • Facilita(ng • ଞͷνʔϜΛࢧԉʢ·ͨ͸ࢧԉʣͯ͠ো֐Λղফ͢Δ ୈ 5 ճ Web System Architecture ݚڀձ (2019/09/28) | Takamura Narimichi (@nari_ex) 26
  15. team-sized architetcture: ࣮૷ྫ 4 4 Team Topology, Ma.hew SkeltonɾManuel Pais,

    2019 ୈ 5 ճ Web System Architecture ݚڀձ (2019/09/28) | Takamura Narimichi (@nari_ex) 27
  16. ΤϯδχΞϦϯά૊৫ΞʔΩςΫνϟͷઃܭͷཁ఺ νʔϜ୯ҐͰۀ຿Λߦ͏͜ͱΛલఏʹͨ͠৔߹ɺҎԼͷཁ఺͕૊৫ΞʔΩςΫνϟઃܭʹ໾ཱͭ 1. ૊৫ʢਓͷ׆ಈʣͷڥքʢൣғʣΛ۩ମԽ͢Δ • 3ͭͷڥքΛઃܭ͢Δ • νʔϜͷڥքʢ੹೚ൣғʣ • υϝΠϯͷڥք

    • νʔϜؒɺݸਓؒͷڥքΛ۩ମԽ͢Δ 2. ૊৫ؒͷ૬ޓ࡞༻ͷྲྀΕΛܾΊΔ͜ͱ • ૊৫ؒ͝ͱʹظ଴͢Δ૬ޓ࡞༻ͷγʔϯ΍ස౓Λఆٛ͢Δ ୈ 5 ճ Web System Architecture ݚڀձ (2019/09/28) | Takamura Narimichi (@nari_ex) 30