# 모놀리식 vs 분산형2

# 오류#4 : 네트워크는 안전하지 않다

  • 보안은 너무 어려운 문제임
  • 분산 배포된 각 엔드포인트에 악의적인 요청이 유입되지 않게 철저한 대책이 필요함

# 오류#5 :토폴로지는 항상 바뀐다

  • 네트워크를 구성하는 모든 라우터, 허브, 스위치 등 전체 네트워크 토폴로지가 불변할 거란 가정은 오해로 네트워크 토폴로지는 당연히 변한다

# 오류#6 : 관리자는 여러 사람이다

  • 네트워크 관리자는 보통 여러 명이다. 특정 문제에 따라 소통해야하는 사람이 다르다
  • 정상 궤도에 오르려면 상당히 많은 조율 과정이 불가피하다

# 오류# 7: 원격 액세스는 돈이 든다

  • REST 호출을 하는데는 비용이 발생한다
  • 분산 아키텍처는 많은 리소스가 동원되므로 모놀리식보다 비용이 훨씬 많이 듬

# 오류# 8 : 네트워크는 균일하지 않다

  • 여러 업체의 네트워크 하드웨어 제품들이 얽혀있다
  • 모든 하드웨어가 서로 다 잘 맞물려 동작하는것이 아니라는 말
  • 실제로 간혹 패킷이 유실되는 사고가 많이 일어남

# 부록

# 분산 이키텍처 고려사항

# 분산로깅
  • 시스템 로그가 분산되어 있어 데이터 누락에 원인을 찾기가 어려움
# 분산 트랜잭션
  • 모놀리식은 CIDI(원자성,일관성,격리성,지속성) 트랜잭션을 걸어 데이터 일관성과 무결성을 강제함
  • 분산 아키텍처는 배포 단위에서처리된 데이터를 어느 시점에 모두 일관된 상태로 동기화함
  • 트랜잭셔널 사가를 사용함
  • 보상을 위해 이벤트를 소싱하거나 트랜잭션 상태를 관리하기 위해 유한 상태기계를 활용
  • 혹은 BASE 트랜잭션을 사용
# 계약 관리 및 버저닝
  • 계약 생성, 유지보수, 버저닝 역시 까다로움
  • 계약은 클라이언트와 서비스 모두 합의한 행위와 데이터
  • 분리된 서비스와 시스템을 제각기 다른 팀과 부서가 소유하기에 유지보수가 어려움