정환타 개발노트

[조대협 대용량 아키텍처] 잘나가는 SNS 서비스들의 기술적 특징 본문

DevOps

[조대협 대용량 아키텍처] 잘나가는 SNS 서비스들의 기술적 특징

JungHwanTa 2020. 2. 10. 15:26

요즘 잘나가는 SNS 서비스들의 아키텍처나 운영 구조를 통해 SNS 시스템의 기술 트렌드를 분석한 특징에 대한 정리를 하였다.

 

1. 소규모 조직

대부분의 SNS 서비스 업체들은 인력이 20명 이내이다. 

영업 조직이 있는 솔루션 업체는 영업 인력과 디렉터를 포함하더라도 40명을 넘지 않느다.

이는 빠른 의사결정을 할 수 있도록 하기에, 서비스 개선을 빠르게 할 수 있다.

 

2. 오픈소스로 무장 

SNS 서비스들이 대형 벤더 솔루션을 사용하지는 않는다.

대부분 오픈소스를 사용하며, 여러가지 언어를 함께 사용한다. 

한국에서 익숙한 자바만으로 전체를 구현하는 것이 아닌, Python, Ruby와 같은 언어를 함께 활용한다.

또한 기존의 오픈소스를 활용하지, 새로운 솔루션을 만드는 경우는 적다.

 

3. DevOps

이전에도 포스팅한 DevOps 로 팀을 운영한다. 

개발팀과 운영팀을 별도로 두지 않고 통합하는 형태의 팀 운영을 말하며, 고객의 요청을 빨리 처리하며 인프라에 대한 운영을 클라우드와 오픈소스를 활용하여 진행한다.

 

4. Cloud

앞서 말한것 처럼 AWS와 같은 클라우드 서비스를 활용하는데, 일단 초기 비용이 들지 않고 글로벌 서비스를 커버할 수 있으며 고가용성 탄력적인 자원 운영의 장점을 가질 수 있다.

 

5. Step By Step

가장 놀라운 점은, 사용자가 많은 대규모 서비스 시스템이라도 처음부터 대규모 서비스를 위해 설계하는 것이 아닌 기존에 익숙한 서비스로 개발을 한뒤 사용자의 증가에 맞추어 기술을 변경하는 구조를 사용한다.

 

주요 구조는 다음과 같다.

 

  • 앞단의 Nginx 혹은 Apache와 같은 웹서버
  • 중간에 Redis와 Mecached 같은 메모리 데이터 그리드
  • 톰캣, Django와 같은 WAS
  • 자바와 함께 사용되는 스크립트 언어 혹은 분산처리 언어
  • MySQL 사용시 샤딩 또는 NoSQL을 백엔드에 사용
  • AWS 위에 시스템이 존재
  • REST를 사용하는 아키텍처
  • 배치 처리와 분산처리를 위한 Hadoop등의 분산 처리 프레임워크 사용
Comments