IT지식

MSA

오선지♬ 2024. 12. 24. 21:03
728x90
반응형

MSA(Microservices Architecture) 개발은 소프트웨어를 작은 독립적인 서비스 단위로 분리하여

개발, 배포, 운영하는 소프트웨어 아키텍처 스타일을 말합니다.

전통적인 모놀리식(monolithic) 아키텍처와 달리, 애플리케이션 전체를 여러 개의 마이크로서비스로 나누어

각 서비스가 독립적으로 작동하며, 서로 네트워크를 통해 통신합니다.

 

 

MSA의 특징

  1. 작은 서비스로 분리
    • 하나의 큰 애플리케이션을 여러 개의 작은 서비스로 나눕니다.
    • 각 서비스는 특정 비즈니스 기능을 담당합니다. (예: 결제, 사용자 인증, 상품 관리 등)
  2. 독립 배포 가능
    • 각 서비스는 독립적으로 개발, 테스트, 배포가 가능합니다.
    • 특정 서비스만 수정하고 다시 배포해도 전체 시스템에 영향을 미치지 않습니다.
  3. 다양한 기술 스택 허용
    • 각 서비스는 개발 언어, 프레임워크, 데이터베이스 등 기술 선택에 자유로울 수 있습니다.
    • 예를 들어, 한 서비스는 Java를 사용하고, 다른 서비스는 Python을 사용할 수 있습니다.
  4. 분산 시스템
    • 각 서비스는 네트워크를 통해 REST API, 메시지 큐, gRPC 등으로 통신합니다.
    • 서비스 간 통신에 따라 네트워크 안정성 및 성능이 중요합니다.
  5. 스케일링 유연성
    • 필요한 서비스만 선택적으로 확장(스케일 아웃)할 수 있습니다.
    • 예: 트래픽이 많은 검색 서비스만 확장 가능.

 

MSA의 장점

  1. 개발 속도 증가
    • 각 팀이 독립적으로 작업할 수 있어 개발 병목현상이 줄어듭니다.
  2. 유지보수 용이
    • 서비스가 작고 독립적이기 때문에 수정과 테스트가 쉽습니다.
  3. 확장성
    • 개별 서비스 단위로 확장 가능하며, 시스템 자원을 효율적으로 사용할 수 있습니다.
  4. 탄력적 장애 처리
    • 한 서비스가 장애를 일으켜도 다른 서비스에 영향을 최소화할 수 있습니다.

 

MSA의 단점

  1. 복잡성 증가
    • 서비스 간 통신, 데이터 일관성 관리, 배포 과정이 복잡해질 수 있습니다.
  2. 운영 부담
    • 서비스가 많아지면 모니터링, 로그 관리, 장애 대응이 까다로워집니다.
  3. 네트워크 비용
    • 서비스 간 통신이 빈번해지면 네트워크 대기시간(latency)과 비용이 증가할 수 있습니다.
  4. 테스트 어려움
    • 서비스 간 통합 테스트가 복잡해질 수 있습니다.

 

MSA의 주요 기술 요소

  1. 컨테이너와 오케스트레이션
    • Docker와 Kubernetes 같은 도구를 사용하여 서비스 배포 및 관리를 자동화.
  2. API 게이트웨이
    • 클라이언트 요청을 적절한 서비스로 라우팅.
    • 예: Kong, AWS API Gateway.
  3. 서비스 디스커버리
    • 서비스가 동적으로 주소를 찾도록 지원.
    • 예: Netflix Eureka, Consul.
  4. 메시징 시스템
    • 서비스 간 비동기 통신을 위한 메시지 브로커.
    • 예: Kafka, RabbitMQ.
  5. 모니터링 및 로깅
    • 분산 트레이싱 도구로 시스템 성능과 장애를 파악.
    • 예: Prometheus, Grafana, Zipkin.

 

MSA가 적합한 경우

  • 빠른 기능 개발과 배포가 중요한 경우.
  • 서비스 확장이 빈번한 대규모 트래픽 시스템.
  • 다양한 비즈니스 팀이 독립적으로 작업해야 하는 프로젝트.

MSA 개발은 클라우드 환경과 잘 맞으며, Netflix, Amazon 등 대규모 IT 기업들이 사용하고 있는 대표적인 아키텍처 방식입니다. 하지만 모든 시스템에 적합한 것은 아니므로, 프로젝트 규모와 요구 사항에 따라 적절한 아키텍처를 선택하는 것이 중요합니다.

728x90
반응형

'IT지식' 카테고리의 다른 글

canonical URL  (0) 2025.02.01
SEO란?  (0) 2025.01.31
싱글 사인 온(Single Sign-On, SSO)  (0) 2024.11.19
dbeaver에서 글꼴 크기 조정하는 단축키  (0) 2024.11.02
특정 포트를 사용하는 프로세스 찾기  (0) 2024.10.25