hi jaeneee
MSA란? 본문
스터디 오빠가 면접 가서 "MSA가 뭔가요?"라는 질문을 받았다고 했다.
내가 아는 건 MMA 밖에 없어서 한 번 알아보기로 했다!
MSA란?
MicroService Architecture
: 작고 독립적으로 배포 가능한 각각의 기능을 수행하는 서비스로 구성된 프레임워크
Monolithic
: 기존에 우리가 사용하던 전통적 방식의 개발 방식 => 한 덩어리의 구조(단일 시스템)
-> 전체 애플리케이션이 하나로 됨
why 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 |