여니의 성장 diary
728x90
반응형

마이크로 서비스 (Microservices)

  • 소프트웨어를 작고 독립적인 단위로 나누어 개발, 배포, 운영하는 아키텍처 패턴
  • 전통적인 모놀리식 (monolithic) 아키텍처 대신 여러 개의 작은 서비스로 애플리케이션을 구성
  • 복잡성을 관리하기 위해 적절한 도구와 패턴을 사용하는 것이 중요
  • 유연성, 확장성, 유지보수성을 향상시키는 데 중점

 

서비스 분리 (Service Seperation)

작은 서비스 단위

  • 각 마이크로 서비스는 특정 업무 기능을 수행하는 작은 단위로 분리
  • 예 : 주문 처리, 사용자 관리, 결제 등

독립적 배포

  • 각 서비스는 독립적으로 배포 가능
  • 다른 서비스와 독립적인 라이프 사이클을 가짐
  • 특정 서비스의 수정 또는 업그레이드가 전체 애플리케이션에 영향을 미치지 않도록 함

 

통신 패턴 (Communication Pattern)

HTTP/REST 또는 메시징

  • 각 서비스 간의 통신은 HTTP/RESTful API 또는 메시지 큐와 같은 비동기 메시징을 통해 이루어짐
  • 서비스 간의 통신은 간단하면서도 느슨한 결합을 유지

서킷 브레이커 (Circuit Breaker)

  • 서비스 간의 통신에서 장애 발생 시, 서킷 브레이커 패턴을 사용하여 해당 서비스와의 통신을 일시적으로 차단하고 오류 처리를 위한 대체 로직 수행

 

확장성 (Scalability)

개별 서비스 확장

  • 각 서비스는 독립적으로 확장 가능
  • 특정 서비스의 부하에 따라 해당 서비스만 확장 가능

프로비저닝 및 오케스트레이션

  • 컨테이너 기술과 오케스트레이션 도구 사용
  • 서비스를 프로비저닝 하고 스케일 아웃 및 인프라 관리 가능

 

데이터 관리 (Data Management)

분산 데이터베이스

  • 각 서비스는 자체 데이터 저장소를 가질 수 있으며, 분산 데이터베이스를 사용하여 데이터 관리
  • Polyglot Persistence 패턴을 통해 서비스에 최적화된 데이터베이스 선택 가능

이벤트 소싱(Ivent Sourcing)

  • 상태 변경을 이벤트로 기록하고 저장하여 시간에 따른 데이터 변경을 추적하는 방식 사용

 

보안 및 모니터링 (Security and Monitoring)

분리된 보안

  • 각 서비스는 자체 보안 모델을 가짐
  • API 게이트웨이를 통한 인증 및 권한 부여

분산 로깅 및 모니터링

  • 중앙화된 로깅 및 모니터링 시스템 활용하여 전체 서비스 생태계의 건강상태 확인

 

728x90
반응형
profile

여니의 성장 diary

@pponyo

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!