기본 콘텐츠로 건너뛰기

1월, 2016의 게시물 표시

Spring Cloud Config

Spring Cloud Config는 분산된 환경에서 서버간 환경설정을 공유하는 방법을 제공하고 있다. 유사한 솔루션들이 있지만 Git과 연동해서 사용할 수 있고, 서버 재시작 없이 설정을 적용하는 방법을 제공하고 있다. 기본적인 컨셉과 사용법을 정리해 둔다.
목차
1. Spring Cloud Config Server
1. 요청 URL 형식과 응답포멧 
    2. Plain text 지원과 Placeholder 
3. Spring Cloud Config Server 설정 
4. 동작확인 
2. Spring Cloud Config Client
1. Spring Cloud Config Client 설정 
2.환경변수 확인 
3. 설정변경과 Context Refresh 
3. 여러서버에 설정 동기화 하기
1. spring-cloud-starter-bus-redis 
2. Spring Cloud Bus 설정 
3. 설정파일 수정과 설정파일 동기화 
4. 결론
5. 예제파일
6. 참고

1. Spring Cloud Config Server

"Spring Cloud Config Server"는 설정을 읽어 갈 수 있는 몇 가지 endpoint를 제공하고 있다. Spring framework만 사용한다면 "Spring Cloud Config Server"와 "Spring Cloud Config Client"간 통신 방법을 알 필요가 없겠지만, Node.js같은 이기종 플랫폼에서 사용하려면 요청 URL 형식과 응답 포맷을 알아 둘 필요가 있다. 그리고 yml이나 properties가 아닌 설정파일도 읽을 수 있어서 요청 방법과 응답 형식에 대해서도 알아본다. 


  > 부가적으로 암복호화 기능도 있다. 예를 들어 설정파일에 패스워드를 넣어둘 때 Config Server에서 암호화해두고 클라이언트에서 복호화해서 사용할 수 있는데, spring security와 JCE가 필요하고 "Spring Cloud Config" 기능을 이해하는 수…

마이크로서비스와 SOA 비교

근래 마이크로서비스에 관심이 생겨 읽어본 글. 찾은 글 중에선 마이크로서비스와 SOA에 관해 전반적으로 정리가 잘된 거 같아서 요약해 두기로 했다. 내용이 적지는 않아서 키워드 위주로 정리했지만 역시 한눈에 들어오지 않음. #딴지금지 #지적환영

원글은 https://www.nginx.com/microservices-soa/ 에서 pdf로 배포하고 있다.

목차
The World of Service-Based Architectures Comparing Service Charateristics Comparing Architecture Characteristics Comparing Architecture Capabilities Summary 
1. The World of Service-Based Architectures a. Service Contracts




"서비스 계약"은 REST API 문서같이 서비스와 서비스 컨슈머(consumer)간 동의를 말한다. 서비스 기반 아키텍쳐는 "서비스 중심 계약"(Service-Based Contracts)과 "컨슈머주도 계약"(Cosumer-Driven Contracts) 두가지 모델이 있다. 차이점은 일방적이냐 아니냐 하는 “협업 정도(The degree of collaboration)”이다.

"서비스 중심" 아키텍쳐는 컨슈머를 고려하지 않은 계약변경을 한다. "컨슈머 주도 계약"은 컨슈머가 변경을 제안하고 서비스는 다른 컨슈머들의 영향도를 판단해서 적용 여부를 결정한다. 이런 "컨슈머 주도 계약" 컨셉을 테스트 시점에 적용할 수 있게 구현하고 툴링을 제공하는 오픈소스로 "Pact", “Pacto”가 있다. 컨슈머는 서비스 프로바이더에게 Pact라는 테스트를 보내고 서비스 프로바이더는 계약변경이 생기면 컨슈머가 보낸 테스트를 빌드 시점에 서비스 제공자의 테스트에 포함해 테스트하는 방식이다.

또 한 가지 중요한 …