뜌릅
분산컴퓨팅 - 아키텍처 본문
소프트웨어 아키텍처
소프트웨어 컴포넌트가 어떻게 구성되고 소통하는 방식에 따라 아래와 같이 나뉘어진다.
- Centralized architecture
- Decentralized architecture
- Hybrid Organization
아키텍처 스타일
분산컴퓨팅에는 4가지 중요한 스타일이 존재한다.
- Layered Architecture
레이어를 쌓아가는 아키텍처이다. 시스템콜이나 라이브러리 Function Call이 예시이며 아래의 그림처럼 여러가지 종류가 존재한다.
이 레이어 아키텍처에서는 같은 레이어 끼리 Interface을 통하여 통신이 가능하다. 물론 다른 통신방법을 사용한다면 그것 또한 가능하다.
아래의 그림을 참조하자.
통상적인 Layer로는 아래의 3가지가 존재한다.
- Application Layer: 유저 또는 외부 어플리케이션에서 마주하는 레이어이다.
- Processing Layer: 어플리케이션에 대한 함수들을 갖고있는 레이어이다.
- Data Layer: 데이터를 갖고있는 레이어이다.
이 전통적인 레이어를 많이 사용한다. 우리가 사용하는 검색엔진 또한 위의 레이어 모델을 따른다.
- Object-based architectures
자바 오브젝트와 같이 Method Call을 통해 소통을 하며, 해당 함수 콜은 메시징을 통하여 패키징되어 해당 컴퓨터에 전달된다.
RestFul APi 아키텍처를 생각해보면 이해하기 쉽다. 리소스는 URI을 통해 지정을 하게 되는데, 쿠버네티스 또한 비슷하다.
아마존 S3또한 오브젝트들을 버킷안에 넣게 된다. 해당 버킷의 URI을 통해 통신이 가능하다.
- Resource-centered architectures
Client Server모델이 가장 기본적인 중앙화 아키텍처이다.
그 외에 분할한 정도에 따라 Single-Tiered, Two-Tiered, Three...등등으로 나뉘어진다. 이중 Two-Tiered가 Client Server모델이다.
Three-tiered의 경우 각 레이어가 분리된 머신이다.
- Event-based architectures
말 그대로 이벤트를 기반으로 작동하는 아키택처이다.