Salah satu topik abadi adalah pekerjaan yang benar dengan cache. Kedengarannya sederhana, tetapi pada kenyataannya, ia memiliki banyak jebakan dan fitur. Nah, ketika beban datang, semuanya menjadi lebih menarik. Tidak ada "peluru perak" dalam caching, tetapi serangkaian teknik yang telah dicoba dan diuji. Dan yang tersisa hanyalah memilih kombinasi dari mereka untuk tugas Anda, menggunakan kelebihan dan meratakan kekurangannya.
Pada konferensi PHP Russia 2021 , Pavel Parshikov, backend engineer di Avito, akan mempresentasikan laporan βKami akan melakukan cache dalam sistem dengan beban tinggiβ. Dan dalam wawancara ini, kami berbicara tentang apakah PHP bagus untuk mengembangkan proyek dalam hal beban, dan alat mana yang lebih baik untuk digunakan.
Ceritakan ke saya tentang dirimu. Apa yang kamu kerjakan?
Saya bekerja sebagai insinyur di Avito. Selama lebih dari 15 tahun saya telah melakukan pengembangan web, terutama desain backend.
, , . - , , . . . , , , , .
. ? ?
. , , . . , , . . . : , , .
. - .
. - , .. , . , β .
, , .
. , . . , . .
, . , , I- (, Mail.ru ..), , Google Apple. , , , , .
PHP ?
, PHP, . , , PHP. , , RPS, .
. β PHP Go. PHP . PHP, , API (mapi).
PHP . PHP- , . , , - PHP, , PHP. , β highload, - -, , CS'. PHP- , . , , , .
, , PHP . benchmark' . JIT . PHP , . , PHP- , -: , .. .. PHP , . - . .
, , PHP . . . , , , , .. β . , N - . N .
, , , . PHP . , PHP : event loop, promises, coroutines. , ReactPHP, AMPHP, Swoole.
HTTP - . PHP curl_multi_exec(), HTTP . Guzzle, .
PHP . , . highload- , .. . , . , DependencyInjection Symfony.
, API. , , . , , . , PHP7.4 preloading . RoadRunner, .
, PHP - -. , , .. , , , Javascript. PHP , , . PHP , , , time to market .
, ? ? , β ?
, highload- , . β . , , , . , PHP Russia, β . , .
, . , . , , , (loose coupling). «» .
, SOLID, . β (DI). , , , . , . (DIC), .
, loose coupling , , by design. API. , API. - , .
, PHP , β stateless . β «» β , - PHP . , . , . , .
, , , . , , , - , , . , time to market.
, , , . highload, . , MVP-, , . highload- β - : , bottleneck, .
highload, , . , , . , , . . β , , . .
, , , . , , Β« Β», . PHP, , . , zval, Β« Β» . , . , .
, . . . , , . , . , , .
, , . , . - , . observability : , , . «» . , .
, .
SRE, . . - .
PHP Russia?
β , , , . ? PSR' Simple Cache , get, set, delete ..
, , β , . , , . , - - : , , .. , -. , . -, PHP- β .
. . , . , , . β . , , . , , () , , .
, . , , . , . . Highload- , , : , , .. , , , .
- , Redis Memcached. , , . , RPS , Memcache PHP, get/set/delete/increment/add. 99% . . . , , .
. , , . - - . , , . β , PHP-!
highload- . . . , -. , , , .
PHP , . .
, β ?
, β . - .
, response time, , . , β , , . , . , .
: β , β , β . , . , ? : , , . , ?
, , β ( ) ( ). -, : , . . , . HTTP. , , - .
. , . β , , , .
, . , PHP-, . , , . , , . , , !
. , «» . , , .
, , , Β« Β» .
PHP Russia 2021 28 , Radisson Slavyanskaya. , .