[Infra] MSA?

Ik·2022년 11월 30일
0

Back

목록 보기
1/33

Steammend PJ 진행하면서 멘토님으로부터 MSA 구조를 사용한 것을 강조할 것을 들었고 MSA란 무엇일까 찾아봄

MSA

MicroService Architecture : 각각을 마이크로하게 나눈 독립적인 서비스를 연결한 구조

장점

시스템 전체의 중단 없이 필요한 부분만 업데이트, 배포가 가능
이는 유연한 대응이 가능해 실시간으로 요구사항을 반영할 수 있어 급격히 성장한 기업들이 많이 택한 방법


확장 가능한 애플리케이션을 구축하고 싶어 하는 기업 입장에서 생각해 보면 경영자는 더 빠른 제품 개발을 위한 효율성을 얻어 좋고, 개발 관리자는 리소스 최적화는 물론, 더 빠른 배포가 가능하며 확장성도 더할 수 있어서 좋다. 또 실무 개발자들의 작업도 더 쉽다

단점

일반 개발보다 복잡하다. 각 각 독립적인 서비스로 이루어져 있기에 모듈의 인터페이스를 신중하게 처리해야 하고 제약들도 많다. DB관련 이슈들도 상당 수 존재(할당, 배포 시에 서비스 충돌 문제, 트랜잭션 관리 등)


독립된 구조이기에 시스템 전체를 중단하지 않고 필요한 부분만 업데이트, 배포가 가능하지만 독립되어 운영되는 탓에 배포나 테스트를 일관적으로 수행하기가 쉽지 않다. 적절한 툴이 없으면 대규모 테스트나 배포 전에 연결된 모든 서비스가 잘 작동하는지 일일이 확인해야 할 수도 있다.

결론

  • Steammend의 경우
    그림과 같은 구조처럼 각 개별 서비스들을 독립적으로 운영하는 구조였기에 멘토님은 MSA 아키텍처 사용한 서비스 배포 구조를 강조하라 했던 것 같다

0개의 댓글