소셜 시스템이라고 이름은 지었는데,
정의는 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 |
소셜 시스템의 필수기술들.. (1) | 2012.06.05 |
글로벌 플랫폼 구축시 기술적인 고려 사항 (0) | 2012.04.27 |
Facebook Photo Service Architecture (0) | 2012.01.31 |
개인 클라우드 서비스에 대한 고민 (0) | 2012.01.30 |
댓글을 달아 주세요
안녕하세요!
가끔씩 와서 좋은 글 잘 읽고 있습니다. 요즘 제가 고민하고 있는 부분들이었는데 이렇게 글로 딱! 정리하여 주시니 좀 큰 그림이 보이는 것 같습니다. NoSQL에 대한 개념과 MongoDB, Cassandra... 그리고 예전에 Spring에서 인수한 (예전에 로드존슨의 인터뷰에서 봤던 것 같은데 확실하지는 않은...) RabbitMQ, 분산 파일 시스템과 분산처리 프레임웍 Hadoop...
IT를 직업으로 하면 단점이자 *장점*이 끊임없이 배울것들이 나오는 것 같습니다.
그럼 계속 좋은 글과 소식 전해주세요! 감사합니다!