클라우드 컴퓨팅/SW 아키텍처 3

확장성 패턴 3 - 스캐터 게더 패턴(Scatter Gather Pattern)

스캐터 게더 패턴 정의스캐터 게더 패턴은 로드 밸런싱 패턴과 유사하다.시스템 요청을 보내는 요청자 또는 클라이언트가 존재하고, 이 요청에 응답하는 Worker 그룹이 있다.그리고 요청자가 보낸 요청을 워커에 전달하는 중간 매개체(Dispatcher)가 존재한다. 구조 자체는 비슷하지만, 로드 밸런싱 패턴과 다른 부분은 요청을 받은 Dispatcher가 모든 Worker에 전달한다는 점이다.이후에 모든 Worker들의 응답을 모아 하나로 종합하여 요청자에게 보내는 과정을 거치게 된다. 또 다른 점은 로드 밸런싱 패턴의 Worker는 가용성을 위해 모두 같은 Worker를 사용하지만, 스캐터 게더 패턴에서는 Worker가 다를 수도 있다.동일한 애플리케이션이지만, 각 Worker는 서로 다른 데이터 액세스한..

확장성 패턴 2 - 파이프-필터 패턴(Pipe And Filter Pattern)

파이프-필터 패턴은 이름에 걸맞게 일련의 파이프를 따라 여러 필터를 통과하여 목적지에 도달하는 아키텍처이다.더러운 물이 필터를 따라 불순물이 걸러지면서 식수나 관개용수가 되는 것이라고 생각하면 된다. 컴퓨팅 시스템에서는 물을 데이터로 표현할 수 있다.그리고 이 데이터를 처리하는 소프트웨어 컴포넌트를 필터라고 할 수 있다.데이터의 출처는 Data Source(데이터 소스)라고 부른다.모든 처리 단계를 통과한 뒤 최종적으로 도착하는 목적지는 Data Sink(데이터 싱크)라고 부른다. 데이터 싱크는 내부 데이터베이스나 분산 파일 시스템이 될 수도 있고, 시스템의 이벤트를 리스닝하는 외부 서비스가 될 수도 있다.데이터 소스는 사용자 요청을 수신하는 백엔드 서비스가 될 수도 있고, 서비스형 함수 요소와 같은 경..

확장성 패턴 1 - 로드 밸런싱 패턴(Load Balancing Pattern)

로드 밸런싱 패턴을 알기 위해서는 로드 밸런싱이 무엇인지 알고 넘어가야 한다. 로드 밸런싱이란?사용자의 요청을 받아 해당 요청에 대해 응답할 수 있는 서버에게 전달(라우팅)하는 것 그렇다면,로드 밸런싱 패턴이란?프론트엔드에서 백엔드로 직접 요청을 하는 것이 아닌, 로드 밸런서로 전달되도록 하고, 트래픽량에 따라 서버의 수를 조절하는 구조를 뜻한다.사용자가 요청이 로드 밸런서를 거쳐 백엔드로 전송된다. 왜 프론트엔드에서 백엔드로 직접 요청을 전달하면 문제가 생기는 것일까?단일 서버일 경우 사용자의 요청이 CPU 메모리나 네트워크의 용량을 넘어서면 성능이 저하되거나 장애가 발생할 수 있다.→ 그렇다면 메모리나 용량을 늘리면 되는 거 아닌가?(Scale up)라고 할 수 있는데, 스케일 업하기 위해서는 인스턴..