728x90
모놀리식 아키텍처
단일 프로세스에서 실행되거나 몇몇 시스템에서 몇개의 프로세스로 실행되는 어플리케이션. 전통적인 인프라 환경에서 적용되는 아키텍처이다. 하나의 큰 목적이 있는 서비스 또는 어플리케이션에 여러 기능이 통합되어 있는 구조를 의미한다. → devOps라는 흐름을 적용하기 어렵다
모놀리식 아키텍처의 장점
개발이 간단하고 구성할 때 설계가 간단하다. 또한 배포를 할 때 전체를 한번에 배포하면 되므로 간단하며 확장성 측면에서도 단순하다.
모놀리식 아키텍처의 단점
- 코드 품질 낮아짐 : 처음 접하는 개발자의 경우 전체 코드를 이해하고 수정하는 것이 어려움
- 어플리케이션 시작이 오래 걸림
- 어플리케이션 지속적인 배포가 어려움 : 하나의 컴포넌트를 업데이트하기 위해서 전체 어플리케이션을 다시 배포해야 함
- 어플리케이션 확장의 어려움 : 각 컴포넌트 별로 독립적으로 확장하기 어려움
- 컴포넌트 별 개발의 어려움 : 애플리케이션을 팀이 독립적으로 개발 및 업데이트 못함
가상머신 vs 컨테이너
- 가상머신은 성능이 떨어질 수 밖에 없다 Host os 위에 Guest os 가 올라가기 때문이다.
- 가상머신 각각이 별도로 독립적인 운영체제를 사용해서 문제가 발생
→ 성능 및 운영 측면에서 문제점이 있다.
마이크로서비스 아키텍처
마이크로서비스 아키텍처는 하나의 어플리케이션을 더 작은 단위로 쪼개서 나눠서 개발하는 아키텍처이다. 기능들이 독립된 서비스를 구성하고 있다.
마이크로 서비스 아키텍처의 장점
- 지속적으로 어플리케이션을 배포할 수 있다 : 향상된 유지 보수성, 테스트 용이성, 배포 효율성
- 향상된 장애 격리 : 모놀리식은 장애 발생이 전체 시스템에 영향을 미칠 수 있는 반면 MSA는 장애가 발생한 주변만 영향을 받음
마이크로 서비스 아키텍처의 단점
- 초기 구성시에 설계가 복잡하다
- 여러개의 기능 단위들로 나뉘어져서 개발되기 때문에 배포가 복잡하고 관리 및 운영시에 복잡하다.
- 증가된 리소스 소비 : 프로세스들끼리 메세지를 주고받는 식으로 교환됨 → 오버헤드가 발생
쿠버네티스는 여러 컨테이너들을 관리하는 도구이며, 컨테이너 인프라 환경은 마이크로 서비스 아키텍처에 적합하다. 컨테이너가 마이크로서비스 아키텍처에서의 '서비스'와 완전히 대응시켜서 볼 수 있기 때문이다.
728x90
'Cloud Engineering > Kubernetes ⚙️' 카테고리의 다른 글
[Kubernetes] Annotation 추가하기 (0) | 2023.02.09 |
---|---|
[Kubernetes] Pod 생성 및 삭제하기 (0) | 2023.02.09 |
[Kubernetes] Label 생성과 Label 검색하기 (Selector) (0) | 2023.02.09 |
[Kubernetes] YAML 문법과 Manifest 파일 형식 (0) | 2023.02.09 |
[Kubernetes] 쿠버네티스의 API 종류와 API 확인 명령어 (0) | 2023.02.09 |