마이크로서비스 아키텍쳐란?
하나의 서비스를 작은 마이크로서비스로 쪼개는 것. (독립된 서비스로 운영될 수 있는)
다른 마이크로서비스와 겹치지 않고 독립적으로 운영을 할 수 있는 서비스를 의미 한다.
가장 많이 쓰이는 것은 REST API이다.
비즈니스 중심의, 기능이 섞여 있는 서비스 단위 팀으로 구축이 된다.
서비스가 중단되지 않고 지속적으로 기능 업데이트가 가능하다.
마이크로서비스 아키텍쳐의 장점
- 빠른 개발 속도 : 개발 언어 선택의 자유로움, 서비스 팀의 역량만으로 가능
- 빠른 배포 속도 및 병렬 배포 : 각 마이크로서비스간 독립된 배포 파이프라인 (CI/CD)
- DevOps팀과 통합된 운영 : 서비스에 대한 Ownership
- 확장성, 가용성 : 마이크로서비스 특성에 마즌 확장성/가용성 설계
- 비즈니스 도메인과 밀접하게 연결 : Lean Cycle (빠르게 비즈니스의 요건을 수용)
공통 구성 요소
- 모든 서비스들에 적용되는 공통 요소들
- 서비스 등록 및 제거
- 서비스 검색 및 가용성 관리
- 서비스 메타데이터 관리
- 서비스 버전 관리
- 서비스 별 Cache 관리
- 빠르고 효율적인 배포 환경 관리
- 자동화된 관리 및 모니터링
설계 시 고려사항
- 탄력적인 서비스
- 단위 리소스의 장애 극복
- 통일된 API 인터페이스
- 작게 유지
- 독립적인 서비스
마이크로서비스 구성 요소 + DevOps
고객
api 게이트웨이
등록 검색 환경
인프라 자원
데이터(RDBMS 등)