모놀리식 vs 분산형2
오류#4 : 네트워크는 안전하지 않다
- 보안은 너무 어려운 문제임
- 분산 배포된 각 엔드포인트에 악의적인 요청이 유입되지 않게 철저한 대책이 필요함
오류#5 :토폴로지는 항상 바뀐다
- 네트워크를 구성하는 모든 라우터, 허브, 스위치 등 전체 네트워크 토폴로지가 불변할 거란 가정은 오해로 네트워크 토폴로지는 당연히 변한다
오류#6 : 관리자는 여러 사람이다
- 네트워크 관리자는 보통 여러 명이다. 특정 문제에 따라 소통해야하는 사람이 다르다
- 정상 궤도에 오르려면 상당히 많은 조율 과정이 불가피하다
오류# 7: 원격 액세스는 돈이 든다
- REST 호출을 하는데는 비용이 발생한다
- 분산 아키텍처는 많은 리소스가 동원되므로 모놀리식보다 비용이 훨씬 많이 듬
오류# 8 : 네트워크는 균일하지 않다
- 여러 업체의 네트워크 하드웨어 제품들이 얽혀있다
- 모든 하드웨어가 서로 다 잘 맞물려 동작하는것이 아니라는 말
- 실제로 간혹 패킷이 유실되는 사고가 많이 일어남
부록
분산 이키텍처 고려사항
분산로깅
- 시스템 로그가 분산되어 있어 데이터 누락에 원인을 찾기가 어려움
분산 트랜잭션
- 모놀리식은 CIDI(원자성,일관성,격리성,지속성) 트랜잭션을 걸어 데이터 일관성과 무결성을 강제함
- 분산 아키텍처는 배포 단위에서처리된 데이터를 어느 시점에 모두 일관된 상태로 동기화함
- 트랜잭셔널 사가를 사용함
- 보상을 위해 이벤트를 소싱하거나 트랜잭션 상태를 관리하기 위해 유한 상태기계를 활용
- 혹은 BASE 트랜잭션을 사용
계약 관리 및 버저닝
- 계약 생성, 유지보수, 버저닝 역시 까다로움
- 계약은 클라이언트와 서비스 모두 합의한 행위와 데이터
- 분리된 서비스와 시스템을 제각기 다른 팀과 부서가 소유하기에 유지보수가 어려움