아키텍쳐 143

ROA (REST 아키텍쳐)의 완성

고객사 차세대 아키텍쳐에 대한 Blue Print를 Research하다가 NoSQL (Cassandra, HBase)등을 reference했는데, 결과적으로 ROA 아키텍쳐의 완성은 NoSQL DBMS가 있어야 하는게 아닌가 싶다. 보고용 Article을 좀 쓰다가 정리가 안되서 blog에 포스팅하는데, ROA에서 문제는 기존의 RDBMS는 ROA의 Resource구조와 맵핑이 잘 안된다. ROA는 1 resource가 하나의 저장소에 저장되는 형태가 좋은데, (하나의 ROW라던지). RDBMS는 여러개의 Table에 걸쳐서 데이타가 나누어 저장되고, Key 구조도 FK를 이용하거나해서 복합 키가 생겨 버려서 Key 정의에도 모호성이 보인다. 반면에 NoSQL DB, 특히 Column형 DB는 Key &..

글로벌 시스템의 거점 센터에 대한 고민

요즘 시스템을 전세계에 걸쳐서 배포 하는 내용에 대해서 고민을 하고 있습니다. 자료를 찾다보니 재미있는 자료가 있어서 올려놉니다. 출처 : http://gigaom.com/2008/08/17/can-undersea-optic-cables-predict-an-economic-boom/ 미국쪽은 미국 서부와 동부 유럽은 주로 영국 아시아는 한국과 일본을 주축으로 연결이 되는것을 볼 수 있습니다. Facebook이 IDC를 미국 서부와 동부 하나씩 놓은게 이해가 되네요 Akamai 자료를 보면 (아래 참조) 아시아쪽에서는 한국이 독보적으로 Bandwidth가 좋습니다. 중국은 좀 많이 취약하네요. (한국 11M, 중국은 8Kbps) 그리고 상대적으로 중국의 해킹관련 트래픽이 높습니다. (중국 31%, 한국 6..

MySQL cluster geographic replication

물리적으로 분리된 위치에서 데이타 SYNC에 대한 솔루션을 research 하던중에 mysql에 대한 이야기가 많이 나온다. Facebook도 master 와 slave center (미국 서부와 동부)의 데이타를 mysql georeplication 을 이용해서 구현한것으로 보인다. MySQL georeplication의 원리는 위의 그림과 같다. Master node의 변경 사항을 BinLog라는 형태로 저장하여 복제 대상에 전송한후 replay를 하는 방식이다. record & replay 방식인데, binlog는 오라클의 redo 로그와 유사하다. 데이타베이스의 redo 로그 자체를 레코딩해서 전송하는 방식이기 때문에 데이타 복제만이 가능하고 ETL과 같은 변환은 불가능하며, 변경된 부분만 전송하..

분산 인터넷 아키텍쳐에 대해서 좋은 책 하나..

Scalable Internet Architecture 2006년판. 국내에 독자층은 별로 없겠지만, 글로벌하게 단일 시스템을 분산 배치할때, 파일 시스템,네트워크, 데이타 베이스등에 대한 아키텍쳐를 잘 설명하고 있다. 이만한 책도 없을듯해서 북마크중 금전적인 사정관계로, 스폰서(?)분이 지원해주신 사파리 온라인으로만 읽고 있음

Facebook geographic distributed architecture

페이스북의 경우 DR(재해 복구)와 로드 밸런싱의 목적으로 미국내에 서부와 동부 두군데에 IDC를 유지합니다. 이렇게 두개 이상의 다른 장소에 시스템을 배포하는 것 구조를 geographic distributed architecture라고 합니다. 이러한 아키텍쳐에 있어서 가장 중요한점은 IDC간의 데이타 동기화,라우팅 그리고 성능 향상을 위한 캐슁입니다. 라우팅은 REQUEST가 들어왔을때, 어느 IDC로 보낼것인가를 결정하는 방법입니다. 페이스북의 경우 미국내에 IDC가 있는데, 서부는 미국 서부와 아시아권을 동부는 유럽쪽을 커버합니다. 그리고 로드 밸런싱을 Global Load Balancer라는 것을 이용하는데, 아마 국가별 IP를 기반으로 라우팅을 하리라 생각됩니다. (추정) 동기화의 경우 해당..

High scale & georeplication system.

지금 하고 있는 숙제가 georeplication system입니다. Geo replication 시스템이란 분산 시스템중에서 시스템이 여러 IDC (서로 다른 국가나 대륙에 위치)하여 구축되며, 어느 위치에서 접근하던지 같은 데이타를 볼 수 있게 하는 것을 이야기 합니다. 예를 들어 한국 IDC에서 USER정보를 읽어오나, 미국 IDC에서 읽어오나 그 내용이 같다는 겁니다. 물론 USER정보가 계속해서 transaction에 의해서 update되는 상황에서 말입니다. 대충 방향잡고 아키텍쳐 구상도 해놓긴했습니다만, 몇일째 머리가 뽀게지고 있습니다. 다음주에 새로 JOIN하는 호주 친구가 데이타베이스의 전문가니까는 이 부분을 검증하고 보강해주리라 기대하고 있습니다.(돈이 얼만데... -_- 한달 인건비가..