hi jaeneee

MSA란? 본문

Computer Science 호기심

MSA란?

ash silver 2023. 4. 20. 17:08

스터디 오빠가 면접 가서 "MSA가 뭔가요?"라는 질문을 받았다고 했다.

내가 아는 건 MMA 밖에 없어서 한 번 알아보기로 했다!


MSA란?

MicroService Architecture

    : 작고 독립적으로 배포 가능한 각각의 기능을 수행하는 서비스로 구성된 프레임워크

Monolithic

    : 기존에 우리가 사용하던 전통적 방식의 개발 방식 => 한 덩어리의 구조(단일 시스템)

    -> 전체 애플리케이션이 하나로 됨

https://youtu.be/dSGnJWHuxtQ

 

why MSA? 

MSA 구조

(특징)

1. 복잡도↑

2. 비용↑

    -> API 호출 ↑ -> 서버의 자원 사용량↑

3. 부분 장애가 전체 서비스 장애로의 확대를 막음

4. 부분적인 작업이 가능함

5. 약한 결합도로 서비스 변경이 보다 쉬움

6. 유지 보수 시에 쉬움 => 수정 시에 장애의 영향 파악이 보다 쉬움 

7. 배포를 가볍게 할 수 있음

8. 통합 테스트가 어려움

9. 마이크로 서비스에 대한 경험 요구

 

 

 

ex)

--유튜브 장애 발생--

조회(한 군데)만 다운 되어도 전체 서비스 다운(X)

조회(한 군데)만 다운되고 영상 시청, 영상 업로드 등(다른 서비스들)에는 문제X

 

ex)

조회 90% 사용, 업로드 8% 사용, 결제 2% 사용

조회를 많이 사용하여 많은 수정 사항이 발생, 조회만 업데이트 가능하도록 함.

 

도입해야 할까?

CTO/CIO는 계속적인 선진 사례를 도입해야 함.

하지만,

이미 잘 사용되고 있는 것이 많고 

MSA를 사용한다고 해서 비용이 크게 줄지 않음, 

또한, 큰 장점이 없는데도 바꿔서 오히려 복잡함으로 일어나는 장애가 발생할 수 있음.

게다가 그것을 바꾼 후에도 관리하는 것이 큰 소비가 됨.

 

MSA가 기업에 도입하기에 적합한지 ROI(Return On Investment)를 잘 확인해야 한 후, 

좋을 수는 있으나 기존 시스템에서 무조건적인 도입은 위험할 수 있음.

 

'Computer Science 호기심' 카테고리의 다른 글

객체지향 프로그래밍  (0) 2023.05.03
PHP란?  (0) 2023.04.29
디자인 패턴이란?  (0) 2023.04.17
테스트 주도 개발 - TDD(Test Driven Development)이란?  (0) 2023.04.16
프레임워크(framework)란?  (0) 2023.04.05
Comments