Desarrollo en Wargaming - reuniĂłn con Maxim Baryshnikov, Jefe de Plataforma (Parte I)

Todos corrieron y yo corrí. Recientemente, lancé una serie de mitaps en línea, donde invito a expertos a discutir proyectos de TI a gran escala para una discusión. Nuestro primer invitado fue Maxim Baryshnikov, Jefe de Plataforma de Wargaming. A continuación se muestra una transcripción de nuestra conversación, o más bien, su primera parte, dedicada a la arquitectura.


De esta parte aprenderá, por ejemplo:


  • cuántas personas trabajan en Wargaming y cuántas lĂ­neas de cĂłdigo en "Tanks"
  • cĂłmo, quĂ© y dĂłnde van los bytes durante la batalla en "Tanks"
  • QuĂ© enfoques de Wargaming para escalabilidad y resistencia
  • quĂ© dolores arquitectĂłnicos están experimentando y quĂ© compromisos entre el juego y las prácticas de ingenierĂ­a van
  • por quĂ© en Python tienes que deshabilitar el recolector de basura y dĂłnde se usa Erlang
  • ÂżQuĂ© son las polĂ­ticas de cĂłdigo abierto de Wargaming y quĂ© abren al pĂşblico?

La conversación resultó ser bastante larga, pero detallada, si está interesado en el tema del desarrollo de grandes proyectos de juegos, por favor, bajo cat.


imagen


Alexey Rybak: ¡Hola a todos!


Maxim Baryshnikov: Hola.


: 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