분산시스템 개념과 디자인 — 특징

원서 SUMMARY: Distributed Systems Concepts and Design 5th Edition (1)

글에 앞서…

아래 글의 원문

1. 분산시스템의 특징

분산시스템

  • 네트워크에 위치한 하드웨어 소프트웨어
  • message 를 통해 communicate 하고 coordinate 하여 작동
  1. Concurrency: Concurrent program execution 과 동시에 실행하는 프로그램들의 coordination
  2. No global clock: 단일 컴퓨터에서는 Clock이라는 CPU의 속도 단위를 기준으로 프로세서가 동작한다. 하지만, 분산 시스템에서는 message를 통해서 데이터를 주고 받기 때문에 Global Clock 이 없다.
    💡 단일 컴퓨터에서 프로세스: 자신의 virtual 한 private memory를 가지고 있고(private address space), 독립적인 machine state를 가지는 작업 단위
    💡 분산 시스템에서 프로세스: 하나의 machine state를 여러 컴퓨터가 공유하지만, 사용자에게는 하나의 machine state 로 느껴진다. (투명성)
  3. Independent failure: 장애 발생 시, 다른 컴포넌트에 영향을 미치지 않음

Trends in distributed systems

  • pervasive networking technology: Firewall 로 패킷 필터링
  • ubiquitous computing → user mobility: 언제 어디서든 접속 가능
  • 멀티미디어에 대한 수용 증가
  • 분산 시스템을 공공재로 보는 관점: 저장소 등등

Focus on resource sharing

  • remote invocation: A complete interaction between a client and a server
    💡 분산시스템이란 네트워크로 연결된 여러대의 컴퓨터에 하나의 프로그램이 분산되어 실행되면서, 마치 하나의 프로그램처럼 움직이는 시스템 → 실행하고자 하는 프로그램 소스는 다른 프로그램에 있으나 이 소스를 마치 동일한 컴퓨터에 있는 것처럼 메서드를 호출 실행하는 것

Challenges

  • Heterogeneity: 분산 서버의 네트워크, OS, 하드웨어, 프로그래밍 언어가 모두 다를 수 있음. → Internet Communication Protocol 을 통해 차이점을 가리고, Middleware 가 차이점을 관리.
  • Openness: 분산 시스템은 확장 가능해야 함. 각 컴포넌트는 인터페이스를 가지고 있지만, 다른 프로그래머가 작성한 컴포넌트들을 통합하는 일은 쉽지 않다.
  • Security: 네트워크를 통해 통신하는 메시지들을 암호화를 통해 보호합니다. Service Attack 도 주의해야 할 하나의 문제입니다.
  • Scalability: (추가되어야 하는 리소스들을 생각했을 때) User 를 하나 더 추가할 때의 비용이 일정하다면 그 분산시스템은 Scalable 하다고 할 수 있다. 공유자원에 접근하는 알고리즘은 bottleneck을 피해야 하고, 데이터는 최선의 access time 을 위해 계층적으로 구성되어 있다. 자주 접근 되는 데이터는 replicated 되어야 한다.
  • Failure Handling: 컴퓨터, 프로세스, 네트워크는 독립적으로 실패할 수 있다. 따라서, 각 컴포넌트는 의존하고 있는 컴포넌트의 실패의 가능성을 염두에 두어야 하고, 그런 실패를 적절히 다룰 수 있어야 한다.
  • Concurrency: 분산시스템에서는 다양한 사용자들로 인해, 리소스에 대한 동시적인 요청들이 생길 수 있다. 각 리소스는 이러한 동시적인 요청에 안전하도록 설계되어야 한다.
  • Transparency: 분산 시스템은 Application Programmer 에게도 투명해야 한다. 네트워크나 프로세스의 실패도 Application Programmer 에게는 Exception의 형태로 주어져야 한다.
  • Quality of Service: performance, security, reliability와 관련한 품질 보장

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
SoniaComp

SoniaComp

238 Followers

Data Engineer interested in constructing Data-Driven Architecture with Cloud Service (https://www.linkedin.com/in/sonia-comp/)