[MSA] 1. 마이크로서비스 아키텍처 개요

steve·2024년 2월 18일
0

Backend

목록 보기
8/17

MSA 학습 로드맵

  • Micro Service Architecture 개요 및 패턴 이해
    (Part 1~5)
  • MSA 개발 설계 기법 이해 및 도메인 주도 개발 방법 학습
    (Part 6~10)
  • 메시지 브로커 활용한 이벤트 주도 설계 구현 및 마이크로서비스 개발
    (Part 11~15)

개요

  • MSA의 배경에 대해 이해한다
  • MSA에 대한 개념을 알아본다

MSA의 배경

  • 성공한 인터넷 기업들과 비즈니스 민첩성
    • 비즈니스 Agility가 크다
      • 비즈니스 환경에 민첩하게 대응할 수 있음
      • 서비스를 변경하는 빈도가 매우 잦음 (Amazon 초당 1.5회 배포, 2014 기준)
    • 클라우드 인프라 환경이 보편화되어 MSA 구축에 효율적
      • 유연한 Scailing (원하는 만큼, 필요한 시점에 제공)
      • 전체 시스템의 인스턴스 확장이 아닌, 사용량이 몰리는 일부 기능의 리소스만 변경되게 가능

마이크로서비스란

  • 여러개의 서비스 조각
    • 각기 독립적인 기능을 제공하며, 저장소도 다른 서비스와 격리됨
    • 독립적으로 수정, 배포 가능
  • Polyglot 한 형태로 시스템 아키텍처 구성 가능
  • 마이크로서비스 성공을 위한 조건
    • 조직 : 특정 도메인에 자율적인 권한과 책임을 지는 DevOps 조직 (개발 + 운영)
    • 인프라 : 언제나 쉽게 확장 가능한 유연한 인프라 구성 (On demand 확장성, 탄력성)
    • 자동화 : 개발 지원 도구 자동화, CI/CD
    • 개발 프로세스 : 피드백 기반의 개발 프로세스, 반복/점진적인 애자일 프로세스
    • 개발 문화 : 공유/협업하고 학습하여 계속 진화하는 개발 문화
    • 설계 방식 : 데이터 중복, 결과적 일관성 추구
    • 실패 감지 및 대응을 위한 실시간 모니터링 체계 필요
      • 서킷 브레이크 패턴

마이크로서비스 성숙도

  • MSA는 Trade-off(상충 관계)이다
  • 예시 (B2B)
    - 배포 주기가 B2C 대비 긴 대신에 트랜잭션 안정성을 크게 고려해야 한다 → 항상 MSA가 정답이 아님
  • 조직의 성숙도와 마이크로서비스의 성숙도는 같이 가야 한다
  • 독립 배포를 위한 것이면 매크로 서비스로 시작해도 좋다

0개의 댓글

관련 채용 정보