Print
카테고리: [ Cloud Computing & MSA ]
조회수: 81725

Sidecar pattern

 

Sidecar pattern은 모든 응용 프로그램 컨테이너에 추가로 sidecar 컨테이너가 배포된다. 

어플리케이션 컨테이너의 수정이나 변경 없이 독립적으로 동작하는 컨테이너를 붙였다 뗐다 할 수 있다.

Sidecar는 서비스에 들어오거나 나가는 모든 네트워크 트래픽을 처리하게된다.

가장 큰 특징은 비즈니스 로직이 포함된 실제 서비스와 sidecar이 병렬로  구성되어있기 때문에 서비스 호출에서 서비스가 직접 서비스를 호출하는 것이 아니라 proxy를 통해서 호출한다는 점이다. 

따라서, 대규모 마이크로서비스 환경이라고 하여도 개발자가 별도의 작업 없이 서비스의 연결 뿐만 아니라 로깅,모니터링,보안,트래픽 제어와 같은 다양한 이점을 누릴 수 있다. 

 

사용 예)

    - 보안을 위해 사이드카로 nginx reverse proxy 등을 붙여서 HTTPS 통신을 한다.

    - 성능을 위해 사이드카로 nginx content cache 등을 붙인다. 

    - 컨테이너 외부로 로그를 모으기 위해 logstash, fluentd 등을 붙인다.

    - 오프로드 프록시 : 정적 파일 콘텐츠를 처리하도록 nginx proxy를 node.js 서비스 인스턴스 앞에 배치 

     

MSA Architecture의 단점을 보완하기 위해 쓰이는 "Service Mesh" 기술 또한 Sidecar 패턴을 통해 배치된 경량화되고 L7 계층 기반의 proxy를 통해 통신하는 방식을 사용한다.