여씨의 개발이야기
[입문] Monolithic Architecture vs Microservice Architecture 본문
☁ Cloud/🐳 Docker&K8s
[입문] Monolithic Architecture vs Microservice Architecture
yeossi 2022. 1. 6. 16:20
1. Monolithic Architecture
전통적인 서버 사이드 시스템에서 사용하는 아키텍쳐로, 하나의 서버에 다양한 시스템이 구성되어있다. 그렇기 때문에 서로 의존성을 갖고있다.
1-1. 장점
- 개발이 빠르다. 만들어진 하나의 어플리케이션에서 기능을 확장해나가는 식으로 개발해나갈 수 있다.
- 전통적인 방식이기 때문에 다양한 레퍼런스가 있다. 그렇기 때문에 운용 또한 비교적 수월하다.
- 테스트 및 배포 파이프라인 구성이 쉽다.
1-2. 단점
- 이러한 아키텍처에서 서비스들은 서로 의존성이 있기 때문에 시스템의 일부가 수정되어도 전체를 build, test, packaging하는데 번거로움이 있다.
- 그렇기 때문에 유지보수 또한 힘들며, 오류가 한 번 발생하면 전체에 영향을 미치게 된다.
2. Microservice Architecture(MSA)
모든 기능이 각각의 어플리케이션인 아키텍처를 말한다. 각각 다른 서버에서 실행되며 API를 이용하여 통신할 수 있다. 서비스들은 비즈니스 단위로 나뉘어지며 최소한의 중앙 집중식 구성이 되어야한다.
1-1. 장점
- 의존성이 최소화된다. 어플리케이션을 구성하는 서비스들이 모두 컨테이너로 나뉘어지기 때문이다.
- 모듈을 새로 추가할 때 비교적 자유롭다.
1-2. 단점
- 이러한 아키텍쳐를 구성하는데 초기에 상당한 투자가 필요하다. 각 서비스마다 사용하는 DB나 언어가 다를 수 있기 때문에 개발하기가 복잡하다.
'☁ Cloud > 🐳 Docker&K8s' 카테고리의 다른 글
[입문] Docker와 K8s(Kubernetes) (0) | 2022.01.06 |
---|---|
[입문] DevOps란? (0) | 2022.01.06 |
Comments