소셜 시스템이라고 이름은 지었는데,
정의는 Google,FaceBook,Twitter들과 같이 B2C 서비스를 지향하면서 대용량 서비스를 제공하는 웹서비스 시스템을 정의한다.
이 시스템들은 기존의 J2EE나 APM (Apache PHP MySQL) 다음 세대의 기술셋을 사용하는데
특징적으로
- 오픈 소스를 많이 이용한다.
- NoSQL을 이용한 대용량 데이타 저장 구조
- 분산 처리 아키텍쳐
등등이다.
J2EE 시대에 Servlet/JSP + EJB + JDBC가 필수 기술이었고
J2EE 다음 시대인 오픈 소스 과도기에는 Spring + IBatis (or Hibernate) + Struts 가 필수 기술이었다면
다음은 무엇일까?
나름 여러 문건이나 트랜드들을 조사해본 결과
1. NoSQL
- 대용량 데이타 처리에는 Cassandra나 HBase가 주류
- MongoDB는 NoSQL과 RDB의 중간적 특성으로 Rich Data Handling의 경우 사용
2. DataGrid
- memcached와 같은 메모리 캐쉬로 요즘은 Redis가 대세
3. MessageQ
- RabbitMQ
4. Distributed File System
- Gluster가 대세
- 경우에 따라서 SWIFT등의 Object Storage등 사용
5. 분산 처리 프레임웍
- Hadoop
정리해보자면, MongoDB,Cassandra,HBase,Redis,RabbitMQ,Gluster,Hadoop 정도 알면 소셜 시스템에 대한 기반 기술들은 어느정도 습득했다고 생각해도 되지 않을까? 물론 프로그래밍 언어와 미들웨어는 별도고.. ^^;
여기에 양념으로 AWS, ZooKeeper등은 알고 있어야 한다.
'아키텍쳐 > 대용량 아키텍쳐' 카테고리의 다른 글
MySQL Clustering 버전의 새로운 기능들 (0) | 2012.10.23 |
---|---|
대용량 시스템을 위한 데이타베이스 아키텍쳐-Sharding & Query Off Loading (5) | 2012.10.09 |
글로벌 플랫폼 구축시 기술적인 고려 사항 (0) | 2012.04.27 |
Facebook Photo Service Architecture (0) | 2012.01.31 |
개인 클라우드 서비스에 대한 고민 (0) | 2012.01.30 |