Semina

[최범균 Youtube] 마이크로서비스 6개 핵심 개념

Jordy-torvalds 2022. 3. 27. 12:17
반응형
마이크로서비스 6개 핵심 개념
독립적 배포 크기
비즈니스 도메인을 중심으로 모델링 유연함
자신의 상태를 가짐 아키텍처와 조직을 맞춤

 

첫번째, 독립적 배포

저자의 의견에 따르면 6가지 중 하나만 골라야 한다면 독릭접 배포를 선택한다고 한다.

또한, 다른 마이크로서비스를 배포하지 않고, 마이크로서비스를 변경, 배포, 출시할 수 있다고 한다.

이를 위해서는 마이크로서비스 간 결합도를 낮춰야 하며, 서비스 간에 명시적이고 잘 정의되고 안정된 명세 계약이 필요하다고 한다.

 

두번째, 비즈니스 도메인을 중심으로 모델링

도메인 기준으로 서비스 경계를 정의한다. 즉, 한 마이크로서비스가 기능에 필요한 전체를 구현하며, 이를 통해 새 기능 출시가 쉬워진다. 또한 다른 방식으로 마이크로서비스를 재조합하기 쉬워진다.

한 기능의 구현이 여러 마이크로서비스에 걸쳐 있으면 기능 출시 비용이 올라간다. 좀 더 세부적으로 서비스 간 조율, 순서 관리 등에 더 많은 일을 해야한다. 그렇기 때문에 여러 서비스에 걸친 변경은 가능한 덜 할 수 있는 방법을 찾아야 한다.

 

세번째, 자신의 상태를 가짐

마이크로서비스 간에는 DB를 공유해서는 안된다. 다른 마이크로서비스가 갖고 있는 데이터에 접근 해야 하면 DB에 접근하지 말고 API 등을 통해서 접근해야 한다. 데이터를 공유하지 않음으로써 구현을 감추고 결합도도 낮출 수 있게 된다.

 

네번째, 크기

A microservice should be as big as my head. - Jame Lewis
마이크로서비스는 내 머리로 이해할 수 있을 정도로 커야 한다. - 제임스 루이스

책에서는 위 말을 이용했으나, 위 말은 읽는 당사자나, 회사의 규모에 따라 정도가 다를 수 있다.

그래서 크기 보다는 다음 두 가지에 집중하는 것이 더 중요하다.

첫번째는, 얼마나 많은 마이크로서비스를 다룰 수 있는지 이다. 마이크로서비스가 증가할 수록 그에 따른 복잡도와 필요한 새 기술이 증가한다.

두번째는, 마이크로서비스 경계 정의이다. 어그리거트라는 단위, 혹은 도메인 단위로 잘 나누는 것이 필요하다. 잘 나누어지지 않은 마이크로서비스는 실타래처럼 얽혀서 복잡도를 높일 수 있다.

 

다섯번째, 유연함

MicroServices buy you options - James Lewis

비용을 들여서 미래에 유연해질 수 있는 옵션을 구매한다는 의미이다. 이 옵션에는 기술, 확장, 견고함 등이 있다. 다만, 아직 벌어지지 않은 미래를 대비해 너무 많은 옵션을 구매하는 것은 일종에 오버 엔지니어링이다.

그렇기 때문에 현 비즈니스 상황에 맞게 점진적으로 MSA로 넘어가는 것을 권장한다고 한다.

 

여섯 번째, 아키텍처와 조직을 맞춤

Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure. - Conway`s Law
시스템을 설계하는 조직은 조직의 커뮤니케이션 구조를 복사한 설계를 만들어냅니다. - 콘웨이의 법칙

조직 구조는 아키텍처에 영향을 주고 닮아가게 된다.

기본적으로 소프트웨어를 더 빨리 배포하기를 원한다. 이를 위해서는 조직 간 이관이나 사일로(소통의 벽, 혹은 지식의 고립 등)을 줄여야 한다. 그리고 조직 구조도 직능이 아닌 제품과 도메인에 맞게 바꿔야 한다. 예를 들어서, 프론트, 백엔드, DB 팀을 쪼개어 고객팀과 구매팀을 만들어야 한다.

결론적으로 비즈니스 도메인에 맞게 조직을 변화시켜야 하며 이는 곧 시스템 아키텍처를 주도하는 원동력이 된다.

반응형