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

1. 개요

애플리케이션은 설정이 필요하다. DB 접속 정보, 연계되는 다른 서버의 정보 등등..

과거에는 이러한 정보가 소스 코드 내에 하드코딩되어 있는 경우가 많았다. 하지만 이제는..

특히 마이크로서비스는 사람의 개입이 최소화되므로 애플리케이션 구성관리가 매우 중요하다.

만약 사람이 구성하거나 배포한다면 편차가 발생하고 확장 요구 발생 시 지연이 발생하게 될 것이다.


2. 논리적 개요


3. 구성 관리 관련 프로젝트

3.1. etcd

Go 언어 기반 오픈 소스 프로젝트로 Key-value 방식이다. 분산 구성이 가능하다.

3.2. Eureka

동적 클라이언트 갱신 기능이 있다. 넷플릭스가 자바로 개발했다.

서버와 클라이언트 구조로 동작하는데

3.3. Consul

etcd와 유사한데 분산 컴퓨팅을 위해 다른 알고리즘을 사용한다.

하시코프가 만들었는데 2014년 DNS 기반 서비스 검색을 위해 출시되었다. 

GitHub 내 Changelog는 https://github.com/hashicorp/consul/blob/master/CHANGELOG.md 를 참고하라.

일반적으로 자동화나 편의성이 상대적으로 높다고 알려져있다. (HTTP API, UI API 등)

3.4. Zookeeper

아파치 프로젝트이다. Distributed locking 기능을 제공한다.