IT & Tech

MSA (Microservice Architecture)

완두완두콩 2022. 6. 23. 08:07

MSA 란 ? 


Monolithic Architecture 의 경우, 애플리케이션이 구동되기 위한 UI , 비즈니스 레이어 등이 하나의 

큰 덩어리로 같이 구성이 되는 것.

MSA 의 경우, 애플리케이션의 각각의 서비스를 MicroService 라는 단위로 쪼개어서 나눈 것.

 

위의 간단한 예시를 통해, MSA 와 Monolithic Architecture  의 차이를 구별할 수 있다.

API 를 통해 관리하고, 외부에서 호출하는 경우 Service 자체를 노출하는 것이 아닌

API Gateway 를 통해서 인증을 하고, API 정책을 가져갈 수 있도록 하고,

데이터베이스 또한 각각의 서비스가 고유의 데이터베이스를 가질 수 있도록 한다.

 

그렇다면 MSA 아키텍처는  인기가 있을까 ? 


 

1.  기존의 Monolithc 방식은 소프트웨어의 모든 구성요소가 한 프로젝트에 합쳐져있어, 큰 변화에 대한 대응이 어렵고,

새로운 기능 추가 및 업데이트에 어려움이 있었다.

2. Monolithic Architecture 는 여러 역할을 하는 시스템이 하나의 소프트웨어로 집합되어 있어, 특정 부분에 문제가 발생 시,

큰 장애로 이어질 수 있다.

3. Monolithic Architecture 는 여러 역할을 하는 시스템이 하나의 서버에 함께 올라가있기에 , Scale-out 시 필요없는 자원이

함께 증가된다.

(조회 기능이 90% 이상 사용되고, 사용량이 점점 늘어나고 있다 & 조회만 빈번한 수정이 필요해서 배포가 필요하다

-> 이런 경우 MSA 가 효율적이다.)

4. MSA 는 민첩하고 손쉬운 배포 및 업데이트가 가능하다.

(빈번한 배포 = Agile)

 

-> 느슨한 결합으로 이루어져있어 신규 기능 개발, 배포를 다시 하는 일 등에 이점이 많다.

 

MSA 아키텍처를 구성하기 위해 어떤 기술과 구성요소를 알아야 할까 ? 


절대적으로 사용해야 하는 기술은 없다 -> 회사 또는 본인의 사정에 맞추어서 적용할 기술을 선택하자.

 

MSA 는 정말 복잡한 서비스가 아닌 경우, Monolithic 아키텍처가 더 효율적일 수 있기 때문에(생산성이 높을 수 있다.)

상황에 맞춰서 아키텍처를 선택하는 것이 좋다.

-> 각각의 서비스를 모두 쪼개야 하기 때문에 복잡도 & 비용 상승.

 

 


참고 영상

 

https://www.youtube.com/watch?v=8d4h7K_Fq-0