모놀리식 아키텍처와 마이크로서비스의 아키텍처
모놀리식 아키텍처에서 마이크로서비스 아키텍처로 변경되며 많은 단점을 보완하기 위함입니다.
모놀리식 아키텍처
의 경우 프로세스가 결합되어 있고 단일 서비스로 실행되는 전통적인 방식입니다.
이러한 특징을 갖고있기 때문에 코드베이스가 증가하게 되면 기능을 추가하거나 개선하기 복잡해집니다.
마이크로서비스 아키텍처
의 경우 애플리케이션이 독립적인 구성 요소로 구축되어 각 애플리케이션 프로세스가 서비스로 실행됩니다.
서비스가 독립적으로 실행되기 때문에 애플리케이션의 특정 기능에 대한 수요를 충족하도록 각 서비스를 업데이트, 배포 및 확장할 수 있습니다.
모놀리식 아키텍처
- 전통적인 아키텍처, 기존에 사용하던 서비스 방법
- 서비스가 하나의 애플리케이션으로 돌아가는 구조
- 기존의 개발 방식을 사용해 개발하여 간단히 배포
- 하나의 서비스 또는 어플리케이션이 하나의 거대한 아키텍처
- 다양한 기능을 동작하는 서비스를 서버에서 실행하여 서비스
마이크로서비스 아키텍처의 장점
- 하나의 애플리케이션으로 구성되어있어 테스트 용이
- 빠르고 간단한 서비스 개발
모놀리식 아키텍처 단점
- 기존의 애플리케이션을 그대로 복제하여 로드밸런싱
- 불필요한 서비스까지 모두 복제
- 각 기능에 따른 라이브러리를 매번 업데이트 하기에 관리가 어려움(라이브러리의 충돌)
- 조금만 수정해도 전체 빌드 및 배포 필요
마이크로서비스 아키텍처
- 모놀리식 아키텍처의 대안으로 반대되는 개념
- 애플리케이션의 각각의 기능을 분리하여 개발 및 관리
- 분산 시스템 환경에서 Transaction 보장, 테스트, 배포, 관리 복잡
마이크로서비스 아키텍처의 장점
- 서비스 단위 빠른 개발 : 개발자가 특정 비즈니스 로직에 대해서만 집중하여 개발 가능
- 배포 용이 : 개별 서비스 단위로 개발, 패키징 빌드, 테스트, 배포로 각 서비스마다 유연하게 작용
- 서비스 단위 고효율 저비용 Scale-Out 구조 : 서비스 단위로 스케일링이 가능하여 불필요한 서비스는 줄이고 더 많은 자원이 필요한 서비스는 확장 가능
- 서비스 단위로 스케일링이 가능하여 불필요한 서비스는 줄이고 더 많은 자원이 필요한 서비스는 확장가능
마이크로서비스 아키텍처 단점
- 분산 시스템 환경에서 Transaction 보장, 테스트, 배포, 관리 복잡
정리
마이크로서비스의 분산 시스템 환경에서 Transaction 보장, 테스트, 배포, 관리 복잡한 문제를 해결하기 위해 이미지, 컨테이너, 도커와 쿠버네티스를 사용합니다. 다음 내용에서 이미지, 컨테이너, 도커와 쿠버네티스의 내용에 대해 살펴보겠습니다.