μ¬μ΄λμΉ΄(Sidecar)μ μν·λΈλ μ΄μ»€(Circuit Breaker)λ μμ€ν μμ μ±κ³Ό μ₯μ λμμ μν μ€μν λ©μ»€λμ¦μ΄μμ. μ΄ λμ κ°κΈ° λ€λ₯Έ μμμμ νμ©λλ©°, λ§μ΄ν¬λ‘μλΉμ€ μν€ν μ²μ λΆμ° μμ€ν μμ νΉν μ μ©νκ² μ¬μ©λΌμ. μ΄ κΈμμλ μ¬μ΄λμΉ΄μ μν·λΈλ μ΄μ»€μ κ°λ , νΉμ§, μ°¨μ΄μ , κ·Έλ¦¬κ³ κ°κ°μ΄ μμ€ν μμ μ±μ μ΄λ»κ² κΈ°μ¬νλμ§ μμλ³΄κ² μ΅λλ€.
[λͺ©μ°¨]
1. μ¬μ΄λμΉ΄ ν¨ν΄(Sidecar Pattern)
μ¬μ΄λμΉ΄λ λ§μ΄ν¬λ‘μλΉμ€ μν€ν μ²μμ κ° μλΉμ€μ λΆμλμ΄ λμνλ λ 립μ μΈ νλ‘μΈμ€λ₯Ό μλ―Έν΄μ. μ¬μ΄λμΉ΄ ν¨ν΄μ 보쑰μ μΈ κΈ°λ₯μ μλΉμ€μ λ§λΆμ¬μ£Όλ λ°©μμΌλ‘, μ£Όλ‘ λ€νΈμν¬, 보μ, λ‘κΉ , λͺ¨λν°λ§ λ±μ κ³΅ν΅ κΈ°λ₯μ μ²λ¦¬ν΄μ. μ¬μ΄λμΉ΄λ μ ν리μΌμ΄μ κ³Ό λ³λλ‘ λμνμ§λ§, λμΌν λ°°ν¬ λ¨μμ μν΄ μμ΄ μ ν리μΌμ΄μ κ³Ό κΈ΄λ°νκ² νλ ₯ν΄μ.
μ¬μ΄λμΉ΄μ μ£Όμ κΈ°λ₯:
• λ€νΈμνΉ: μλΉμ€ λ©μ¬(Service Mesh)μμ νΈλν½μ κ΄λ¦¬νκ³ , μλΉμ€ κ° ν΅μ μ μ΅μ νν΄μ. μλ₯Ό λ€μ΄, Istioμ κ°μ μλΉμ€ λ©μ¬μμ μ¬μ΄λμΉ΄ νλ‘μλ μλΉμ€ κ° μμ²μ μ μ΄ν΄μ.
• λ‘κΉ
λ° λͺ¨λν°λ§: κ° λ§μ΄ν¬λ‘μλΉμ€μ λ‘κ·Έμ μ±λ₯ λ°μ΄ν°λ₯Ό μμ§νκ³ μ€μνλ μμ€ν
μΌλ‘ μ μ‘ν΄μ.
• 보μ: TLS μνΈνμ κ°μ 보μ κΈ°λ₯μ μ μ©νμ¬ μλΉμ€ κ° ν΅μ μ 보νΈν΄μ.
μ¬μ΄λμΉ΄μ μ₯μ :
• μ μ°μ±: μ ν리μΌμ΄μ
μ½λ λ³κ²½ μμ΄ λ€μν κΈ°λ₯μ μΆκ°ν μ μμ΄μ.
• λ
립μ±: μ¬μ΄λμΉ΄λ κ° μλΉμ€μ λ
립μ μΌλ‘ λ°°μΉλμ΄ μμΌλ―λ‘, νλμ μ¬μ΄λμΉ΄μ λ¬Έμ κ° λ°μν΄λ λ€λ₯Έ μλΉμ€μ μν₯μ μ΅μνν μ μμ΄μ.
• νμ₯μ±: μΆκ°μ μΈ κΈ°λ₯μ μλΉμ€μ μ½κ² λΆμ°©ν μ μμ΄, λ§μ΄ν¬λ‘μλΉμ€μ μ μ§λ³΄μμ±κ³Ό κ΄λ¦¬κ° μ©μ΄ν΄μ.
μ¬μ΄λμΉ΄ ν¨ν΄μ νΉν μλΉμ€ λ©μ¬μμ μ€μν μν μ ν΄μ. κ° μλΉμ€μ μ¬μ΄λμΉ΄ νλ‘μκ° λ°°ν¬λμ΄, μλΉμ€ κ° ν΅μ μ ν¨μ¨μ μΌλ‘ κ΄λ¦¬νκ³ λ³΄μμ κ°νν΄μ. μλ₯Ό λ€μ΄, μλΉμ€ κ° νΈμΆμ μνΈννκ³ , νΈλν½μ λͺ¨λν°λ§νλ©°, νμμμ νΈλν½μ μ¬μ‘°μ νλ μμ
μ΄ κ°λ₯ν΄μ Έμ.
2. μν·λΈλ μ΄μ»€(Circuit Breaker)
μν·λΈλ μ΄μ»€λ μμ€ν μ₯μ μ λν 볡μλ ₯μ λμ΄κΈ° μν ν¨ν΄μ΄μμ. μ£Όλ‘ λ§μ΄ν¬λ‘μλΉμ€ κ° νΈμΆμμ μ₯μ κ° λ°μν κ²½μ° μ 체 μμ€ν μ΄ λ¬΄λμ§μ§ μλλ‘ λ°©μ§νλ μν μ ν΄μ. μ κΈ°νλ‘μ μν·λΈλ μ΄μ»€μ μ μ¬νκ², μ₯μ κ° λ°μν μλΉμ€μ λν μμ²μ μ°¨λ¨νκ³ , λ¬Έμ ν΄κ²° ν λ€μ μ¬μλν μ μκ² ν΄ μ€μ.
μν·λΈλ μ΄μ»€μ μ£Όμ λμ μ리:
1. μ μ μν (Closed): μλΉμ€ κ° νΈμΆμ΄ μ μμ μΌλ‘ μ΄λ£¨μ΄μ§ λ, μν·λΈλ μ΄μ»€λ λ«ν μνμμ λͺ¨λ μμ²μ νμ©ν΄μ.
2. μ₯μ κ°μ§ (Open): νΉμ νμ μ΄μμ μμ²μ΄ μ€ν¨νλ©΄, μν·λΈλ μ΄μ»€λ μ΄λ¦¬λ©° ν΄λΉ μλΉμ€λ‘μ μμ²μ μ°¨λ¨ν΄μ. μ΄λ‘ μΈν΄ μ₯μ κ° νμ°λλ κ²μ λ°©μ§ν μ μμ΄μ.
3. λΆλΆ νμ© (Half-Open): μΌμ μκ°μ΄ μ§λ ν μν·λΈλ μ΄μ»€λ λΆλΆμ μΌλ‘ μ΄λ € μΌλΆ μμ²μ νμ©ν΄μ. μ΄ κ³Όμ μμ μλΉμ€κ° μ μμ μΌλ‘ 볡ꡬλμλμ§ νμΈν΄μ. μλΉμ€κ° 볡ꡬλμλ€λ©΄ μν·λΈλ μ΄μ»€λ λ€μ λ«ν μνλ‘ λμκ°κ³ , μ€ν¨νλ©΄ λ€μ μ΄λ €μ.
μν·λΈλ μ΄μ»€μ μ₯μ :
• μμ€ν
보νΈ: μ₯μ κ° λ°μν μλΉμ€λ‘μ λΆνμν μμ²μ μ°¨λ¨ν΄ μμ€ν
μ λλ¨Έμ§ λΆλΆμ΄ μ μμ μΌλ‘ λμνλλ‘ λ³΄νΈν΄μ.
• μλ 볡ꡬ: λ¬Έμ κ° ν΄κ²°λ ν μλμΌλ‘ λ€μ μμ²μ νμ©νλ―λ‘, μ₯μ λμμ μμ΄ λ³΅μ‘ν μ‘°μΉκ° νμνμ§ μμμ.
• μμ μ μ½: μ₯μ μνμμ λΆνμν μμ²μ μ°¨λ¨νμ¬ μμ€ν
리μμ€λ₯Ό μ μ½νκ³ , μ 체 μ±λ₯μ μ μ§ν΄μ.
μν·λΈλ μ΄μ»€λ λ€νΈμν¬ μ§μ°, μλΉμ€ μ₯μ , νΉμ μΈλΆ API λ¬Έμ μ κ°μ λ€μν μ₯μ μν©μμ μμ€ν
μ 보νΈνλ λ° ν¨κ³Όμ μ΄μμ. μλ₯Ό λ€μ΄, μΈλΆ APIκ° λλ¦¬κ² μλ΅νκ±°λ λ€μ΄λμμ λ μν·λΈλ μ΄μ»€κ° μλνμ¬ ν΄λΉ APIλ‘μ νΈμΆμ μ°¨λ¨νκ³ , μ 체 μμ€ν
μ μ±λ₯ μ νλ₯Ό λ§μμ€μ.
3. μ¬μ΄λμΉ΄μ μν·λΈλ μ΄μ»€μ μ°¨μ΄μ
μ¬μ΄λμΉ΄μ μν·λΈλ μ΄μ»€λ λͺ¨λ μμ€ν
μμ μ±μ λμ΄κΈ° μν λꡬμ΄μ§λ§, κ·Έ λͺ©μ κ³Ό μ μ© λ°©μμ λ¬λΌμ.
• μ¬μ΄λμΉ΄: μ£Όλ‘ μλΉμ€ κ° λ€νΈμνΉ, λ‘κΉ
, 보μ λ±μ λΆκ° κΈ°λ₯μ μ²λ¦¬νλ©°, μ ν리μΌμ΄μ
μ κΈ°λ₯μ νμ₯νλ μν μ ν΄μ. μλΉμ€ λ©μ¬μ κ°μ ꡬ쑰μμ νΈλν½ κ΄λ¦¬μ λͺ¨λν°λ§μ μ€μ μ λ¬μ.
• μν·λΈλ μ΄μ»€: μ₯μ μν©μμ μλΉμ€ κ° νΈμΆμ μ°¨λ¨νκ³ , μ₯μ νμ°μ λ°©μ§νλ λ° μ€μ μ λ¬μ. μμ€ν
μ΄ μμ μ μΈ μνλ₯Ό μ μ§νλ©΄μ λ¬Έμ κ° ν΄κ²°λ λκΉμ§ μλΉμ€λ₯Ό 보νΈν΄μ.
4. λ§λ¬΄λ¦¬
μ¬μ΄λμΉ΄μ μν·λΈλ μ΄μ»€λ λ§μ΄ν¬λ‘μλΉμ€ μν€ν μ²μμ μ€μν μμ μ± λ³΄μ₯ μ₯μΉλ‘, κ°κ° λ€νΈμνΉ λ° μ₯μ λμμ μΈ‘λ©΄μμ ν° μν μ ν΄μ. μ¬μ΄λμΉ΄ ν¨ν΄μ ν΅ν΄ μ ν리μΌμ΄μ μ μ μ§λ³΄μμ±κ³Ό νμ₯μ±μ λμ΄κ³ , μν·λΈλ μ΄μ»€λ₯Ό ν΅ν΄ μ₯μ μν©μμ μμ€ν μ 볡μλ ₯μ κ°νν μ μμ΄μ. μ΄λ¬ν ν¨ν΄λ€μ λ§μ΄ν¬λ‘μλΉμ€κ° κ°μ§ 볡μ‘μ±μ ν¨κ³Όμ μΌλ‘ κ΄λ¦¬νκ³ , μμ€ν μ μ λ’°μ±μ μ μ§νλ λ° νμμ μΈ λꡬλ€μ΄μμ.