네이버의플랫폼기술소개 2014-11-27 Naver Labs / 서비스플랫폼 G 김태웅
2
https://www.facebook.com/naverlabs 3 3
역할 네이버의핵심기술의연구 / 개발을통해기술내재화 학생및개발자들을대상으로기술과꿈을나누는조직 4
서비스플랫폼 G 의연구개발분야 범용스토리지플랫폼 분산파일시스템 : OwFS, Papyrus DBMS: CUBRID 분산클러스터링 : nbase, nbase-arc 목적기반분산저장소 nlocation, TripleS, NELO, ncrazer 네트워킹플랫폼 NPUSH, RTCS, API GW, Social GW 5
범용스토리지플랫폼
OwFS What is OwFS? Owner-based File System 네이버가자체개발한대규모분산파일시스템으로, 포털서비스환경에적합 여러서버들의디스크공간들을묶어하나의대규모파일저장공간을생성 Owner 서로관련있는파일들을묶어서저장하는단위 (container 개념 ) 수많은 owner의합이전체파일시스템을구성 Owner 별로 3개의복제본을서로다른서버에저장 OwFS 의특징 가용성 확장성 성능 운영편의성 점검시서비스 downtime 이없음 Owner map 캐시 응용서버 Owner 조회 파일 I/O Owner 의복제본정보 메타데이터서버 (MDS) DS1 DS2 DS3 홍길동변학도 홍길동성춘향 홍길동이몽룡 Owner map Owner 이름 복제본 홍길동 1,2,3 이몽룡 3,4,5 성춘향 2,5,6 변학도 1,4,6 DS4 DS5 DS6 이몽룡변학도 성춘향이몽룡 성춘향변학도 데이터서버 (DS) 7
OwFS 적용서비스 네이버 /LINE/NHN Entertainment 의 200 개이상서비스 기반기술 분산멤버십관리 로깅기반서버간데이터동기화기술 Linux 파일시스템에대한지식 8
Papyrus 분산파일시스템의 Storage tiering 에서 secondary storage 저장비용이효율이좋은파일 archive 용스토리지 특징 OwFS 와같은복제본기반의데이터가용성을사용하지않고 Erasure coding 을사용한데이터저장방식사용 file D0 D1 file D2 D3 C0 C1 encoding D0 D1 D2 D3 C0 C1 Papyrus 9
(n,k) Erasure code k 개의원본데이터를저장시 (n-k) 의추가데이터를저장하여 n 개의데이터블록중적어도 k 개의데이터블록이존재하면원본데이터를복원할수있는코드 a 1,1 a 2,1 a n 1,1 a n,1 a 1,2 a 2,2 a n 1,2 a n,2 a 1,k a 2,k a n,k a n 1,k d 1 d 2 d k = c 1 c 2 c n 1 c n Code generating matrix (nxk) 원본데이터인코딩결과 예 ) (4,2) Erasure code X X 데이터의복원 10
Papyrus architecture Cover, TOC, Index, Page 서버군으로구성 Application Cover Get section of chapter /foo TOC Chapter to Section Mapping write( /foo/bar ) Index Get pages map of /foo Section to Pages Mapping D0 D1 D2 D3 D4 D5 C0 C1 C2 Page Section 11
분산파일시스템의 Data durability Markov Chain 모델 각각의상태는살아있는데이터블록의개수 고장발생률 : λ, 복구률 : μ 3-way replication (n,k) erasure code 12
구성방식에따른 MTTDL(Mean time to data loss) n-way replication MTTDL (years) Storage overhead (cost) 2 69 100% 3 17,804 200% 4 5,178,783 300% 5 1,607,146,440 400% (n,k) Erasure code MTTDL (years) Storage overhead (cost) (9,6) 41,816 50% (12,8) 2,075,634 50% (14,10) 826,458 40% (16,12) 381,252 33% (n,k) Erasure code 방식이복제방식보다모든면이좋을까? 고장발생시필요한 I/O 와계산이복제방식보다많아성능에영향을미침 13
플랫폼개발및구축시고려사항 Better Solution? Faster Cheaper 데이터스토리지관점에서 Better 데이터의 durability를높이려면더많은복제본을동기적으로기록 Faster 데이터 IO의 latency를줄이려면메모리와같은고속매체의존성이높아짐 Cheaper 비용만생각한다면성능과품질의희생이필요 14
CUBRID DBMS 네이버의오픈소스 DBMS http://www.cubrid.org 15
CUBRID 적용서비스 메일, 사전, Naver me, 네이버캐스트, N 드라이브등 NAVER 주요서비스에적용 사내시스템모니터링사이트인 Nsight 등사내주요서비스에적용 16
nbase-t nbase-t 분산과확장성을제공하는 DB middleware 분산키별로 container 라는개별공간을제공. container 별로 RDBMS 기능을지원 Online data migration 을통한노드증설 / 감설 / 물리이전 / 밸런싱기능을제공 주요기능 Online data migration 병렬작업에대한스케쥴링및로드관리 Membership 상태및메타데이터관리 Distributed query processing 등 Node1 Node2 Application NodeN Management + Server + nbase + nbase + nbase + nbase... + nbase + nbase CUBRID HA or MySQL MMM 적용서비스 네이버 : 메일, 블로그, 라인 : 분산코인시스템, 세션 / 인증, 게임 DB, 기타라인플레이게임 DB, NHN ENT 게임메일 / 게임 DB CUBRID HA or MySQL MMM CUBRID HA or MySQL MMM 17
nbase-arc Redis 기반의분산메모리저장소로다양한구조체에대한 in-memory 고속연산을분산환경에서동일하게제공 고가용 Multi-Cluster service pool 일관성을보장하는복제 layer 기반의복제그룹의집합이며, nbase-arc 는복수의 cluster 를운용 18
목적기반분산저장소
nlocation 위치기반서비스를위한공간검색시스템 Spatial operation 을지원하는 Document Oriented 저장소 Line, 부동산, 지식 in, 블로그등 20
TripleS Shared Session Storage 세션 & 서비스공유데이터저장소 다른서비스와세션정보를쉽게공유가능 회원, 내검색어, 모바일검색, Link, 부동산 21
NELO2 주요기능 로그전송 : 모바일 (ios/android) 앱와서버로부터의로그데이타전송 로그수집 : 대규모로그데이타수집및큐잉 실시간검색 : 수많은앱과서버로부터유입된로그를실시간으로검색 크래시 / 로그분석 : 크래시와로그데이타를실시간으로분석하여통계정보제공 관련기술 데이타네트워크, 모바일 / 서버 SDK, 실시간검색, 빅데이타분석 에러 / 크래시발생 검색서버 서버에러로그크래시로그전송 NELO2 로그수집서버 분산큐 크래시분석 알람서버 NELO2 WebApp 로그 Naver 개발자 22
ncrazer 23
네트워킹플랫폼
NPUSH NPUSH-GW 외부 PUSH 메시지 APNS MPNS AOM NPUSH-GW (BLOC) Producer 계정정보 GCM NNA KT PNS Account DB MySQL Luxun Broker Nqueue Zookeeper Monitor NNI BBPS LG UPS NPUSH-GW Manager Consumer NPUSH-GW (BLOC) C2D M Firefox Tizen 25
RTCS 브라우저를통해서사용자에게실시간으로메시지를전달할수있는 Real Time Web 을위한플랫픔 IE, Firefox, Chrome, Safari 등브라우저의종류상관없이지원 야구 9 단, 풋볼데이, 쇼핑, 체크아웃, 네이버 ME 26
API GW 외부제휴사와네이버의모바일앱에서 Naver 의 API 를사용할수있도록하는시스템 네이버의 API 를사외에제공하는관문 80 여개서비스에서 API 제공 일 20 억 QC 27
Social GW Line, Twitter, Facebook, 중국 3 대 SNS( 텐센트웨이브, 시나웨이보, 런런왕 ) 과 Naver 서비스가연동할수있는시스템 여러 SNS 들과쉽게연동할수있음 해피빈, 블로그, 네이버 ME 등 40 여개서비스적용 28
Q & A 29