1. MSA(Micro Service Architecture)란?
MSA란 웹 서비스를 작은 단위(기능별)로 쪼개서 운영하는 것을 의미
2. 장점
1) 특정 기능에 장애가 발생했을 때, 전체 서버가 다운되지 않고, 특정 기능만 잠시 서비스를 중단할 수 있다.
2) 효율적인 인프라 관리(필요한 서버의 자원만 더 늘릴 수 있다.)
예를 들어, 한 서버에 검색과 결제 api가 있고, 검색 api 호출 비중이 90프로라면, 이 검색 api만 따로 서버를 증설해 서버를 관리할 수 있다.
3) 잦은 업데이트와 배포
예를 들어, 한 서버에 검색과 결제 api가 있고, 검색 api에 대한 잦은 업데이트와 배포가 있다면, 이 특정 기능을 따로 빼서 관리하면 배포 시 해당하는 기능만 배포할 수 있다.
3. 단점
1) 복잡도가 늘어난다.
2) MSA로 변경하는데, 시간과 비용이 든다.
위의 장점들로 msa를 사용한다고 생각한다. 하지만 작은 회사라면 꼭 msa가 좋다고 말할 순 없을 것이다. 카카오라는 서비스도 처음에 ruby on rails로 시작했듯이, 한 회사가 가진 자원을 생각해 현재 사용할 기술을 정하는 것이 좋다고 생각한다.