Stand-alone, C/S 아키텍쳐의 한계점을 극복해서 웹 3계층이 나왔지만 가용성과 확장성이라는 측면에서는 아직도 부족하다.
어떻게하면 정지하지 않는 시스템을 만들 수 있을까?
가용성을 높여야한다.
가용성을 높이는 전략에는 심장전략과 신장전략이 있다.
심장전략은 서버 1대의 신뢰성을 매우 높여서 가용성을 높이는 전략이고
신장전략은 서버 1대의 품질보다는 서버 여러대를 두고 가용성을 높이는 전략이다.
신장전략처럼 동일한 기능의 컴포넌트를 병렬화하는것을 클러스터링이라고 부른다.
클러스터는 어떤 집합을 가리키는 말로 포도의 '송이'를 생각하면 클러스터링의 이해가 더 빨리될 수 있다.
하지만 서버를 늘리면 늘릴수록 가동률이 높기 때문에 가용성은 높아지지만 가동률 100%에는 어쨋든간에 도달할수가 없다. 그리고 서버가 한대가 늘어나면 늘어날수록 그에 따라 얻는 효과도 점점 작아진다.
어느정도의 서버를 둬야할지는 예산제약과 바라는 신뢰성 수준에 달려있다.
데이터베이스의 클러스터링은 더욱 어렵다.
다중화를 유지하는 중에 데이터의 정합성도 고려해야하기 때문이다.
Active-Active, Active-Standby 데이터베이스 서버가 저장소와 연결되어 어떻게 작동할지를 가리키는 용어이다.