MSA 와 Cloud

BackEnd_Ash.log·2020년 9월 27일
0

aws

목록 보기
3/5
post-thumbnail

MSA ??

MicroService Architecture 의 줄임말이다.
대규모 소프트웨어 개발에 적용하기 위한 것으로 단독으로 실행 가능하고 독립적으로 배치될 수 있는 작은 단위로 기능을 분해하여 서비스하는 아키텍처 이다 .

수직 방향의 기능별로 절단하며 절단된 독립적인 작은 모듈을 마이크로서비스라고 한다.

다시 말해서 ,

하나의 큰 application 을 여러개의 작은 단위로 나눈 application 을 변경하고 조합이 가능하도록 만든 아키텍쳐

그러면 이것이 왜 생겼는지 궁금합니다

MSA 등장 배경

Monolithic Architecture vs Microservice Architecture

Monolithic Architecture 는 모든 구성요소가 한 프로젝트에 통합되어있는 형태입니다.

이러한 구성요소는 소규모 프로젝트에는 합리적 일수 있어요.

하지만 규모가 커지게 되면 한계점이 보입니다.

  • 규모가 커지면 전체 시스템 구조의 파악에 어렵다.

  • 배포시간이 늘어나게 된다.

  • 부분의 장애가 전체 서비스의 장애로 이어지게 된다.

이러한 Monolithic Architecture 의 한계점과 단점으로 인해 MSA 가 나오게 됬습니다.

  • 각각의 서비스는 독립적으로 배포가 가능해야합니다.

  • 각각의 서비스는 다른 서비스에 대한 의존성이 최소한 되어야합니다.

  • 확장성 용이

  • 부분적 장애에 대한 처리가 좋음

하지만 분명 단점도 존재합니다.

MSA 의 단점

Monolithic Architecture 은 아무래도 한 어플리케이션에서 관리를 하다보니 단순하게 작업이 이루어집니다.

하지만 MSA 는 보다 복잡한 아키텍쳐로 이루어집니다.
이 복잡도는 application 의 규모가 커질수록 복잡도가 더욱 상승하게 됩니다.

  • 테스트 / 트랜잭션 : 서비스가 분리되어 있기 때문에 테스트와 트랜잭션의 복잡도가 증가하고 많은 자원을 필요로 한다.

  • 데이터 관리 : 데이터가 여러 서비스에 걸쳐 분산되기 때문에 한번에 조회하기 어렵고 , 데이터의 정합성 또한 관리하기 어렵다 .

참고자료

https://yjyc.tistory.com/309

https://velog.io/@tedigom/MSA-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-1-MSA%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-3sk28yrv0e

profile
꾸준함이란 ... ?

0개의 댓글