대규모 시스템
대규모 시스템이란 방대한 양의 데이터, 동시 사용자, 높은 트랜잭션 처리량을 처리하도록 설계된 복잡하고 통합된 기술 인프라를 의미합니다. 이러한 시스템은 단일체(monolithic)가 아니며, 일반적으로 단일하고 강력한 기능을 달성하기 위해 협력하는 수많은 상호 연결된 분산 구성 요소들로 구성됩니다.
오늘날 데이터 중심 경제에서 수백만 명의 사용자를 동시에 서비스하거나 페타바이트급 데이터를 처리할 수 있는 능력은 경쟁 우위의 필수 요소입니다. 대규모 시스템은 극심한 부하 상황에서도 서비스 수준(가동 시간, 지연 시간)을 유지할 수 있도록 지원하며, 이는 수익, 사용자 유지율 및 운영 효율성에 직접적인 영향을 미칩니다.
이러한 시스템은 분산 컴퓨팅 원리에 크게 의존합니다. 강력한 단일 서버 대신, 작업 부하가 많은 수의 범용 서버(수평적 확장)에 분산됩니다. 주요 아키텍처 패턴에는 마이크로서비스, 컨테이너화(Docker 및 Kubernetes와 같은), 비동기 통신 큐(Kafka와 같은)가 포함됩니다. 로드 밸런서는 들어오는 트래픽을 정상적인 노드들로 지능적으로 분산합니다.
이러한 시스템을 구현하고 유지 관리하는 것은 상당한 복잡성을 수반합니다. 과제에는 분산된 노드 전반의 데이터 일관성 보장, 네트워크 지연 시간 관리, 수천 개의 움직이는 구성 요소 모니터링, 복잡한 배포 오케스트레이션 등이 포함됩니다.
관련 개념에는 마이크로서비스 아키텍처, 분산 데이터베이스, 클라우드 컴퓨팅, 로드 밸런싱이 있습니다.