도메인 주도 설계로 시작하는 마이크로서비스 개발

Tags
MicroServiceArchitecture
DomainDrivenDesign
MessageQueue
Agile
Created time
Jun 11, 2022 08:56 AM
전형적인 인프라 vs 클라우드 인프라
  • 전형적인 인프라
    • 인프라 구축에 시간이 소요됨. 적게는 며칠, 길게는 몇 달.
    • 하드웨어, 네트워크, 운영체제 등 초기 투자 비용과 관리 비용 등 인프라 비용에 큰 비용이 필요함.
    • 서비스를 개발해 런칭했지만 실패한다면 인프라 비용에 대한 손실이 큼.
  • 클라우드 인프라
    • 즉시 사용 가능.
    • 사용량에 따라 비용을 유연하게 조정 가능. 예를 들어 어떤 쇼핑몰에서 일주일 간 타임세일 이벤트를 진행한다면, 기대되는 트래픽만큼 시스템 용량을 증설해 대응 가능. 즉, 일주일에 대한 추가 비용만 지불.
    • 트래픽이 적을 때는 비용이 저렴하기 때문에 서비스가 실패하더라도 인프라 비용에 부담이 적음.
Scale-up, Scale-out
  • 스케일업
    • 시스템 자체의 물리적 용량을 증가시켜 성능을 높이는 방법. (수직 확장)
    • 트래픽 초과가 발생할 수 있음. 쇼핑몰에서 일주일 간 타임세일을 진행하고, 이에 맞춰 기대한 유저 수 만큼 성능을 높인 상황에서 더 많은 유저가 들어온다면 트래픽 초과가 발생하고 시스템이 다운될 것임.
  • 스케일아웃
    • 기존 시스템과 용량이 같은 장비를 병행 추가하여 가용성을 높이는 방법. (수평 확장)
    • CPU를 모니터링하고 일정 사용량 이상 증가한다면 인스턴스를 복제하여 사용량을 분산시킴.
 
 
monolith, micro-service