[소공 목차]

 

1. 마이크로 서비스 아키텍쳐 개요

  • 하나의 큰 어플리케이션여러 개의 작은 마이크로서비스 단위로 나누어 변경과 조합이 가능하도록 구성된 아키 텍쳐
  • 소프트웨어 응용 프로그램을 독립적으로 배치 가능한 서비스 단위로 분리하고, 이들의 조합으로 시스템을 구성하는 아키텍처 스타일
  • 데이터에서부터 비즈니스 로직까지 독립적으로 상호 컴포넌트간의 의존성이 없이 개발된 컴포넌트로 REST API와 같은 표준 인터페이스그 기능을 외부로 제공하기 위한 서비스 아키텍처
  • 특징) 소규모 팀이 다룰 정도의 크기가 충분히 작아야함.
              다른 서비스와 영향을 주고 받지 않고 자율적 개발, 배포, 운영, 확장 할 수 있어야 함.          
  • 필요성) 스트리밍 서비스-넷플릭스 예) 장애 발생시, 전체서비스를 다운하고 대응해야 하는 부분에서 마이크로 서비스 단위만 수정 배포를 통해 전체 사이트 장애를 막을 수 있다.            
    모놀리스 시스템의 특정 기능의 조회가 많고 요구사항에 의해 빈번한 업데이트가 필요시 전체프로그램을 업데이트 해야함(MSA는 특정 서비스만  수정, 배포가 가능함.)

2. 마이크로 서비스 아키텍쳐 구성도 및 구성 요소

1) 마이크로 서비스 아키텍쳐  구성도

2) 마이크로 서비스 아키텍쳐  구성요소

구분 세부항목 설명
Front-end Tier
(외부, 화면)
HTTP Rest API 표준기반의 경량의 인터페이스와 통신규약 비동기 병렬처리 
JSON
Middle Tier
(비지니스로직)


 API Gateway(단일접점 제공
라우팅/로드밸런싱)
API 서비스들을 중계, 인증, 로깅 등과 같은 공통 기능의 추상화 계층 
Micro Service(비즈니스 분리
독립적 배포 )
완전 자동화된 개발 및 배포환경에 의해 독립적 배포 가능
Back-end Tier
(데이터)
RDB, NoSQL, Graph DB  각각의 API Server에서 사용하는 다양한 기술기반의 데이터베이스 활용 

- DevOps -> 마이크로 서비스 라이프사이클의 효과적인 관리, 빠른 개발, 서비스 안정성, 유연한 확장성 

 

2. 마이크로 서비스 아키텍쳐와 모놀리스 아키텍쳐 비교

1) 마이크로 서비스 아키텍쳐와 모놀리스 아키텍쳐 개념도 비교

  -마이크로서비스 아키텍쳐는  서비스 단위로 분리, 모놀리스 아키텍쳐는 하나의 단일프로그램임.

 

2) 마이크로 서비스 아키텍쳐와 모놀리스 아키텍쳐 비교

비교항목 마이크로서비스 아키텍처 모놀리스 아키텍처
개념 하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 구현하여 조합하는 방법 하나의 서비스 또는 애플리케이션 하나의 아키텍처로 구현된 방법
목적 애플리케이션을 개발 서비스 단위개발, 배포 전체 어플리케이션을 하나의 통합된 패키지로 개발, 배포
개발 서비스 단위로 신속한 개발, 확장 용이 배포, 테스트, 표준화된 방식으로 관리 용이
배포/구동 DevOps 자동화, 고속 배포/서버 가동시간 소요
개발 독립성 상호 의존성 낮아짐 전체 서비스 간 영향 높음
유지보수 유지보수 용이, 단순 전체 코드 이해 필요
확장성 부분적 물리확장 가능 확장성/유연성 낮음

 

+ Recent posts