자바 기반의 마이크로서비스 이해와 아키텍쳐 구축하기

Screen Shot 2019-03-17 at 8.00.34 PM.png

https://book.naver.com/bookdb/book_detail.nhn?bid=14068210

하와이 가는 비행기 안에서 읽었다. 책이 분량도 가볍고 내용도 가벼워 비행기에서 읽기 딱 좋았다. 이 책을 읽으며 막연히 buzz word로만 알고 있던 마이크로 서비스에 대해서 간단히 정리해볼 수 있었다.

마이크로 서비스를 도입해야 하는 이유는 결국 Loose coupling, high cohesion을 서비스 레벨, 시스템 레벨에서 구현하기 위해서다. 독립되고 응집된 자율적인 서비스 설계, 개발, 운영을 추구한다. 이를 통해 장애 회피, 유연한 확장, 빠르고 잦은 서비스 변화에 효율적으로 대응하는 것이 핵심이다.

이런 마이크로서비스를 구성하는 마이크로 서비스 아키텍쳐(MSA)는 가용성과 탄력성을 보장하는 기술 구조여야 한다. 서비스 간의 결합도를 최소화하여 서비스의 독립성을 유지하고, 서비스의 개발이 기술적인 제약사항에 영향을 받지 않도록 도메인 영역과 기술 영역을 구분하는 것은 아키텍처적인 측면에서 유연한 구조를 가지지 위한 중요한 전략이다.

전체 구조로 봤을 때 MSA는 외부 환경 설정, 서비스 디스커버리, 서비스 게이트웨이, 서킷 브레이커 등이 갖춰져야 하며, REST API를 통해 무상태 프로토콜로 통신하는 것이 이상적이다. 민첩한 서비스 개발을 위한 CI/CD는 물론이며, 마이크로 서비스 내 각 서비스들의 상태를 쉽게 확인할 수 있는 모니터링 시스템과 컨테이너 기반으로 동작하는 서버들의 로그 또한 유실 시키지 않고 한번에 찾아 볼 수 있는 로그 통합 체계(ex. ELK) 또한 필수 요소이다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중

search previous next tag category expand menu location phone mail time cart zoom edit close