6.2 클라우드에서 서비스 디스커버리
클라우드 기반 마이크로서비스 환경에서 해결책은 다음과 같은 특성을 가진 서비스 디스커버리(service discovery) 메커니즘을 사용하는 것이다.
• 고가용성(highly available): 서비스 디스커버리는 서비스 디스커버리 클러스터의 노드 간 서비스 검색 정보가 공유되는 ‘핫(hot)’ 클러스터링 환경을 지원할 수 있어야 한다. 한 노드가 가용하지 않으면 클러스터 내 다른 노드가 그 역할을 대신해야 한다.
클러스터는 서버 인스턴스들의 그룹으로 정의할 수 있다. 이 경우 모든 인스턴스는 고가용성, 안정성, 확장성을 제공하고자 동일한 구성을 갖고 협업한다. 로드 밸런서와 통합된 클러스터는 서비스 중단을 방지하는 페일오버와 세션 데이터를 저장하는 세션 복제(replication) 기능을 제공할 수 있다.
• P2P(Peer-to-Peer): 서비스 디스커버리 클러스터의 모든 노드는 서비스 인스턴스의 상태를 상호 공유한다.
• 부하 분산(load balanced): 서비스 디스커버리는 요청을 동적으로 분산시켜 관리하고 있는 모든 서비스 인스턴스에 분배해야 한다. 여러 면에서 서비스 디스커버리는 많은 초창기 웹 애플리케이션 구현에 사용되었던, 더 고정적이며 수동으로 관리되는 로드 밸런서를 대체한다.