每个人都跑了,我跑了。最近,我启动了一系列在线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/