Development at Wargaming - meeting with Maxim Baryshnikov, Head of Platform (Part I)

Everyone ran, and I ran. Recently, I launched a series of online mitaps, where I invite experts to discuss large-scale IT projects to a discussion. Our first guest was Maxim Baryshnikov, Head of Platform from Wargaming. Below is a transcript of our conversation, or rather, its first part, devoted to architecture.


From this part you will learn, for example:


  • how many people work in Wargaming and how many lines of code in "Tanks"
  • how, what and where bytes go during the battle in "Tanks"
  • What Wargaming approaches for scalability and resiliency
  • what architectural pains are experiencing and what compromises between gameplay and engineering practices go
  • why in Python you have to disable garbage collector, and where is Erlang used
  • What are Wargaming open source policies, and what do they open to public

The conversation turned out to be quite long, but detailed, if you are interested in the topic of developing large game projects - please, under cat.


image


Alexey Rybak: Hello everyone!


Maxim Baryshnikov: Hello.


: 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