본문 바로가기
Java

The dark side of distributed systems

by ybs 2021. 11. 4.
반응형
분산 시스템은, 존재조차 모르는 서버 오류로 인해 내 서버를 사용할 수 없는 위험성이 있다. 실패(failures)는 피할 수 없다.

 

원문에서는 failures 라고 되어 있는데 에러로 인한 장애를 피할 수 없다는 말로 이해했다. 분산 시스템이 클수록 이런 역동성(dynamism) 이 커지고 장애가 날 가능성이 높아진다.

 

쿠버네티스 월드에서 분산 컴퓨팅에 대한 잘못된 생각(많은 사람들이 옳다고 믿는) 8가지가 있다.

 

1. The network is reliable
2. Latency is zero
3. Bandwidth is infinite
4. The network is secure
5. Topology doesn’t change
6. There is one administrator
7. Transport cost is zero
8. The network is homogeneous

 

위 8개 리스트는 쿠버네티스, 클라우드 시대보다 훨씬 앞선 1997년에 나왔지만 오늘날 훨씬 더 관련이 있다. 쿠버네티스, 클라우드와 관련된것에 포커스해서 살펴보자.

 

The network is reliable

개발자는 쿠버네티스, 클라우드 환경에서 네트워크가 항상 신뢰할 수 있다고 가정한다. 실제로 그것들이 제대로 작동하는지 확인하는 것은 인프라의 역할이다. 하지만 종종 데이터 센터에 문제가 생기거나(실제로 2018년에 AWS US-East-1 에서 정전이 발생해 서비스가 중단됐다) 시스템 일부가 장애가 나므로 개발자는 이에 대비를 해야한다.

 

Latency is zero

네트워크를 이용하는 원격 호출은 시간이 걸릴 수밖에 없다. latency는 시간이 지남에 따라 다양하게 바뀔 수 있다.

 

Bandwidth is infinite, and The network is homogeneous

대역폭 limit 에 도달할 수 있고, 시스템이 같은 노드에서 실행중이라 다른 지역보다 더 빠른 네트워크를 사용할 수도 있다. 

그래서 latency 를 추정하는것은 쉽지 않다. capacity를 얼마나 둘 것인가에 대한 계획이나 타임아웃 계산은 네트워크 latency 를 기반으로 한다.

 

Topology doesn’t change

topology 는 컴퓨터 네트워크의 요소들(링크, 노드 등)을 물리적으로 연결해 놓은 것, 또는 그 연결 방식(위키백과) 이라 한다. MSA 구조에서 여러 서버들과의 관계를 말한것으로도 이해된다. 쿠버네티스 환경에서는 서비스들, 애플리케이션들, 컨테이너들이 한 물리 서버에 고정되어 있는게 아니라 계속 움직인다. 스케일업, 최적화, 새로운 애플리케이션 배포로 빈번하게 움직인다. 이런 유동성(Mobility) 은 전체 시스템을 최적화하기 때문에 엄청난 장점이다. 하지만 다른 서버들과의 상호작용 속에서 이동은 챌린지가 될 수 있다(챌린지란 용어는 잘되면 큰 장점이지만 여러 어려움이 있다고 이해했다 ).

 

There is one administrator

지난 몇년간 관리 시스템이 급격히 변화했다. 서버를 내리고 유지보수를 하거나 배포하는 것은 이제 올드한 시스템이다. continuous delivery and continuous deployment 같은 DevOps 철학과 기술은 쉽게 무중단 배포를 가능하게 한다.

 

Transport cost is zero

네트워크를 무료라고 생각하는 것은 잘못된 생각일 뿐만 아니라 경제적인 실수다. 네트워크 호출 비용에 주의를 기울이고 최적화를 찾아야 한다. 예를 들어 클라우드 resion 들을 가로지르거나 대용량 데이터를 전송하거나 다른 클라우드 사업자(AWS, MS 등)간 통신에는 비용이 많이 든다.

 

분산 시스템을 만드는것은 쉽지 않다. 위의 이슈들을 다 고려해서 아키텍쳐를 설계해야 되고 애플리케이션 코드를 짜야한다. 하지만 이게 전부는 아니다. 구성원들과 합의(consensus)에 도달하지 못할 수도 있다. 분산 시스템은 우리를 미치게 만들정도로 상상도 못한 이슈들을 만나게 해준다.

 

 

원문 : https://learning.oreilly.com/library/view/reactive-systems-in/9781492091714/

반응형