2016-09-14 5 views
4

마이크로 서비스 기반 아키텍처에서 버전 관리에 적응하는 가장 좋은 방법은 런타임 중에 동일한 서비스의 여러 버전 배포를 지원하고 소비자가 다른 버전을 사용하는 방법을 지원하는 것입니다. 접근 방법 중 하나가 here 을 언급 한 바와 같이 우리는 라우팅 기반의 버전을 사용하는 경우 1) 나는 우리가마이크로 서비스 버전 관리

  1. 내부 서비스 소비를 위해 역방향 프록시를 통해 갈 필요가 다음과 같은 단점이있을 것 같아요.
  2. 소비자는 항상 필요한 버전을 알고 있어야합니다.

소비자에게 버전 정보를 공개하는 것이 가장 좋은 방법입니까? 어떤 경우

, 나는 느낌으로, 다음은 항상 적용

  1. 주요 버전 변화의 경우, 소비자가 변경되어야한다.
  2. MINOR 버전 변경 (이전 버전과의 호환성)의 경우 추가 기능이 필요한 소비자 만 변경해야합니다.
  3. 패치 버전 변경의 경우 선택 사항이며 모든 소비자가 원활하게 사용할 수 있습니다.

위의 활성화에 도움이되는 어떤 종류의 마이크로 서비스 버전 전략이 있습니까?

주 - 여러 질문으로 나눠야 할 필요가 있다면 알려주십시오.

답변

0

모범 사례가 없습니다. 특정 상황에서 버전 관리가 어떻게 작동해야하는지에 달려 있습니다.

Shawn Wildermuth는 pluralsight video에서 API 버전 지정에 대해 논의했습니다. 마이크로 서비스 구현 세부 정보는 확실하지 않지만 나머지 API를 사용하는 경우 실제 페이로드의 버전을 확인하십시오.

수락 헤더를 사용하여이 작업을 수행 할 수도 있습니다. 수락을 허용하면 수령인에게 의 API에 대한 버전 유형으로 주석을 달 수 있습니다. 또한 콘텐츠 유형으로도이 작업을 수행 할 수 있습니다. 공급 업체의 application/vnd는 반환하는 데이터의 버전을 지정하므로 응용 프로그램이 해당 페이로드를 전송할 때 페이로드의 버전이 무엇인지 알고 있습니다. 그리고 이는 API, 실제 URI 호출뿐만 아니라 되돌아 오는 데이터의 모양을 모두 버전 화해야하기 때문에 버전 관리의 중요한 기술입니다. 버전 관리.

사용자 환경과 고객 및 사용자와 원활하게 작동하는 메커니즘을 찾은 경우 사용하십시오.

0

는 Microservice 기반 아키텍처에서 버전 관리를 위해 내가 라우팅을 통해 버전으로 내 microservice 프로젝트에 사용

한 startegy을 적응하는 가장 좋은 방법은 무엇입니까.

JSON RPC 2를 사용합니다.0이므로 REST와 약간 다르지만 적용 할 수 있습니다.

우리는 주요 버전 관리 만 사용하며 소비자에게 업데이트 할 시간을주기 위해 이전 버전과 새 버전을 동시에 사용하려고합니다.

것들 (일부 모델 업데이트가있을 경우 관리하기 위해 정말 열심히) 생산 서비스의 두 개 이상의 버전을 가진

  • 않도록 돌봐합니다.

  • 사용중인 버전이 사용되지 않음을 소비자에게 알리는 방법을 찾아보십시오.

는 좀 microservice 아키텍처 버전없이 살아 계심을 알고 있지만 그것은 당신이 그래서이 방법을 운영자 추천하지 않을 수 있습니다 소비자와 생산자 사이의 강한 결합을 가지고 있다는 것을 의미한다.

는 두 번째 질문 소비자가 서로 다른 버전을 사용할 수있을 것입니다 방법

에 대답하려면?

한 번에 하나의 버전 만 사용해야하므로 소리가 나지 않습니다.

런타임에 버전을 사용할 수 있다는 것을 알고 싶다면 서비스 검색과 함께 기능 반전을 수행 할 수 있습니다.

경로 x가 존재하면 소비자가 정기적으로 서비스 검색을 요청합니다. true이면 해당 기능을 사용하고 그렇지 않으면 현재 버전을 계속 사용하십시오. 그것은 효과가있을 수 있지만 관리하는 것은 다소 까다 롭습니다.

0

당신은 혼합하고 다른 stretagies

주요 당신이

어댑터 기반 버전을 사용할 수있는 다른 들어 라우팅 기반 버전

을 사용할 수 있습니다 변경의 경우의 일치 수