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

システムの変化に追従可能でかつ理解し易いドキュメントシステムのモデル化 / Web System Architecture #8

システムの変化に追従可能でかつ理解し易いドキュメントシステムのモデル化 / Web System Architecture #8

Ken’ichiro Oyama

June 04, 2021
Tweet

More Decks by Ken’ichiro Oyama

Other Decks in Technology

Transcript

  1. ྫਅʹਖ਼͍͠υΩϡϝϯτ w ਅʹਖ਼͍͠υΩϡϝϯτ͸γεςϜͷγεςϜཁૉΛશͯઆ໌Ͱ͖͍ͯΔͨΊ ɹ  ·ͨ ɹ  w ͸ͲͷΑ͏ͳ΋ͷ͔ʁ

    ͲͷγεςϜཁૉΛઆ໌͍ͯ͠Δ͔ΛࣔͤΔ ର৅ͷγεςϜཁૉʹ͍ͭͯઆ໌Λ͍ͯ͠ΔʢΞϊςʔγϣϯͱݺͿʣ w ʢͳ͓ɺલఏͰड़΂͍ͯΔʮυΩϡϝϯτΛ௨͕ͯ͡ཧղ͠΍͍͢ʯ͸͜ͷΞϊςʔ γϣϯʹΑΓ৘ใྔ͕ଟ͍͜ͱ͕ཁҼͩͱߟ͍͑ͯΔʣ desc : S → D desc(S) = D desc()  % 4 desc
  2. w ਖ਼͍͜͠ͱ͕هࡌ͞Ε͍ͯΔ͕ෆे෼ͳυΩϡϝϯτ ͸ ͷ෦෼ू߹ ɹ  ·ͨ ɹ  w

    ͋Δू߹ ͷཁૉͷݸ਺Λه߸ Ͱද͢ͱ 
 ͕ ʹ͚ۙΕ͹͍ۙ΄Ͳྑ͍ɻ w ͕ཧ૝ɻ D desc(S) D ⊆ desc(S) desc(S) = D A n(A) n(D ∩ desc(S)) n(S) n(S) − n(D ∩ desc(S)) = 0 % 4 ྫਖ਼͍͜͠ͱ͕هࡌ͞Ε͍ͯΔ͕ෆे෼ͳυΩϡϝϯτ  desc
  3. w ͔ͭ ͱͳΔݩ ͕ଘࡏ͢Δ w ຊൃදͰ͸ʮؒҧ͍ཁૉʯͱݺͿ w ؒҧ͍ཁૉͷू߹͸ࠩू߹Ͱද͢͜ͱ͕Ͱ͖Δ ɹ 

    desc(sx ) ∈ D sx ∉ S sx D − desc(S) % 4 ྫؒҧͬͨ͜ͱ͕هࡌ͞Ε͍ͯΔυΩϡϝϯτ  desc
  4. w γεςϜ͸ܧଓతʹ։ൃ͞ΕΔ΋ͷͰ͋ΓมԽ͢Δ΋ͷͰ͋Δɻ w ͋Δ࣌ࠁ ͷγεςϜΛ ͱද͢ɻ࣌ࠁ ͕ɺ ͱܦա͢Δ৔߹ɺͦΕͧΕͷγ εςϜΛ ͱ͢Δͱɺ؆୯ʹ͸

    ɹ  ɹ  ɹͱγεςϜཁૉ͕࣌ؒͷܦաʹԠͯ͡มԽ͍ͯ͘͠ t St t t1 , t2 , …tn St1 , St2 , …Stn n(St1 ∩ St1 ) = n(St1 ) n(St1 ∩ St2 ) > n(St1 ∩ St3 ) > … > n(St1 ∩ Stn ) ࣌ؒͷܦաʹԠͯ͡มԽ͢ΔγεςϜ  St1 St2 St3 Stn
  5. w ຊϞσϧʹ͓͍ͯ͸ ͷγεςϜཁૉͷมԽʹԠͯ͡ ͷཁૉ͕௥ैͰ͖Ε͹ྑ͍ɻ w खಈͰγεςϜʹมԽʹ௥ै͠ଓ͚Δͷ͸೉͍͠ɻͦ͜ͰυΩϡϝϯτͷࣗಈੜ੒ ͕ߟ͑ΒΕΔɻ w ·ͣɺυΩϡϝϯτ Λੜ੒͢Δؔ਺Λ

    ͱͨ͠৔߹ɺ࣌ࠁ ʹԠͯ͡มԽ͢Δͱ͍ ͏͜ͱ͸ ɹ  w ͞Βʹͦͷ݁Ռ͕ ͱͳΕ͹ɺ ͷมԽʹ௥ैͰ͖Δͱ͍͑Δɻ ɹ S D D f() t D = f(t) desc(Stn ) Stn D = f(t) = desc(Stn ) γεςϜʹมԽʹ௥ैͰ͖ΔυΩϡϝϯτ  
  6. w ͷ࣌ࠁ ʹΑΔมԽΛ ͱؔ਺Ͱද͢ͱ͢Δͱ   w ্هΑΓγεςϜΛೖྗͱͯ͠υΩϡϝϯτΛੜ੒Ͱ͖Ε͹ྑ͍͜ͱ͕Θ͔Δɻ St t

    St = S(t) D = f(t) = desc(Stn ) = desc(S(t)) f = desc(S) γεςϜʹมԽʹ௥ैͰ͖ΔυΩϡϝϯτ  
  7. w υΩϡϝϯτ Λཧղ͠΍͘͢͢ΔͨΊʹ͸ɺਓͷཧղՄೳͳཁૉ਺Λߟྀ͢Δඞ ཁ͕͋Δɻ w υΩϡϝϯτ Λ෦෼ू߹ ʹ෼ׂ͠ɺͦͷͦΕͧΕͷ ͸ ɹ

     Ͱ͋Δ͜ͱ͕๬·͍͜͠ͱ͕Θ͔Δɻ D D D1 , D2 , D3 …Dn Dn k < n(Dn ) ཧղ͠΍͍͢υΩϡϝϯτͷ৚݅ 
  8. w υΩϡϝϯτ ͷ෦෼ू߹ͷ෼͚ํʹ͍ͭͯ͸ɺ͞Βʹཧղ͠΍͘͢͢ΔͨΊʹ ༷ʑͳΞϓϩʔν͕औΕΔɻ w ྫ͑͹αʔόҰཡ΍ωοτϫʔΫਤɺ֤ϚΠΫϩαʔϏε͝ͱɺॲཧ͝ͱɺ౳ɻ w ͜ΕΛ*40*&$*&&&ʹͳΒͬͯʮϏϡʔʯͱݺͿʢͨͩ͠ຊՈͷ ͦΕͱ͸ݫີʹ͸ఆ͕ٛҟͳΔʣɻ w

    Ϗϡʔ͸εςʔΫϗϧμʔʢͦͷυΩϡϝϯτͷର৅ऀʣ͕ཧղ͢΂͖ίϯςΩε τʹԊͬͯهड़͞ΕΔɻ w ͋͘·ͰίϯςΩετʹΑͬͯ෼ׂ͢ΔͷͰɺ ʹؚ·ΕΔཁૉ͕ ʹؚ·ΕΔ ͜ͱ΋͋Δɻ w Αͬͯཧղ͠΍͢͞Λ࣋ͬͨυΩϡϝϯτͷಛ௃ͱͯ͠͸ҎԼͷΑ͏ʹͳΔ ɹ D D1 D2 D = D1 ∪ D2 ∪ D3 ∪ … ∪ Dn υΩϡϝϯτͷ෼ׂͷΞϓϩʔν 
  9. w IUUQTHJUIVCDPNL-P8OEJBH w ΠϯϑϥͷΞʔΩςΫνϟυΩϡϝϯτΛओ؟ʹஔ͍ͨυΩϡϝϯςʔγϣϯπʔϧ w γεςϜཁૉΛೖྗʢ:".-ʣͱͯ͠༩͑ΔͱɺͦΕͧΕʹରͯ݀͠ຒΊܗࣜͰΞϊ ςʔγϣϯΛهड़Ͱ͖Δ w ৚݅͸ΠϯϑϥΛߏ੒͢ΔγεςϜཁૉͷछྨ͕ଟ༷ͳͨΊ֎෦πʔϧ͔Βͷೖྗ Λ૝ఆ

    w ݀ຒΊܗࣜʹυΩϡϝϯτͷΧόϨοδ͕ग़ͤΔ w γεςϜཁૉΛ೚ҙͷάϧʔϓͰάϧʔϐϯά͢Δ͜ͱ͕Ͱ͖ɺͦͷάϧʔϓʹରͯ͠ υΩϡϝϯτΛهड़Ͱ͖Δ w ৚݅Λຬ͍ͨͯ͠Δ w άϧʔϐϯάͨ͠ཁૉͰߏ੒ਤʢίϯϙʔωϯτ഑ஔਤʣΛࣗಈੜ੒ OEJBH 
  10. OEJBH --- name: 3-Tier Architecture docPath: ../output Views: - name:

    overview layers: ["consul", "vip_group"] - name: http-lb layers: ["vip_group"] labels: ["http"] nodes: - name: lb-* components: - nginx?icon=lb-l7 clusters: - 'consul:dc1' - 'vip_group:lb' - name: app-* components: - nginx?icon=proxy - Rails?icon=cube4 clusters: - 'consul:dc1' - name: db-* components: - PostgreSQL?icon=db clusters: - 'consul:dc1' networks: - labels: - http route: 
  11. w γεςϜΛೖྗͱͨ͠υΩϡϝϯτͷࣗಈੜ੒Λߟ͑Δʹ͋ͨͬͯɺೖྗπʔϧͱͯ͠༗ޮͳ ͷ͸ɺࡢࠓͷ0CTFSWBCJMJUZ΍4FSWJDF.BQ෼ࢄτϨʔγϯ グ पลͷٕज़͕༗ޮͩͱߟ͍͑ͯ Δ w ྫ͑͹IUUQTHJUIVCDPNZVVLJTIBXL΋αʔόؒͷωοτϫʔΫͱ͍͏γεςϜཁૉ ऩूʹ༗༻ w

    ্هʹՃ͑ͯࢲͷڵຯͷείʔϓ͸ʮγεςϜͷΞʔΩςΫνϟཧղʯ΍ʮΦϯϘʔσΟϯ άʯʹ͍ۙͷͰɺʮΞϊςʔγϣϯػೳʯ͸ඞਢͩͱߟ͍͑ͯΔ w υΩϡϝϯτͷʮཧղ͠қ͞ʯͱ͍͏ࢹ఺Ͱͷղܾํ๏ͱͯ͠ຊൃදͰ͸ʮ෼ׂʯͱ͍͏Ξϓ ϩʔνΛఏҊ͕ͨ͠ଞʹԿ͔ΞΠσΞ͕͋Ε͹஌Γ͍ͨ w ʮཧղͷ͠қ͞ͷͨΊͷ෼ׂʯͱ͍͏ख๏͸݁ߏ༗༻ͩͱߟ͍͑ͯͯɺྫ͑͹ো֐ൃੜ࣌ ʹɺؔ܎͢ΔΞʔΩςΫνϟཁૉ͚ͩΛࣗಈྻڍͯ͠ਤ΍υΩϡϝϯτͱͯࣔ͢͜͠ͱ͕Ͱ ͖Ε͹༗༻ͦ͏ ߟ࡯