π Architecture Tactics
μν€ν μ² μ μ μ΄λ νλμ ꡬ쑰 λλ μ°μ° λ©μ»€λμ¦λ§ μ¬μ©νμ¬ νλμ μν€ν μ² μμλ§μ ν΄κ²°νλ€λ μλ―Έμ΄λ€. μ΄λ¬ν μ μ μ μμμ μ΄κ³ ν¨ν΄μ λΆμμ μ΄λΌκ³ λ§ν μ μμΌλ©° λλΆλΆμ ν¨ν΄μ μ μ λ‘ κ΅¬μ±λλ€.
μν€ν μ² μ μ μ Computer Science μ μΈ κΈ°λ²κ³Ό μννΈμ¨μ΄ κ΅¬μ‘°λ‘ λ¬Έμ κ° ν¬ν¨λμ΄ μμΌλ©° μ£Όλ‘ μννΈμ¨μ΄ μν€ν μ²λ₯Ό μ립νκ³ νμ§ μμ±μ λμ΄λ λ° μ¬μ©λλ€.
μν€ν
μ² μ μ μ μ£Όμ νμ§ μ§μλ λ€μκ³Ό κ°λ€.
λ³κ²½μ©μ΄μ± (Modificability)
μ±λ₯μ± (Performance)
보μμ± (Security)
κ°μ©μ± (Availability)
κ°κ°μ νλͺ©λ³ μ μ λ΄μ©μ μ΄ν΄ 보μ
λ³κ²½μ©μ΄μ±μ λ³νμ λν λΆλΆμΌλ‘ λ³νμ κ΄λ ¨ν Riskμ Costμ λν λΆλΆμ΄λ€.
Riskμ Costλ₯Ό μ€μ¬ μ£Όμ΄μΌ λ³κ²½μ΄ μ©μ΄νλ€.
Reduce Size of a Module
- Split Module : λͺ¨λμ λ μμ λ¨μλ‘ λλλ©΄ λ³κ²½μ νκ· λΉμ©μ μ€μΌ μ μλ€.
Reduce Coupling - Encapsulate
- Use an Intermediary : Broker(μ€μ¬μ)κ° μ’ μμ±μ λμ
- Restrict Dependencies : layered architecture, wrapper
- Refactor
- Abstract common services
Increase cohension - Increase Semantic Coherence: μλ―Έ μΌκ΄μ± μ¦κ° p ν λͺ¨λμ λ³κ²½νλ κ²μ΄ μ± μμ μν₯μ λ―ΈμΉμ§λ§ λͺ¨λμ μΌλΆ μ± μμλ μν₯μ λ―Έ μΉμ§ μλ κ²½μ° ν΄λΉ μ± μμ λ€λ₯Έ λͺ¨λμ λ°°μΉλμ΄μΌ ν©λλ€. μ± μ μ± μ λΉ μ²΄νλ γ γ λ³κ²½ μμ² μν₯μλ°μ§ μμλ€ λΉ μμ κ°λ₯μ± μ μ λ³ν n μν₯μ λ°μ§ μλ μ± μ λΆλ¦¬ n λͺ¨λμ μ± μ Aμ Bκ° λμΌν λͺ©μ μ μννμ§ μλ κ²½ μ° μλ‘ λ€λ₯Έ λͺ¨λμ λ°°μΉν΄μΌ ν©λλ€
- Defer binding: λ°νμ λ±λ‘ ->λ±λ‘μ κ΄λ¦¬νκΈ° μν μΆκ° μ€λ²ν€λ λΉμ©μΌλ‘ νλ¬κ·Έ μ€ ν λ μ΄ μμ
. p κ΅¬μ± νμΌ n μμ μ λ§€κ°λ³μ μ€μ p λ€νμ± λ©μλ νΈμΆμ λ¦μ λ°μΈλ©
Reliabilityλ βμ£Όμ΄μ§ νκ²½μμ νΉμ λͺ©μ μ μν΄ μ§μ λ μκ°λμ κ³ μ₯ μμ΄ μ΄μλ μ μλ νλ₯ βλ‘μ¨ μμ€ν μ μλΉμ€κ° μ§μ ν λλ‘ μ¬λ°λ₯΄κ² μ λ¬λ νλ₯ μ λ§ν©λλ€.
Availabilityλ βμ£Όμ΄μ§ μμ μμ μμ²λ μλΉμ€κ° μ 곡λκ³ μ΄μλ μ μλ νλ₯ βλ‘μ¨ μ¬μ©μκ° μλΉμ€λ₯Ό μμ²νμ λ μλΉμ€λ₯Ό μ 곡ν μ μλ νλ₯ μ λ§ν©λλ€.
λ κ°μ μ°¨μ΄μ μ λνμ¬ μμκ² λμ? μμ€ν μ΄ μλ΅μ νλ©΄ μΌλ¨ Availabilityλ₯Ό λ§μ‘±νλ κ²μ΄κ³ μ¬λ°λ₯Έ κ²°κ³Όκ°μ μ£Όλμ§ μ μ£Όλμ§μλ μκ΄μ΄ μμ΅λλ€.
μ¬λ°λ₯Έ κ²°κ³Όκ°μ μ£Όλμ§μ λν΄μλ Reliabilityμμ μ μ©μ΄ λ©λλ€.
Availabilityμμλ μ€ν¨(Failure)κ° μ€μνλ©° μ€ν¨κ° λ μ μλ μ€λ₯λ₯Ό μ¬μ μ νμ νλ κ²λ μ€μνκ³ μ€ν¨κ° λ°μν κ²½μ° λ³΅κ΅¬μ μ리λ₯Ό μΌλ§λ λΉ λ₯΄κ² νλ λλ μ€μν©λλ€.
λ°λΌμ λνμ μΈ μ κ·Ό λ°©λ²μΌλ‘λ μ€λ³΅(redundancy), μ€ν¨ κ°μ§λ₯Ό μν λͺ¨λν°λ§, μ€ν¨ κ°μ§ μ 볡ꡬ(μλ λλ μλ) λ±μ΄ μμ΅λλ€.
κ²°ν¨κ²μΆ(Fault Detection) - Ping/echo : νλμ μ»΄ν¬λνΈμμ κ²μ¬λμ μ»΄ν¬λνΈλ‘ μ΄λ²€νΈ λ°μ
- λͺ¨λν° : μμ€ν μ λ€μν λΆλΆ(νλ‘μΈμ€, I/O, λ©λͺ¨λ¦¬ λ±)μ μνλ₯Ό λͺ¨λν°
- HeartBeat : νμͺ½μμ μ¬μ₯λ°λ λ©μμ§λ₯Ό 보λ΄λ©΄ λ€λ₯Έ μͺ½μμ μ²μ·¨ν¨, μ¬μ₯ λ°λ λ©μμ§κ° μμΌλ©΄ μ μ‘ μ»΄ν¬λνΈκ° μ€ν¨ν κ²μΌλ‘ κ°μ£Ό
- νμ μ€ν ν : μ΄λ²€νΈκ° λ°μν νμ μ¦μ μ΄λ²€νΈμ local checkλ₯Ό μ€μ
- sanity checking : μ»΄ν¬λνΈμ λμ λλ μΆλ ₯μ μ ν¨μ±μ΄λ ν©λ¦¬μ±μ κ²μ¬, νΉμ ν μ 보μ νλ¦μ κ²μ¬νκΈ° μν΄ μΈν°νμ΄μ€μμ μ£Όλ‘ μ¬μ©
- 쑰건 λͺ¨λν°λ§(Condition Monitoring) : νλ‘μΈμ€λ λλ°μ΄μ€μ 쑰건μ κ²μ¬νκ±°λ μ€κ³ μμ μ΄λ€μ§ κ°μ μ μ‘°μ¬
- Voting : κ°μ μΌμ νλ μΈ κ°μ μ»΄ν¬λνΈλ₯Ό μ¬μ©νμ¬ λμΌν μ λ ₯μ λ°μμ ν¬ν λ‘μ§μ μμ μ μΆλ ₯μ λ³΄λ΄ μΈ κ°μ μΆλ ₯ μν μ¬μ΄μ λΉ μΌκ΄μ±μ μ°Ύμλ΄λλ° μ¬μ©
- Self Test : μ»΄ν¬λνΈκ° μ νν μ€νΌλ μ΄μ μ νκ³ μλμ§ μ€μ€λ‘ ν μ€νΈλ₯Ό μν
μ€λ₯볡ꡬ(fault recovery)
- Active redundancy : λ³λ ¬λ‘ λμΌν μ λ ₯μ λ°μμ μ²λ¦¬νκ³ μλΉ λ Έλλ νμ± λ Έλμ λκΈ°μ μνλ₯Ό μ μ§
- Passive redundancy : νλμ νμ±λ Έλλ§ μ μ§
- Spare : μλΉ λ Έλλ μ€ν¨ λ³΅κ΅¬κ° λ°μν λκΉμ§ μλνμ§ μλλ€.
- Shadow operation : μ΄μ μ μ»΄ν¬λνΈλ₯Ό κ·Έλ¦Όμ λͺ¨λλ‘ λμνκ² ν ν ν΄λΉ μ»΄ν¬λνΈλ₯Ό νμ± μν λ‘ λ³΅κ·
- State resynchronization :
- Checkpoint / rollback : μ€ν¨κ° λ°μνλ©΄ λ°λ‘ μ΄μ μ μμ μ μΈ μνλ‘ rollback μν
μ€λ₯볡ꡬ(
μ£Όμ΄μ§ μκ° μμ μμ€ν
μ λλ¬ν μ΄λ²€νΈμ λν μλ΅μ μμ±νλ€.
μλ΅ μκ°μ κ²°μ νλ μμΈμ λ€μκ³Ό κ°λ€.
- μμ μλΉ(resource comsumption)
- μ°¨λ¨λμ΄ μλ μκ° (blocked time)
- μμκ²½μ
- μμκ°μ©μ±
Securityλ 곡격μ μ μ§νκ³ κ°μ§νκ³ λ³΅κ΅¬νλ κ²μ΄λ€.
λνμ μΌλ‘ λ€μκ³Ό κ°μ νλͺ©μ΄ μλ€.
- μ¬μ©μμΈμ¦
- μ¬μ©μμΈκ°
- λ°μ΄ν°κΈ°λ°μ±μ μ§
- μΌκ΄μ±μ μ§
- λ ΈμΆμ ν
- μ κ·Όμ ν
곡격κ°μ§(detecting attacks) - μΉ¨μ νμ§μμ€ν : λ€νΈμν¬ ν¨ν΄ λΉκ΅λ₯Ό ν΅ν κ°μ§
- ν¨ν· νν°λ§ κΈ°λ° : νλ‘ν μ½, TCP νλκ·Έ, νμ¬λ(payload) ν¬κΈ°, μ£Όμ, ν¬νΈλ²νΈ
- μΉ¨μ
νμ§λ₯Όμν΄νμνκ²λ€
- μΉ¨μ νμ§μΌμ
- μ΄λ²€νΈμ μ₯μμνλ°μ΄ν°λ² μ΄μ€
- λΆμλ°λ³΄κ³ λ₯Όμνλꡬ
- μ μ΄μ½μ
곡격볡ꡬ
- μνν볡
- 곡격μμλ³ : κ°μ¬κΈ°λ‘μ μ§
μνΈμ΄μμ±μ 2κ° μ΄μμ μμ€ν
μ΄ μΈν°νμ΄μ€λ₯΄ ν΅νμ¬ μλ―Έμλ μ 보λ₯Ό μΌλ§λ μ μ©νκ² κ³΅μ νλμ§λ₯Ό λνλ΄λ μ λμ΄λ€.
Locate
- Discover Service : directory μλΉμ€λ₯Ό ν΅νμ¬ μλΉμ€ μμΉλ₯Ό κ²μ
Manage Interface - Orchestrate : νΉμ μλΉμ€λ₯Ό μ΄μ λ° μ‘°μ¨
- Tailor Interface : μΈν°νμ΄μ€μ κΈ°λ₯μ μΆκ°νκ±°λ λΉΌλ κ²
[μΆμ²] μν€ν μ² μ μ (Tactics) |μμ±μ myitmento