마이크로서비스 도입 시 고려해야 할 사항은 무엇입니까?

hi·2023년 1월 29일
0

CNA

목록 보기
3/4

마이크로서비스 도입 시 고려해야 할 사항은 무엇입니까?

마이크로서비스를 처음 도입할 땐, 작고 제한된 서비스를 만드는 것에 집중함으로써 어렵지 않게 시작할 수 있으나, 프로젝트가 진척됨에 따라 이를 지원할 인프라, 데이터 모델, 프레임워크, 팀 모델, 프로세스를 마련해야 합니다. 아래는 마이크로서비스 도입을 결정한 조직에서 흔히 겪는 어려움을 나타냅니다.



긴 피드백 루프

마이크로서비스 시스템에서 의사 결정의 영향을 파악하기는 어렵습니다. 예를 들어, 구성 관리 저장소가 변경되면 구성 관리 서비스가 각 마이크로서비스에 자동으로 구성 변경이 가능하도록 하기 위해 각 서비스에 이벤트를 발송하기로 했다고 가정합시다. 그리고 팀은 이 이벤트 전달의 매개체로 카프카를 사용하도록 결정하였다고 가정합시다. 이러한 결정은 시간이 지남에 따라 스케일-아웃된 마이크로서비스 간의 구성 정보 불일치성을 만들 수 있습니다. 이렇듯 문제가 발생하기 전까지 결정의 영향을 판단하기 어렵기 때문에 각 옵션을 평가하고 선택하기 어렵습니다.


복잡한 시스템 구조

마이크로서비스는 복잡한 적응형 시스템입니다. 각 마이크로서비스는 어떤 식으로든 다른 마이크로서비스에 영향을 미칩니다. 예를 들어, A라는 마이크로서비스 팀에서 개발 혁신을 위해 새로운 프레임워크와 배포 모델을 채택하기로 했다면 이러한 결정으로 인해 개발 및 릴리스 수명 주기를 조절해야 할 수 있습니다. 즉, 도입된 변경 사항의 구체적인 영향을 예측하기 어렵습니다. 이러한 복잡성은 마이크로서비스 시스템의 설계를 어렵게 만듭니다.


분석 마비

마이크로서비스의 긴 피드백 루프와 복잡한 시스템 구조는 아키텍처 결정을 어렵게 만듭니다. 내려야 하는 결정에 대한 영향력은 크지만 측정하기는 어렵습니다. 이는 잘못된 설계에 대한 두려움으로 이어져 아키텍처 결정에 대한 끝없는 추측, 토론, 평가를 하게 만듭니다. 즉, 비즈니스 민첩성이 중요한 조직이 선택에 대해 끝없는 고민만 반복하는 상황에 빠질 수 있습니다. 이러한 상태를 일컬어 분석 마비라고 합니다. 따라서 조직은 마이크로서비스 아키텍처 도입을 고려하고자 할 때 성공 사례를 분석하고 패턴을 파악할 필요가 있습니다.

0개의 댓글