1 / 55

차세대 MMORPG 서비스 아키텍처

차세대 MMORPG 서비스 아키텍처. Ncsoft , Technical director LF Team 김종원. 누구세요 ?. 현재 NCSoft , LF Team / Technical director 과거 1992 한메한글 for Windows 개발 1994 윈도우용 아래아한글 3.0b , 한글 96 등 개발 1999 포바이트 대표 2000 임베디드 리눅스 기반 PDA ( 모코코 ) 2002 휴대폰 UI 및 스마트폰 개발

vlora
Download Presentation

차세대 MMORPG 서비스 아키텍처

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 차세대 MMORPG 서비스 아키텍처 Ncsoft, Technical director LF Team 김종원

  2. 누구세요? • 현재 • NCSoft, LF Team / Technical director • 과거 • 1992한메한글for Windows 개발 • 1994 윈도우용 아래아한글3.0b , 한글 96 등 개발 • 1999포바이트 대표 • 2000임베디드리눅스 기반 PDA(모코코) • 2002 휴대폰 UI 및 스마트폰 개발 • 2004PE Project(아이폰 같은 게임기) / NCsoft • 컬럼 • 마이크로소프트웨어1994~2002 • ZDNet컬럼‘망치와모루’2001~2004 KGC2010 Next generation MMORPG service

  3. 2010년 상반기아이폰에서 가장 인기 있었던 게임? ? KGC2010 Next generation MMORPG service

  4. 이 게임 해 본 사람 손들어보세요!! KGC2010 Next generation MMORPG service

  5. KGC2010 Next generation MMORPG service

  6. KGC2010 Next generation MMORPG service

  7. SNS 게임 : We rule • 귀농 게임 ‘두덕리 온라인’iPhone 버전 • 수익 모델은 Mojo와 게임 내 광고 KGC2010 Next generation MMORPG service

  8. 하지만… • 뛰어난 그래픽 디자인 및 클라이언트의 높은 완성도 • Age of empire 개발자 출신이라는… • 네트웍트래픽이 문제 • 점점 자신의 다운 받는 데이터가 계속 증가 • 친구 왕국 방문, 주문 알바 • 로그인 실패, 잦은 서버 다운 • 주문 불가 상황 발생 • 대규모 사용자 이탈 KGC2010 Next generation MMORPG service

  9. 망함!! KGC2010 Next generation MMORPG service

  10. Postmortem • 25레벨이 끝, 그 이후는?(지금은 40레벨) • 만렙 이후가 필요 • 용 키워서 다른 왕국으로 쳐들어가면 좋겠다… • 사용자가 많아지는 것이 두려운 게임 • 사용자가 늘어나면 급격히 네트웍트래픽 증가 • Free to play 게임의 한계 • 단일 월드의 시도는 좋았지만 • 안정적으로 운영할 수 있는 서비스 구조 필요 KGC2010 Next generation MMORPG service

  11. 잠깐, 제목과 다른 내용인데? KGC2010 Next generation MMORPG service

  12. 너는 우리의 미래 • We rule은 미래에 등장할 lightweight MMORPG의 프로토타입이 아니었을까? • 미래의 MMORPG의 요구사항 • Free to play • 가벼운 클라이언트 (모바일/ 플래시) • 비동기 플레이 & 실시간 플레이 & push 통지 • SNS를 통한 친구 끌어들이기 • 거대 월드 (하나의 세계) KGC2010 Next generation MMORPG service

  13. 2015년의 MMORPG는? AAA MMORPG 100GB의 클라이언트 패키지 2560 x 1440 화면 해상도 Unreal 5,CryENGINE 5 엔진 장착 VS Anywhere MMORPG 다운로드 없이 바로 플레이 모바일부터데스크탑까지n-screen game 플랫폼에 맞춘 다양한 엔진 KGC2010 Next generation MMORPG service

  14. 두 영역을 모두 공략? KGC2010 Next generation MMORPG service

  15. 으아~~ KGC2010 Next generation MMORPG service

  16. 他山之石 Let another's shipwreck be your sea mark KGC2010 Next generation MMORPG service

  17. 요즘 가장 잘 나가는 놈! KGC2010 Next generation MMORPG service

  18. KGC2010 Next generation MMORPG service

  19. Big bang game company • Zynga의 계속 늘어나는 사용자(2010년3월) • 6천5백만 사용자/일, 2억2천5백만 명/월 • Farmville은 5개월 동안 2천5백만 명 증가/DAU • FishVille은 오픈한 지 1주일 만에 6백만 명 DAU * GDC10 Scaling social games KGC2010 Next generation MMORPG service

  20. Zynga의서비스 구조도 PHP logic HTTP memcachedserver Web server MMO server DB server TCP MMO server DB server MMO server DB server Flash-based client My SQL Java logic * GDC10 Scaling social games KGC2010 Next generation MMORPG service

  21. Zynga’s scaling Scale up – 컴퓨터의 성능을 높이는 것 Scale out – 서비스할 컴퓨터를 더 늘리는 것 징가의 게임은 DB 하나에서 시작 읽기 전용의 DB 복제 복수의 마스터 DB DB의 sharding – 수평, 수직 CDN과 memcached활용 MMO서버의 sharding및 로드 밸런싱 용량 증설 계획을 사전에 수립 KGC2010 Next generation MMORPG service

  22. NCsoft의 MMORPG는 • 한 월드 당 최대 동시 접속 인원을 제한 • 더 많은 사용자를 받기 위해 복제된 월드 추가 • 월드간 커뮤니케이션이나 공통 서비스 어려움 • DB의 복제를 통한 단방향 Web 서비스 제공 KGC2010 Next generation MMORPG service

  23. Case study MMORPG NCsoft’s MMORPG Bluehole’sTera XL games’ ArcheAge Zone 분할 방식의 게임 서비스 NCsoft통합 메신저 Channel chatting system KGC2010 Next generation MMORPG service

  24. NCsoft MMORPG의 구성 Login server TCP 1 World 1 2 World … World N Game server cacheD + Game DB MS-SQL LogD + Log DB KGC2010 Next generation MMORPG service

  25. Bluehole의 MMORPG Login server Instance servers 1 Instance servers Planet MS-SQL 2 Arbiter server Arbiter server Game DB Connection Chatting DB cache compression World 1…N LogD + Log DB World servers KGC2010 Next generation MMORPG service * Gametech 2010

  26. XL games의 MMORPG Auth server 1 World 2 World server Game DB AI server Physics server Instanecezone srv KGC2010 Next generation MMORPG service * Gametech 2010

  27. Zone 분할 월드의 서버 구조 Logine server 1 2 Lobby server DB cache 3 Game server Game server Game server DB server Divided for zones KGC2010 Next generation MMORPG service

  28. Ncsoft통합 메신저 • 100만 명 동시접속 목표 설계 • AION 오픈 시 서버 2 대로 20만 이상 채널 채팅 Configurationserver ShardingUsers Externalserver Internalserver Database Externalserver KGC2010 Next generation MMORPG service

  29. 앞의 시스템들의 공통점은? 서비스의 확장에 대해 고민하고 있었다 KGC2010 Next generation MMORPG service

  30. 새로운 서비스의 요구 • 거대 단일 월드 • 통합 경매장 • 통합 인스턴스던전 • 모바일 및 Web과의 연계 • Facebook, twitter와 연동 • 폐쇄된 게임보다는 SNS와연계된 플레이 유도 KGC2010 Next generation MMORPG service

  31. 난 너의 모든 것을 알고 싶다! KGC2010 Next generation MMORPG service

  32. 현재 서비스 구조에서 가능한가? • 이제까지의 MMORPG에서는 준비가 안되었다 • 무엇을 준비해야 하는가? • 게임 시스템 설계 단계부터 준비 • 게임 기획에서 관련 컨텐츠 구분 • 여러 플랫폼의 요구에 대응할 수 있는서비스 구조 • 요구 사항에 맞는 DB 선택 KGC2010 Next generation MMORPG service

  33. NCsoft MMORPG의 구성(again) Login server TCP 1 World 1 2 World … World N Game server cacheD + Game DB MS-SQL LogD + Log DB KGC2010 Next generation MMORPG service

  34. 이런 구조면 어떨까? Web/SNS 서비스 Login server Other services Game servers Log/async data Game data KGC2010 Next generation MMORPG service

  35. Database가 문제 KGC2010 Next generation MMORPG service

  36. MMORPGDB 특징 • MS-SQL이나 MySQL은 확장이 어렵다 • 게임 특성 상 쓰기 및 업데이트가 대부분 • 로그인 시 읽기 발생 • DB의 병목은 HDDI/O • DB 처리에 있어 CPU는 남는 자원 • CPU보다 HDD 추가가 성능 향상 • 쓰기가 많아 SSD는 적합하지 않음 • 게임 서버 와 웹, 동시 지원이 부담 • 읽기 전용의 복제 DB로 게임 부담 줄임 • 웹에서 게임 DB 변경 불가 KGC2010 Next generation MMORPG service

  37. 설계 단계 부터 준비 • 컨텐츠 속성에 따른 DB 데이터 구분 • 동기 데이터 /비동기 데이터 • 속성에 따라 다른 DB를 사용하는 것은? • 처음부터 웹 서비스를 같이 지원하자 • Transaction 처리는 게임 서버나 캐시 서버에서 • 통합 로깅 시스템 • 게임 플레이 정보, 게임 내 SNS 관련 정보 저장 KGC2010 Next generation MMORPG service

  38. 확장을 위한 준비 • 게임 서버용 DB로 NoSQL 사용 • 읽기와 안정성을 위한 DB 복제 및 분산 DB • DB의 수평적 분할을 해서 쓰기 병목 분산 • 기존의 RDBMS와 NoSQL의 혼용 • 안정성이 걱정되면 동시 지원 • 중요 데이터 및 쓰기가 적은 데이터는RDBMS에 넣어도 좋다 • NoSQLDB는 비동기 데이터 쓰기에 적합 KGC2010 Next generation MMORPG service

  39. 질문있습니다,NoSQL 뭔가요? KGC2010 Next generation MMORPG service

  40. No SQL != DBMS ‘Non-relational’ 혹은 ‘Not only SQL’ DB가 아닌 structured storage 테이블 schema가 없다 KGC2010 Next generation MMORPG service

  41. 왜 NoSQL 이 등장하였는가 Massive data volume 수 만 대의 DB를 사용하는 상황 발생 Extreme query workload 위 상황에서 RDBMS에서 사용은 무리 Schema evolution Schema 변경도 쉬운 일이 아님 여러 NoSQL 시스템의 등장 안정성, 관리 효율성, 보안 등은 검증 단계 KGC2010 Next generation MMORPG service

  42. 여러 NoSQL 등장 KGC2010 Next generation MMORPG service

  43. Casandra • Google의 Big table과 Amazon의 Dynamo 기반 • 서버간 P2P 연결 • 중첩된 column (super columns) 저장 방식 • Write > Read • CassandraProject • 처음엔 Facebook, 지금은 Apache에서 개발 • Java, OpenSource기반의 분산 DB • 분산 DB 서버간의 실시간 동기화는 안됨 • 구조가 간단하여 MySQL에 비해 수 배 빠름 KGC2010 Next generation MMORPG service

  44. Case study - Digg KGC2010 Next generation MMORPG service

  45. NoSQL 적용 사례 (digg 서비스) • Digg가 처했던 어려움 • 고성능의쓰기 위주에 적합한 DB 구축 필요 • 특성 상 DB에서 데이터 일관성을 포기할 수 있는 상황 • Cassandra 선정 • 컬럼 기반, 구조적 문서 저장 가능 • 모든 노드가 개별적으로 동작, 데이터가 여러 노드 간에 복제된다 • 서버를 추가할 경우 읽기, 쓰기 성능이 선형적으로 증가 KGC2010 Next generation MMORPG service

  46. AnotherNoSQL - • 오픈 소스,www.mongodb.org • Document-oriented DB • JSON과 비슷한 BSON format • 고정된 schemas 없음 • 임의의 문서 구조 저장 가능 • 중첩된 문서 구조 • Full index 지원 • Replication & auto-sharding KGC2010 Next generation MMORPG service

  47. MongoDB(계속) • Consistency-Availability • Interface : • C/C++,C#, Java, Python, PHP, Perl,Ruby • Implementation : C++ with boost • Memory size & HDD speed • Support : 10gen.com KGC2010 Next generation MMORPG service

  48. MongoDB sample db.students.find({‘name': ‘Jane'}) print(db.student.address.city); print(db.student.scores[0].for_course.name); KGC2010 Next generation MMORPG service

  49. KGC2010 Next generation MMORPG service

  50. Cassandra vsMongoDB • Cassandra : SNS, Web, Log-base • Java 구현,Garbage collection 부담 • 확장 및 분산 좋음 – 세계 규모 웹 서비스 • 컬럼을 쉽게 바꾸는 것은 불편 • MongoDB : RDBMS-like • C++ 구현,Windows에선 memory mapped file • 빠르고 간단한 DB– 한국 크기 웹 서비스 • Cassandra에 비해 확장성은 낮음 • 개발 과정 중 또는 자주 테이블이 변경되는 서비스에 적합 KGC2010 Next generation MMORPG service

More Related