Eyeeshot BloG

[MSA] 토이프로젝트 MSA 시작하기 본문

Tech/MSA

[MSA] 토이프로젝트 MSA 시작하기

eyeeshot 2020. 4. 12. 12:02

최근 많은 사람들이 MSA에 관심을가지고 있고 국내에 많은 기업들이 이미 적용 또는 적용중에 있는 Architecture 입니다.
최근 MSA에 대해 공부를 위해 간단한 토이프로젝트를 MSA로 구성하는 토이 프로젝트를 진행하면서 기록해볼 예정입니다.


Monolithic Architecture

Monolithic Architecture 란 어플리케이션의 모든 구성요소가 한 프로젝트에 통합되어있는 형태입니다.
소규모 프로젝트에는 장점인 Monolithic Architecture 지만, 단점은 여러가지가 있습니다.
오류 및 수정 배포시 서비스가 유지 되기 힘든점입니다. 어플리케이션이점점 확장됨에 따라 부분적으로 scale-out 하기 힘들어집니다.
물론 무조건 Microservices architectures 가 좋지만 않습니다. 처음시작하는 작은 어플리케이션은 여전히 Monolithic Architecture 좋다고 생각됩니다.


MSA (Microservices architectures)

MSA는 이미 많이들 알고있는 Netflix, PayPal, Uber, Twitter, Airbnb, Lyft 등 대용량의 트래픽을 받는 서비스에서 적용된 Architecture 입니다. (Netflix 빼고는 솔직히 잘 구성 정보들이 안보입니다.)
그럼 MSA 란 몰까 Monolithic Architecture 의 단점을 보안한 Architecture 라고 볼수입습니다.
최근에는 대부분의 기업이해야할 Architecture 라생각됩니다.
아래의 애니메이션 이미지는 Netflix가 500여개 서비스를 실시간으로 모니터링하는 방법이며 각 흰색 점은 요청입니다.
왼쪽에는로드 밸런서가 있고 오른쪽에는 데이터베이스가 있으며 가운데에는 가장 복잡한 요청 경로가 API입니다.

위에서 보듯이 서비스 단위마다 분리하여 요청이 몰리는곳만 scale-out 하거나 리펙토링하여 더 안정적인 서비스를 구축할수 있을것입니다.


사용자 스토리

토이 프로젝트를 진행하면서 팀 프로젝트 진행방식처럼 애자일 형식으로 진행 보려합니다.
사용자 스토리는 실제 사용자 관점에서 본 짧고 간단한 설명입니다. 보통 사용자가 누구인지 무엇을 원하는지 그래서 어떤동작을 하는지에 대한 내용을 작성합니다.

  1. 아침에 오늘 날씨 정보를 보고싶어요. (우산을 가져가야되는지 말아야되는건지)
  2. 관심있는 나라의 항공권 가격을 알고싶어요. 조금이라도 싸면 예약할수 있도록.
  3. 설정한 정보들을 알림으로 받았으면 좋겠어요.

우선 앞으로 진행할 토이 프로젝트는 위 사용자 스토리 3가지를 할 예정이다.