[Spring Cloud] MSA 기본 개념

이민재·2022년 10월 18일
0

Cloud Native Architecture

  • 확장 가능한 아키텍처
    시스템의 수평적 확정에 유연
    확장된 서버로 시스템의 부하 분산, 가용성 보장
    시스템 또는 서비스 애플리케이션 단위의 패키지(컨테이너 기반 패키지)
    모니터링
  • 탄력적 아키텍처
    서비스 생성 - 통합 - 배포, 비즈니스 환경 변화에 대응 시간 단축
    분활 된 서비스 구조
    무상태 통신 프로토콜
    서비스 추가와 삭제 자동으로 감지
    변경된 서비스 요청에 따라 사용자 요청 처리(동적 처리)
  • 장애 격리(Fault isolation)
    특정 서비스에 오류가 발생해도 다른 서비스에 영향 주지 않음

Cloud Native Application

  • Microservices
  • CI/CD
    • 지속적인 통합(CI)
    • 지속적 배포
      • Continuous Delivery -> 수동 반영
      • Contiunous Deployment -> 자동 반영
  • DevOps
    • 개발 조직과 운영 조직의 통합
    • Development + QA + Operations
  • Containers

12Factors

  • BASE CODE
  • DEPENDENCY ISOLATION
  • Configurations
  • linkable backing servies
  • stages of creation
  • stateless processes
  • port binding
  • concurrency
  • disposability
  • development & porduction party
  • Logs
  • Admin processes for eventual processes

Monolithic vs MSA

  • Monolith Architecture
    • 모든 업무 로직이 하나의 애플리케이션 형태로 패키지 되어 서비스
    • 애플리케이션에서 사용하는 데이터가 한곳에 모여 참조되어 서비스되는 형태
  • Microservices Architecture Components
  • Spring Cloud
    • Centalized configuration management(환경 설정 관리)
      • Spring Cloud Config Server
        다양한 설정을 관리 가능
    • Location transparency
      • Naming server(Eureka)
    • Load Distribution(Load Balancing)
      • Ribbon(Client Sid)
      • Spring Cloud Gateway
    • Visibility and monitoring
      • Zipkin Distribitued Tracing
      • Netfilx Api gateway
    • Fault Tolerance
      • Hystrix
profile
초보 개발자

0개의 댓글