안녕하세요. 팀드모네입니다.
오늘은 MSA의 특징과 함께 모놀리식과 비교해보겠습니다.
👨💻 MSA란 무엇인가?
- Pattern: Microservice Architecture의 약어
- 작은 서비스 단위로 개발하는 방법
👨💻 MSA의 특이사항?
- 자체 프로세스에서 실행
- 프로세스 간의 통신은 HTTP기반 API로 통신함
- 비즈니스 기능을 중심으로 개발
- 서비스 배포과 완전 자동화됨
- 다른 프로그래밍 언어로 개발 가능
- 다른 DB를 쓸 수도 있음
👨💻 MSA 장점이란?
- 서버 및 프로세스 장애 시 격리 및 복구가 쉬움 (장애는 해당 서비스에 한정하여 발생. 그 서비스만 복구하면 됨)
- 서비스가 작아서 배포가 빠름.
- 서비스가 작아서 코드 수정이 용이. 생산성 향상.
- 신기술 도입이 쉽다.
* MSA를 제대로 이해하기 위해선 모놀리식의 상황이 어떠했는지 알아야한다.
👨💻 반면.. 모놀리식의 단점
- 서버 및 프로세스 장애로 서비스가 죽었을 경우.. HA(이중화)도입이 안되었다면 그냥 다 죽은 것이다.
- 모놀리식에 신기술을 도입하려면 시스템 전체가 바꿔야한다. (일명, 차세대 프로젝트)
- 서비스가 크기 때문에, 서비스 배포에 20분... 1시간.. 2시간이 걸린다.
- 서비스를 개발할 때 보통 하나의 프로그래밍 언어, 통일된 RDBMS만 사용한다.
* JPA나 작정하고 ANSI 표준으로 SQL를 만드는 특수한 경우는 제외..
👨💻 MSA의 단점
- 아키텍처 상, 필연적으로 데이터 중복이 발생
- 아키텍처 상, 성능에 민감한 사업에는 도입할 수 없음
※ 하나의 서비스가 잘게 쪼개져 통신을 하는 것이므로 퍼포먼스 하락이 예측됨
따라서, 모놀리식의 거대한 DB를 얼마나 잘 쪼갤 수 있느냐가 MSA프로젝트 성공의 핵심입니다.
추가로 질문사항이 있으시면 댓글 남겨주세요. 감사합니다. 좋은 하루 보내세요~
continue...
reference : https://www.youtube.com/watch?v=UsWrvBaQOA4
광고 링크 :