MSA

태태개발일지(MSA)

태태코 2023. 10. 10. 18:40
반응형

MSA 아키텍쳐: 기능단위로 나누어 개발 하는 아키텍쳐이다. 

이와 반대되는 개념은 monolithic 아키텍쳐인데, 하나에 통합하여 개발하는 아키텍쳐이다.

 

그러므로 MSA아키텍쳐를 사용하는 경우 API단위로 나누어야 하고, API게이트를 통해 분산하는 것이다.

 

MSA가 왜 인기가 있을까???

1.

     - monolithic방식은 너무 타이트하게 결합이 되어있기 때문에 새로운 결합 추가시 어려움이있다.

출처: 유튭브 Naver cloud platform 강의

  - MSA는 각각 기능마다 분리가 되어있어서 느스한 결합을 통해 구성되어있기 때문에 새로운 기능이나, 업데이트가 쉽다.

 

2. 

      monolithic는 서비스 중 하나가 장애가 발생했을 경우 다른 서비스의 장애로 전파가 가능성이 높지만, MSA는 다 분리되어있기 때문에 장애가 발생한다 하더라도 발생 가능성이 작다.

 

3. 

     monolithic은 스케일 업시 전체 시스템을 스케일업 해야하지만 MSA는 필요한 API만 스케일 업 해서 사용하면된다.

 

4.

    그러므로 MSA는 배포 및 업데이트가 더쉽다.

 

 

 

 

MSA를 구성하는 주요 Component

1. Config Management 

 -> 이미지안에 환경변수가 들어가게 된다면, 환경변수를 별도의 객체로서 관리를 할 수 있다.

 

2. Service Discovery

-> 호출하고자 하는 API의 위치를 알아야하므로 그런 것을 관리하는 디스커버리

 

3. API Management

- 클라이언트 접근 요청을 일원화

 

4. Centralize loggin

- 서비스별 로그의 중앙집중화

 

5. Centralized Monitoring

- 서비스별 메트릭 정보의 중앙집중화

 

6. Resilience & Fault Tolerance

-MSA 구조에서 하나의 실패한 서비스가 체인에 걸려 연결된 전체 서비스들에 파급효과가 생기지 않도록 하기 위한 계단식 실패 방지 구조

 

7. Auto Scaling & Self Healing

 

Service Mesh

- 프록시를 두어서 하는 아키텍쳐

안전한 서비스 가능

 

 

 

 

반응형