아키텍처 확장은 시스템이 성능과 안정성을 잃지 않고 증가하는 부하를 처리할 수 있도록 하는 접근 방식을 선택하는 것입니다.
확장에는 두 가지 유형이 있습니다:
핵심 전략은 다음과 같습니다:
Kubernetes를 사용한 예(수평 확장):
apiVersion: apps/v1 kind: Deployment metadata: name: myapp spec: replicas: 5 template: spec: containers: - name: myapp image: myapp:latest
주요 특징:
상태 저장 서비스(stateful)를 상태 비 저장 서비스(stateless)처럼 쉽게 확장할 수 있나요?
아니요, 상태 저장 서비스(예: 데이터베이스)는 복제 및 일관성을 위한 복잡한 메커니즘이 필요합니다. 상태 비 저장 서비스는 쉽게 복제하고 여러 인스턴스로 배포할 수 있습니다.
수직적 확장에서 단일 데이터베이스가 부하를 쉽게 처리할 수 있나요?
어느 정도까지는 가능합니다. 그 이후에는 '병목 현상'이 발생하며, 해결책은 샤딩을 통한 수평 확장 또는 분산 DBMS로의 마이그레이션입니다.
모놀리식 애플리케이션을 효과적으로 확장할 수 있나요?
어쩌면 가능할 수 있지만 큰 제한이 있습니다. 모놀리식 시스템은 일반적으로 수평적으로 잘 확장되지 않으며, 부하 변화에 따라 복제 및 유지 관리가 더 어렵습니다.