π [Theory] π» MSA (Micro Service Architecture)λ?
π» MSA (Micro Service Architecture)λ?
λ§μ΄ν¬λ‘μλΉμ€λ μ ν리μΌμ΄μ
ꡬμΆμ μν μν€ν
μ² κΈ°λ°μ μ κ·Ό λ°©μμ
λλ€. λ§μ΄ν¬λ‘μλΉμ€λ₯Ό μ ν΅μ μΈ λͺ¨λ리μ(monolithic)
μ κ·Ό λ°©μκ³Ό κ΅¬λ³ μ§λ κΈ°μ€μ μ ν리μΌμ΄μ
μ ν΅μ¬ κΈ°λ₯μΌλ‘ μΈλΆννλ λ°©μμ
λλ€.
κ° κΈ°λ₯μ μλΉμ€λΌκ³ λΆλ₯΄λ©°, λ
립μ μΌλ‘ ꡬμΆνκ³ λ°°ν¬ν μ μμ΅λλ€.
μ΄λ κ°λ³ μλΉμ€κ° λ€λ₯Έ μλΉμ€μ λΆμ μ μν₯μ μ£Όμ§ μμΌλ©΄μ μλ(λλ μ₯μ κ° λ°μ)ν μ μμμ μλ―Έν©λλ€.
(https://www.redhat.com/ko/topics/microservices/what-are-microservices)
μ¦, βνλμ ν° μ΄ν리μΌμ΄μ μ μ¬λ¬κ°μ μμ μ΄ν리μΌμ΄μ μΌλ‘ μͺΌκ°μ΄ λ³κ²½κ³Ό μ‘°ν©μ΄ κ°λ₯νλλ‘ λ§λ μν€ν μ³β μ λλ€.
νλμ ν° μ΄ν리μΌμ΄μ μ κ°κ° λ 립μ μΌλ‘ μνλλ μ¬λ¬κ°μ μμ μ΄ν리μΌμ΄μ μΌλ‘ ꡬμ±νλ©΄
μμ μ΄ν리μΌμ΄μ λ¨μμ μλΉμ€λ₯Ό μ¬μ¬μ©νκΈ° μ½κ³ λ¬Έμ κ° λ°μνλλΌλ 컀λ€λ μ΄ν리μΌμ΄μ μ λΆλ₯Ό μμ ν νμ μμ΄
λ¬Έμ κ° μκΈ΄ μμ μ΄ν리μΌμ΄μ λ§ μμ μ νλ©΄ λ©λλ€. λν λ 립μ μΌλ‘ μνλλ―λ‘ κ° μλΉμ€μ κ°μ₯ μ 리ν λ°©μμΌλ‘
λ 립μ μΌλ‘ κ°λ°μ΄ κ°λ₯ν©λλ€.
μ μ°¨ μꡬλλ μλΉμ€κ° 컀μ§κ² λλ©΄μ λ±μ₯νκ² λμμ΅λλ€.
λν μλΉμ€λ€μ΄ κ°κ° λ 립μ μΌλ‘ μνλλ―λ‘ μλΉμ€λ€κ° μ μ€κ³ λ API ν΅μ μ ν΅ν΄ μλΉμ€ μ κ³΅μ΄ μ΄λ€μ§λλ€.
MSA (Micro Service Architecture)μ λ±μ₯ λ°°κ²½
MSA (Micro Service Architecture)κ° λ±μ₯νκΈ° μ
μμ λΆν° λ§μ΄ μ¬μ©λμ΄μκ³ νμ¬μλ λ§μ΄ λ¨μμλ μ ν΅μ μΈ Monolithic Architecture ννκ° μμ΅λλ€.
Monolithic Architectureλ, μννΈμ¨μ΄μ λͺ¨λ ꡬμ±μμκ° νλμ νλ‘μ νΈμ ν΅ν©λμ΄μλ ννμ λλ€.
μμ§κΉμ§λ λ§μ μννΈμ¨μ΄κ° Monolithic ννλ‘ κ΅¬νλμ΄ μκ³ , μκ·λͺ¨ νλ‘μ νΈμλ Monolithic Architectureκ° ν¨μ¬ ν©λ¦¬μ μ λλ€.
νλλ‘ ν΅ν©λμ΄ κ°λ°λκΈ°μ κ°λ¨ν Architectureμ΄κ³ , μ μ§λ³΄μκ° μ©μ΄νκΈ° λλ¬Έμ λλ€.
νμ§λ§ μ μ°¨ μꡬλλ κΈ°λ₯μ΄ μ»€μ§λ©° κ·Έμ λ°λΌ
μΌμ κ·λͺ¨ μ΄μμ μλΉμ€, νΉμ μ¬λ¬ κ°λ°μκ° νμ νλ νλ‘μ νΈμμ Monolithic Architectureμ λλ ·ν νκ³λ₯Ό 보μ λλ€.
π λΆλΆμ₯μ κ° μ 체 μλΉμ€μ μ₯μ λ‘ μ΄μ΄μ§λ κ²½μ°κ° λ§μ΅λλ€.
- λΆλΆμ μΈ μ₯μ λ‘ μΈν΄ μ 체 μλΉμ€κ° λ€μ΄μ΄ λλ μΉλͺ
μ μΈ κ²½μ°λ μκΈΈ μ μμ΅λλ€.
π νλλ‘ ν΅ν©λμ΄ μκΈ° λλ¬Έμ ν
μ€νΈ/λΉλμ μ ν리μΌμ΄μ
μ 체λ₯Ό ν
μ€νΈ/λΉλ ν΄μΌν©λλ€.
- κΈ°λ₯ μμ /μΆκ° μλ¬ μμ λ±μΌλ‘ ν
μ€νΈ/λΉλλ₯Ό ν΄μΌν λ μ 체λ₯Ό ν
μ€νΈ / λΉλ ν΄μΌνκΈ° λλ¬Έμ μλΉν μκ°μ΄ μμλ©λλ€.
π μλΉμ€ / νλ‘μ νΈκ° 컀μ§λ©΄ 컀μ§μλ‘ μ 체 μμ€ν
ꡬ쑰 μν₯λ νμ
μ΄ μ΄λ ΅μ΅λλ€.
- μ¬λ¬ μ»΄ν¬λνΈκ° νλμ μλΉμ€λ‘ κ°νκ² κ²°ν©λμ΄ μμ΄ νμ
μ΄ κ·λͺ¨κ° 컀μ§μλ‘ νμ
μ΄ μ΄λ ΅μ΅λλ€.
π νλμ μΈμ΄μ νλ μμν¬μ μ’
μμ μ΄κ² λ©λλ€.
- μΈκ³΅μ§λ₯ / λΈλ‘μ²΄μΈ λ± νΉμ λΆμΌλ§λ€ μ 리ν μΈμ΄μ νλ μμν¬κ° μμ§λ§ νλμ μ 체 μλΉμ€ κ°λ° μΈμ΄/νλ μμν¬μ μ’
μλκ² λ©λλ€.
π λΆλΆμ μΈ Scale-outμ΄ μ΄λ ΅μ΅λλ€.
- λΆλΆμ μΈ μλΉμ€μ λν΄ κ°μμ€λ° λμ©λ νΈλν½μ΄ λͺ°λ¦¬λλ± Scale-outμ΄ νμν λ νΈλν½μ΄ λͺ°λ¦¬λ μλΉμ€μ λν΄μλ§ Scale-outμ
νλ κ²μ΄ μλ μ 체 μλΉμ€μ λν΄ Scale-outμ ν΄μ£Όμ΄μΌν©λλ€.
μ΄λ¬ν Monolithic Architectureμ νκ³ λλ¬Έμ MSA (Micro Service Architecture)κ° λ±μ₯νκ² λμμ΅λλ€.
MSAμ μ₯μ
MSA (Micro Service Architecture)λ Monolithic Architectureμμ μλΉμ€κ° 컀μ§μ λ°λΌ μκ²Όλ λ¬Έμ μ λ€λ‘ μΈν΄ λ±μ₯νλ§νΌ ν΄λΉ λ¬Έμ μ λ€μ λν΄ λ³΄μμ΄ κ°λ₯ν©λλ€.
λ°°ν¬(deployment) κ΄μ
π κ° μλΉμ€ λ³ κ°λ³ λ°°ν¬ κ°λ₯ ( λ°°ν¬ μ μ 체 μλΉμ€μ μ€λ¨μ΄ μμ )
- ν΄λΉ λλ μλΉμ€λ§ μ¬λ°°ν¬ νλ©΄ λ©λλ€.
- μꡬμ¬νμ μ μνκ² λ°μνμ¬ λΉ λ₯΄κ² λ°°ν¬ν μ μμ΅λλ€.
νμ₯(scaling) κ΄μ
π νΉμ μλΉμ€μ λν νμ₯μ±μ΄ μ©μ΄ν¨.
- μ 체 μλΉμ€λ₯Ό νμ₯ν νμμμ΄ νμ₯μ΄ νμν μλΉμ€λ§ νμ₯μ΄ κ°λ₯ν©λλ€.
- ν΄λΌμ°λ μ¬μ©μ μ ν©ν μν€ν
μ³μ
λλ€.
- 컨ν
μ΄λ κΈ°μ μ¬μ©μ μ ν©ν μν€ν
μ³μ
λλ€.
μ₯μ (failure) κ΄μ
π μ₯μ κ° μ 체 μλΉμ€λ‘ νμ₯λ κ°λ₯μ±μ΄ μ μ
- μλΉμ€κ° λͺ¨λ λΆλ¦¬λμ΄ μκΈ° λλ¬Έμ μ₯μ κ° λ μλΉμ€μλ§ λ¬Έμ κ° μκΉλλ€.
- μ₯μ κ° λ°μν μλΉμ€λ₯Ό μ μΈ ν λλ¨Έμ§ μλΉμ€λ€μ μ μμ μΌλ‘ μ κ³΅μ΄ κ°λ₯ν©λλ€.
MSAμ λ¨μ
MSA (Micro Service Architecture)λ μ₯μ μ΄ λ§μ§λ§ κ·Έλ§νΌ Monolithic Architectureμ λΉν΄
볡μ‘νκ³ κ³ λ €ν΄μΌν κ²μ΄ λ§μ΅λλ€. κ·Έμ λ°λ₯Έ λ¨μ λ€μ λλ€.
μ±λ₯
π μλΉμ€ κ° νΈμΆ μ API ν΅μ μ μ¬μ©νκΈ° λλ¬Έμ, ν΅μ λΉμ©μ΄λ, Latencyκ° κ·Έλ§νΌ λμ΄λκ² λ©λλ€.
ν
μ€νΈ / νΈλμμ
π μλΉμ€κ° λΆλ¦¬λμ΄ μκΈ° λλ¬Έμ ν
μ€νΈμ νΈλμμ
μ 볡μ‘λκ° μ¦κ°νκ³ , λ§μ μμμ νμλ‘ ν©λλ€.
λ°μ΄ν° κ΄λ¦¬
π λ°μ΄ν°κ° μ¬λ¬ μλΉμ€μ κ±Έμ³ λΆμ°λκΈ° λλ¬Έμ νλ²μ μ‘°ννκΈ° μ΄λ ΅κ³ , λ°μ΄ν°μ μ ν©μ± λν κ΄λ¦¬νκΈ° μ΄λ ΅μ΅λλ€
μ 리
MSA (Micro Service Architecture)μ λν΄ μμ보μμ΅λλ€.
MSA (Micro Service Architecture)
μ°Έκ³
https://www.redhat.com/ko/topics/microservices/what-are-microservices
https://velog.io/@tedigom/MSA-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-1-MSA%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-3sk28yrv0e
https://wooaoe.tistory.com/57