Entwicklung bei Wargaming - Treffen mit Maxim Baryshnikov, Leiter der Plattform (Teil I)

Alle rannten und ich rannte. Kürzlich habe ich eine Reihe von Online-Mitaps gestartet, in denen ich Experten einlade, große IT-Projekte zu einer Diskussion zu diskutieren. Unser erster Gast war Maxim Baryshnikov, Leiter der Plattform von Wargaming. Nachfolgend finden Sie eine Abschrift unseres Gesprächs bzw. dessen ersten Teil, der der Architektur gewidmet ist.


Aus diesem Teil lernen Sie zum Beispiel:


  • Wie viele Leute arbeiten in Wargaming und wie viele Codezeilen in "Tanks"?
  • wie, was und wohin gehen Bytes während des Kampfes in "Tanks"
  • Welche Wargaming-Ansätze für Skalierbarkeit und Ausfallsicherheit
  • Welche architektonischen Probleme treten auf und welche Kompromisse zwischen Gameplay und technischen Praktiken gehen ein?
  • Warum müssen Sie in Python den Garbage Collector deaktivieren und wo wird Erlang verwendet?
  • Was sind Wargaming Open Source-Richtlinien und was öffnen sie für die Öffentlichkeit?

Das Gespräch war ziemlich lang, aber detailliert, wenn Sie sich für das Thema der Entwicklung großer Spielprojekte interessieren - bitte unter Katze.


Bild


Alexey Rybak: Hallo allerseits!


Maxim Baryshnikov: Hallo.


: 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