MSA(마이크로 서비스 아키텍처)
Software Architecture
E재HO
2023. 4. 9. 18:31
MSA란 마이크로 서비스 아키텍처(Micro Service Architecture)의 약자로 단일 프로그램을 각 컴포넌트 별로 나누어 작은 서비스의 조합으로 구축하는 방법
Antifragile
- Auto Scaling : 자동 확장성(사용량에 따라 인스턴스 증가)
cpu/memory 조건에 따라서 자동으로 인스턴스의 크기가 달라지게 하는것
ex) 무신사 - 블랙프라이데이에는 서버 운영 갯수 up, 아닐 땐 down
- Micro Services : 전체 서비스를 개별적인 모듈이나 기능을 독립적으로 개발,배포,운영하도록 세분화시킨다.
- Chaos Engineering : 시스템의 변동, 트래픽 폭주 등의 상황에도 견딜 수 있는지 알아보는 방법론?
정확한 개념은 아니지만, 운영중인 시스템에 변화가 있거나 트래픽이 몰렸을 때 문제가 없는지 테스트 해보는 방법 - CI/CD: 지속적인 통합,배포
Cloud Native Architecture
기존 로컬에서 하드웨어와 서버를 올려서 시스템을 구축한 것과 달리, cloud 에서 서버 등을 제공받는 것
이로 인해 몇가지 특징이 생겨났다.
- 확장 가능한 아키텍처
- 시스템의 수평적인 확장이 유연해짐에 따라 시스템의 부하 분산, 가용성이 보장됌
- 시스템 또는 서비스 애플리케이션의 단위의 패기지가 생겨났고,
- scale up(메모리증가), scale out(서버개수 증가)이 가능해짐 - - 대부분 MSA 방식은 클라우드 EC2 컴퓨팅 방식으로 사용하기 때문에, 많은 트레픽이 몰리는 경우에도 추가금을 냄으로써 카오스 엔지니어링이 가능하다.
- 탄력적 아키텍쳐
- 서비스 생성, 통합, 배포 등의 비즈니스 환경 변화에 대응 시간 단축
- 분활된 서비스 구조
- 서비의 추가와 삭제 자동으로 감지 - 장애 격리
- 특정 오류가 발생해도 다른 서비스에 영향을 주지 않음