Desenvolvimento na Wargaming - encontro com Maxim Baryshnikov, chefe de plataforma (parte I)

Todo mundo correu, e eu corri. Recentemente, lancei uma série de mitaps online, onde convido especialistas para discutir projetos de TI em larga escala para uma discussão. Nosso primeiro convidado foi Maxim Baryshnikov, chefe de plataforma da Wargaming. Abaixo está uma transcrição da nossa conversa, ou melhor, sua primeira parte, dedicada à arquitetura.


Nesta parte, você aprenderá, por exemplo:


  • Quantas pessoas trabalham no Wargaming e quantas linhas de código em "Tanks"
  • como, o que e para onde os bytes vão durante a batalha em "Tanques"
  • O que a Wargaming aborda para escalabilidade e resiliência
  • que dores arquitetônicas estão enfrentando e quais compromissos entre a jogabilidade e as práticas de engenharia
  • por que no Python você precisa desativar o coletor de lixo e onde Erlang é usado
  • O que são políticas de código aberto da Wargaming e o que elas abrem ao público

A conversa acabou sendo bastante longa, mas detalhada, se você estiver interessado no tópico de desenvolvimento de grandes projetos de jogos - por favor, sob cat.


imagem


Alexey Rybak: Olá pessoal!


Maxim Baryshnikov: Olá.


: 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