Wargaming的开发-与平台负责人Maxim Baryshnikov会晤(第一部分)

每个人都跑了,我跑了。最近,我启动了一系列在线mitap,邀请专家讨论大型IT项目。我们的第一位客人是Wargaming平台负责人Maxim Baryshnikov。下面是我们谈话的记录,或者更确切地说,是关于建筑的第一部分。


从这一部分,您将学习例如:


  • Wargaming中有多少人工作,Tank中有多少行代码
  • 在“战车”战斗中字节如何,什么位置
  • Wargaming如何实现可扩展性和弹性
  • 经历了什么建筑上的痛苦,以及在玩法和工程实践之间有什么妥协
  • 为什么在Python中必须禁用垃圾收集器,以及在哪里使用Erlang
  • 什么是Wargaming开源政策,以及它们对公众开放的内容

如果您对开发大型游戏项目的主题感兴趣,那么讨论会持续很长时间,但是很详细-请在猫的照护下进行。


图片


Alexey Rybak:大家好!


Maxim Baryshnikov:您好。


: Wargaming. , , , , Lean Bar, . , ! , URL Facebook.


: . Wargaming 2013 , -. . . – , 1999 . - , , , , .


: . : , , , , , setup. , , , , . , , , Zoom. 15 . , , , . . . , , ?


: 200, . .


: . , - , , - – . 15 . Lean Bar Session, - . , - . , , - , ( ). , , .
, . .


: .


-


: . ?


: Python, . C++ (, ). - - Python . Rust, . Erlang, Elixir, Go, Java ( ). .NET, . .


: ?


: «» SVN, – Git (Bitbucket ).


: ?


: 10 . .


: ? -, . , 1-2 .


: , , . Python -, , – uWSGI. , .
? , Apache Ignite . , , . , .


: . ?


: , PostgreSQL. «», «», «» MySQL. . , key value storage.


: , . - , .
- ?


: Kafka, RabbitMQ.


: - distributed job processing?


: , Celery Apache Ignite Data Grid (. : Apache Ignite , function-as-a-service, data processing pipelines. Alooma).


: - : DWH, , , ?


: – , Business Intelligence. . , . , DWH .


: -?


: ClickHouse .


: Hadoop?


: Hadoop .


: , !


: , , , , .


: , . ?


: 5 .


: ?


: . . , 5 . ?


: , , , . , .


: , Wargaming, , , , , . , .


: , . , ?


: . , , , 3 . .


: ?


: – , , , , . .


: , ?


: . 2400 .


: ! , - ?


: . , , – G-Core Labs. . , , , , , .


: . , , . .
- ?


: , CentOS 7.


: . , , -?


: , , , ( , ). . , . Wiki-, .


: , , : , … ?


: . . . . .


: delivery, , . , ?


: -.


: ?


: Fabric, . OS, – Terraform . «» , , . – - 150 . release trains , , . «» , , downtime. : « . ». .


: , , , ? ? , code coverage ?


: . . , , , . .


: coverage, , - , .


: . QA. QA . . Coverage - , coverage. : « 80%». .
– 150 , – , coverage . .


: , , , QA, , ?


: , , 1 3. , , 1 3.


: 1 4?


: .


: , , 1 2 1 1, -?


: , , QA , coverage, , , , , QA-less . .



: . . . , HighLoad. , . . - summary, . , , , .


, , real-time , , , «», – , user experience real-time. , - – , - polling, , - , «» . SLA . ?


: – , , . , , , - , . .
, – , : , , , . , , . , . , , - . , , . .


: . , - .
- , -. . – . , , , , — . , , … , . , … , , , «», . «», , , «». base-app. , . , . -, . – - , - . cell-app, , - . , .
? - ?


: , , . , .


: , , , , .


. . . , , . . – , – . , ?


: -, «». , , , - , . . – – , , , , .


, , , , . , input, input. , , input . . .


, , .


: ? , . , ?


: , , , . , ?


: . , . , - .


: . . . , , .


: , .


: .


: , - . ?


: … , , . ? . . – .


: , 3D-?..


: . 3D- , . , , , . , , , -. , , . , , GeForce Now (. : NVidia cloud gaming service), , .


: , , , , , ? CPU-bound ?


: .


: , - . high availability ? , ? .


: . , high availability , , , . , , , , , , , . , , .


: . – cell, – , . ?


: , , , ., , . . .


: , ?


: . , , , , .


: … ?


: ( : , .) . , , . . , . , . 3-4 , .


. , , , , , . , , - . , , , , ?


: . , , , , . , , ?


: – , , 5-6 , , 7, – 20-30 , . - , - , , .


: , « . , , ».


: .


: , . - ? , ?


: . , ? , : « ? , », - : « . ».


, , . , – BaseApp Manager, CellApp Manager – . load balancers . base manager base, , c, (. : , ), . , BaseAppMgr , . - , , : « , », . , .


, , , . – instance C++ , - . – , , – , , .


: , ? , , , , ?


: . , , .


: , , , , . 1-2 , , ?


: «», , – . , . . … .


, , , . , . , , - , , , : « -». , , . . , , , .


: ORM.


: , - ORM. ORM . ORM, , , , .


: , . ?


: «» . . , 10 , . , , , – , – code review.


: . . , , , , , ? , - ?


: . , , , «», , ?..


: () , . , . , - , .


: , , , , , , … 100% . , , . , .


: , - cell-app, base-app , ?


: . . . , , ; , . 2008-2009 , . . . -, BigWorld continuous . -, - Ultima Online, Ultima, -, . Ultima- BigWorld .


: . , , . , «»?


: «» , . , , . , . , .


, . , - , . , . , , … , , . , , .


: , - , ? , . , , TP, UDP?


: .


: UDP ?


: UDP ? , area of interest . , - (. : Level of Details (LoD) .).


: , , , , ?


: MTU, -. MTU. , UDP, UDP , MTU. . - - , MTU , . . , , , .


: .


: , , .
: .


: , - ? , .
: . ? , , , - .
, . Erlang, ?


: . . , -, . , , . - 2-3 .
, - , , , . . , , , . , , , . , , , . 2-3 - code review. , , .
, Python, , . Python – , garbage collector. , , garbage collector. , Python, … , .


: Python - , -? ?


: garbage collector? - scope … , refcount 1, . . , , refcount.


: . , .


: Erlang. Erlang – , . , , 2010 . ejabberd, . , ejabberd . Erlang – . .


: . .


: performance - , , - , ?


: Performance – 80-90% , ( ). , , , , .


, «» . , , . performance , , . performance , , . PTS (Public Test Server), performance. performance , , , . performance , , . , , , .


: .


: , - ? .
. . , , , : ?


: gamedev gamedev, . , .


: .


: , . , backend-as-a-service, . , – , , , , legal compliance , – : « , , API SDK. . ».


, Wargaming, – - , , , . , , , - . 150, . , . .


, , . . - . , , , , , , , . . , . . , , , , , , .


: . , , , , , - , , , , - open source ?


: . , , , .


open source. . : «, open source, . ?». : « , . , . - ». : «, , , . , ». - - , : « », « », « », « , », -. , : «, , . », .


open source policy, . , - open source, . , , open source, .


, , , , , , , , , open source, , Wargaming.


: , -?


: - Python, GitHub Wargaming.


: . Wargaming GitHub, ?


: (. : github.com/wgnet). Erlang -. , , , Wargaming .


: , - - , open source, - ? , - ?


: , . PostgreSQL . . PostgreSQL Professional. ClickHouse SQL Slave (00:54:01). . .


: , DWH?


: . , , - SQL Slave – snapshots , … , : «, ? ». . MySQL, , , ClickHouse. , , . DBA SQL Slave ClickHouse, , «» ClickHouse, . .


: . Youtube. , . . « "", , , . , - , , - , ? ? , ?».


: , , , … . , , , WAL (write ahead log), (apply) . . , , .


: : « , ». , . , . , . « , latency , . ?». , . .


: , , …


: . 3D- .


: . . , , , , , -. , , . . , , «, », , , , . . , . «» . ? «» – , . . . . , , , . .


: . – .


.
YouTube:



: 24- - MySQL@Scale c Avito, Badoo, ECOMMPAY ProxySQL . - " IT-", - feedmeto, ( ) .


UPDATE: , "": https://habr.com/ru/post/497772/



All Articles