MSA서비스에서의 API

less than 1 minute read

개요

MSA는 API를 이용해 통신을 한다. 그런데…. 의존성이 생기니까 관리가 힘들다. 버전관리가 필요.

버전관리 방법

동시배포

의존성이 있는 모든것을 동시배포 그냥 전체배포라고 보면 된다. * 서비스가 작을 때 가능 * 오류가 나면 매우 난감함 * DB스키마가 변경됐을 가능성이 크기 때문에 rollback도 쉽지가 않다.

소스코드 내에서 버전을 관리

컨트롤러, 라우터 등등에서 /v1/ /v2/ 이런방법으로 버전을 표시 * 버전업이 자주 발생하면? * 헷갈리겠지

배포시 태깅

jenkins, git-tag, docker, kubernetes 등등 사용해서 해결할 수 있는 부분 해놓으면 편하긴 하겠지만… 구현자체가 복잡하다.

결론은…

어떻게 배포를 해도 오류가능성이 존재하겠지만… 관리가 쉬운편이 더 낫지 않을까 적절한 방법을 골라서 정책을 정하고 지키는게 중요.

MSA에 필요한 API Doc의 종류

Human - Machine

API Doc은 Hunam, Machine - 두가지 버전이 필요하다.

Human

swagger

Machine

Hataoes 그리고 json형태의 doc??? 에러로깅 방식..?? 등 지원

Versioning(API Change log doc)

  1. history
  2. plan

    1. deprecated 일정예고
  3. current 세가지 정보를 모두 표현해야한다

검증테스트

build runtime 버전 check 의존성 api들을 모두 기록해놓는다. depends on - (auth-1.1) depends on - (gis-201610) …. 기록해놓은 부분은 내가 참조했 버전이 맞는지 버전만 호출해서 확인. 의존성이 있는 MS들의 test 인스턴스가 떠있거나 docker-compose, kubernetes 등으로 관리되고 있어야 가능한 부분. 아닌가.. 버전만 확인하니까 git 주소만 알아도 가능할 것 같다.

유닛테스트일수도 있는데 좀 더 강하게 빌드시 확인을 해야한다.

Tags: ,

Categories:

Updated: