서버 아키텍처 - 마이크로 서비스 아키텍쳐

dropKick·2020년 7월 11일
0

목표

  • MSA의 구성을 이해한다.

MSA 아키텍처

  • AWS의 경우 인터페이스 모델을 통해 MSA를 탄생시킴
  • 가장 본질적인 MSA
    인터페이스로 연결 되면서 직접적으로는 연결되지 않는다.

모놀리식과 MSA 부하 분산

  • scale-up : 모놀리식 아키텍처에서 부하 분산
  • scale-out : MSA 아키텍처에서 부하 분산
    일반적으로 scale-out이 더 싸게 먹힘, 메모리를 16기가에서 32기가로 업그레이드 하는 것보다 16기가 2개를 쓰는게 더 싸다.

MSA 정리와 구성

  • HTTP 프로토콜 네트워킹
  • 분리된 서비스
  • 자동화
  • 각 서비스는 각자의 환경을 가질 수 있음
  • 각 서비스는 너무 많은 인원이여도 적은 인원이여도 안된다.

  • 모놀리식과 달리 공유되는 정보가 하나도 존재하지 않음
  • 각 서비스 Order와 Product는 별개의 환경을 가지고 서로 REST API 인터페이스를 통해 호출 함

MSA 구현과 DB 분리

  • 사실 MSA의 끝은 DB의 분리
    하지만 DB를 분리하기 위해선 event-driven, 분산 트랜잭션 등과 같은 기술이 필요

정리

  • MSA에 아직 확실하게 정해진 기준은 없다
    다만 HTTP 프로토콜을 사용하고, 각 서비스를 분리하여 인터페이스로 통신 한다는 것이 일반적인 MSA의 구현이다.
  • MSA의 마지막은 DB 분리고 이는 상당히 어렵다
    DB 분리 방식에는 쿠팡의 방식인 DB 복제와 11번가의 event-driven 방식이 존재한다.

그리고 불현듯 이래서 Docker를 쓰는건가? 라는 생각이 들었다
각 서비스 별 분리가 이루어진다면 그 환경들을 별개로 전부 관리 해야하는데 이런 환경을 각각 저장하고 있으면 편리할 것 같다
근데 그런 일들은 가상 컨테이너를 구현해서 할 수 있는데 그 컨테이너는 도커가 관리해준다.... !!??

참고

MSA 아키텍처 이해 - T아카데미

0개의 댓글