MSA Pattern #1 모놀리식 지옥에서 벗어나라

· Backend, Microservice

마이크로서비스 패턴(크리스 리처드슨, 길벗, 2020)을 읽고 공부한 내용을 정리한 글입니다.

모놀리식 아키텍쳐의 장점

모놀리식 아키텍쳐의 한계

마이크로서비스의 장점

마이크로서비스의 단점

마이크로서비스의 패턴

마이크로서비스를 위한 상용 패턴의 구조는 3가지로 나뉨

강제 조항

문제 해결을 위해 반드시 처리해야만 하는 내용을 뜻함

단, 내용들이 서로 상충할 수 있게 모든 조항을 충족할 수 없을 수 있으므로, 우선순위를 설정할 것

예시) 코드는 이해하기 쉬워야 하면서, 성능도 우수해야 함 → 어떤 이슈를 우선적으로 해결할 것인지?

결과 맥락

패턴 적용 결과를 분석하는 일을 뜻함

연관 패턴

마이크로서비스 아키텍쳐

어플리케이션을 여러 서비스로 분해하는 패턴

통신 패턴

마이크로서비스 아키텍쳐의 어플리케이션은 분산 시스템이기 때문에 프로세스 간 통신(IPC)이 중요하다. 그러므로 서비스 상호 간, 그리고 외부 세계와 어떻게 통신하면 좋을지 아키텍쳐/설계 관점에서 의사 결정이 필요함

통신 패턴은 다섯 개의 그룹으로 정리할 수 있음

트랜잭션 관리를 위한 데이터 일관성 패턴

데이터 쿼리 패턴

서비스 배포 패턴

관측성 패턴

어플리케이션의 런타임 동작을 이해하고 요청 실패, 높은 지연 시간 등 문제를 진단/조치하는 일

마이크로 서비스 아키텍쳐는 요청 결과가 클라이언트에 반환되기까지 어떤 서비스를 어떻게 오갈지 알 수 없음. 따라서 로그 파일 하나만으로는 원인을 파악할 수 없음. 문제의 원인을 찾고 진단하기 매우 복잡함.

서비스 테스트 자동화 패턴

마이크로 서비스 아키텍쳐는 단위 서비스의 크기가 비교적 작아 테스트하기 쉬우ㅏㄴ, 서로 다은 여러 서비스가 조화롭게 잘 작동되는지 테스트해야 함