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 컴퓨팅 방식으로 사용하기 때문에, 많은 트레픽이 몰리는 경우에도 추가금을 냄으로써 카오스 엔지니어링이 가능하다.
  • 탄력적 아키텍쳐
    - 서비스 생성, 통합, 배포 등의 비즈니스 환경 변화에 대응 시간 단축
    - 분활된 서비스 구조
    - 서비의 추가와 삭제 자동으로 감지
  • 장애 격리
    - 특정 오류가 발생해도 다른 서비스에 영향을 주지 않음