МногиС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ IT-энтузиасты часто Π·Π°Π΄Π°ΡŽΡ‚ΡΡ вопросом, какая ΠΈΠΌΠ΅Π½Π½ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° скрываСтся Π·Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· самых посСщаСмых рСсурсов Π ΡƒΠ½Π΅Ρ‚Π°. Когда ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ запросов Π² сСкунду, Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ слоТнСйшСй экосистСмС, которая Ρ€Π°Π·Π²ΠΈΠ²Π°Π»Π°ΡΡŒ Π±ΠΎΠ»Π΅Π΅ дСсяти Π»Π΅Ρ‚. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ создавался ΠΊΠ°ΠΊ классичСскоС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»Π° ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΊ ΠΊΠΎΠ΄Ρƒ.

БСгодня Avito β€” это Π½Π΅ просто сайт Π½Π° ΠΎΠ΄Π½ΠΎΠΌ языкС программирования, Π° распрСдСлСнная систСма, Π³Π΄Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ части ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ написаны Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… тСхнологиях. Основной бэкСнд Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя базировался Π½Π° PHP, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ стандартом индустрии Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ запуска ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² 2007 Π³ΠΎΠ΄Ρƒ. Однако рост Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ заставил ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ этот Π²Ρ‹Π±ΠΎΡ€ ΠΈ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для критичСски Π²Π°ΠΆΠ½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ².

Если вас интСрСсуСт Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ распрСдСлСниС ΠΊΠΎΠ΄Π° ΠΏΠΎ языкам, Ρ‚ΠΎ стоит ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ: Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π° "Π½Π° Ρ‡Π΅ΠΌ написан Авито" Π½Π΅ сущСствуСт, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΊΠΎΠ½Π³Π»ΠΎΠΌΠ΅Ρ€Π°Ρ‚ сотСн микросСрвисов. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΡŽ стСка, ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ Ρ‚ΠΎ, ΠΊΠ°ΠΊ устроСна внутрСнняя кухня Π³ΠΈΠ³Π°Π½Ρ‚Π° классифайдов.

Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹: Ρ€ΠΎΠ»ΡŒ PHP Π² истории Авито

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ слоТилось Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ основным языком Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ бэкСнда Авито стал PHP. Π­Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ΄ΠΈΠΊΡ‚ΠΎΠ²Π°Π½ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ³ΠΎ количСства спСциалистов Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ Ρ‚Ρ€ΡƒΠ΄Π° Π² сСрСдинС 2000-Ρ… Π³ΠΎΠ΄ΠΎΠ². ΠœΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Π°Ρ структура позволяла быстро Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΠΈΡ‡ΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ объявлСний, поиск ΠΈ модСрация ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°.

Однако ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ роста Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ количСства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ PHP Π² чистом Π²ΠΈΠ΄Π΅ пСрСстала ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ трСбованиям систСмы. ОсобСнно это касалось высоконагруТСнных участков, Π³Π΄Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»Π°ΡΡŒ минимальная Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΡ‚Π²Π΅Ρ‚Π° сСрвСра. Π˜Π½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ постоянно ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ прилоТСния Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ копию Авито Π½Π° стандартном хостингС с Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ PHP ΠΎΠ±Ρ€Π΅Ρ‡Π΅Π½Π° Π½Π° ΠΏΡ€ΠΎΠ²Π°Π» ΠΈΠ·-Π·Π° отсутствия спСцифичСских ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ, Π²Π½Π΅Π΄Ρ€Π΅Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.

НСсмотря Π½Π° ΠΊΡ€ΠΈΡ‚ΠΈΠΊΡƒ языка Π² ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ сообщСствС, ΠΈΠΌΠ΅Π½Π½ΠΎ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ PHP ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π±ΡƒΡ€Π½ΠΎΠ³ΠΎ роста. Π”Π°ΠΆΠ΅ сСйчас Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ, особСнно Π² административных панСлях ΠΈ ΠΌΠ΅Π½Π΅Π΅ Π½Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… сСрвисах, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° этом языкС, хотя ΠΈ Π² ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° Go: оптимизация высоконагруТСнных сСрвисов

Понимая ограничСния ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°, ΠΊΠΎΠΌΠ°Π½Π΄Π° Авито Π½Π°Ρ‡Π°Π»Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ критичСских сСрвисов Π½Π° язык Go (Golang). Π­Ρ‚ΠΎΡ‚ Π²Ρ‹Π±ΠΎΡ€ Π±Ρ‹Π» сдСлан Π½Π΅ случайно: Go отличаСтся высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, эффСктивной Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ с ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ΠΌ рСсурсов ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ языками.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌΠΈ ΠΏΠΎΠ΄ Π½ΠΎΠΆ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠΏΠ°Π»ΠΈ сСрвисы поиска, Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний. ИмСнно эти ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π² ΠΏΠΈΠΊΠΎΠ²Ρ‹Π΅ часы. ИспользованиС Go ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° сСрвСра ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

πŸ“Š Какой язык программирования Π²Ρ‹ считаСтС Π»ΡƒΡ‡ΡˆΠΈΠΌ для HighLoad?
PHP
Go (Golang)
Python
Java
C++

ΠŸΡ€ΠΎΡ†Π΅ΡΡ пСрСписывания ΠΊΠΎΠ΄Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π³ΠΎΠ΄Ρ‹ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ высокой ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π’Π°ΠΆΠ½ΠΎ Π½Π΅ просто пСрСвСсти ΠΊΠΎΠ΄, Π½ΠΎ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½Π΅ допустив рСгрСссий. ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ вСрсии сСрвисов нСзависимо Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°, минимизируя риски для всСй систСмы.

πŸ’‘

ΠŸΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Авито ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΡ… использованиС gRPC для мСТсСрвисного взаимодСйствия β€” это стандарт Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ для соврСмСнных микросСрвисов Π½Π° Go.

АрхитСктура микросСрвисов ΠΈ распрСдСлСнныС систСмы

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Авито β€” это яркий ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΡ‚ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π° ΠΊ микросСрвисам. ВмСсто ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ³ΠΎ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ слоТно ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ, систСма Ρ€Π°Π·Π±ΠΈΡ‚Π° Π½Π° сотни нСзависимых сСрвисов. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° свою ΡƒΠ·ΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ: Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„ΠΎΡ‚ΠΎ, расчСт стоимости доставки, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° объявлСний Π½Π° ΠΌΠΎΡˆΠ΅Π½Π½ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΈΠ»ΠΈ гСолокация.

Вакая структура позволяСт ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ систСму Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ. Если сСрвис поиска испытываСт Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ большС сСрвСров ΠΈΠΌΠ΅Π½Π½ΠΎ для Π½Π΅Π³ΠΎ, Π½Π΅ трогая Π΄Ρ€ΡƒΠ³ΠΈΠ΅ части систСмы. Π­Ρ‚ΠΎ обСспСчиваСт ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ: ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ модуля Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ остановкС всСго сайта.

Для управлСния Ρ‚Π°ΠΊΠΎΠΉ слоТной инфраструктурой ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ оркСстрации. Kubernetes ΠΈ Docker стали Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ дСплоя. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ прилоТСния со всСми зависимостями ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΡ… Π² любом ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ микросСрвисы слоТнСС ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°?

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ слоТной инфраструктуры для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, логирования ΠΈ трассировки запросов. Если Π² ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π΅ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ наносСкунды, Ρ‚ΠΎ Π² микросСрвисах это сСтСвой запрос, Ρ‡Ρ‚ΠΎ добавляСт Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ настройки Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠ² ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ.

Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ систСмы хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… β€” это сСрдцС любого классифайда. Авито ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π‘Π£Π‘Π” Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…. Для Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ хранСния структурированной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΡΡ… ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΡ… основным Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ остаСтся MySQL (часто Π² Π²ΠΈΠ΄Π΅ кластСров Vitess ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΊΠΎΠ² для ΡˆΠ°Ρ€Π΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ).

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с поисковыми запросами ΠΈ слоТной Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄Π²ΠΈΠΆΠΎΠΊ Elasticsearch. ИмСнно ΠΎΠ½ позволяСт Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ Π·Π° Π΄ΠΎΠ»ΠΈ сСкунды срСди ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² записСй, учитывая Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΡŽ, Ρ†Π΅Π½Ρƒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ часто Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· Redis ΠΈΠ»ΠΈ Memcached

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎΠ΅ распрСдСлСниС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² стСкС ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ:

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Основная тСхнология НазначСниС
ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈ объявлСния MySQL / Vitess Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠ½ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ
Поиск ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ Elasticsearch ΠŸΠΎΠ»Π½ΠΎΡ‚Π΅ΠΊΡΡ‚ΠΎΠ²Ρ‹ΠΉ поиск, Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°
БСссии ΠΈ кэш Redis Быстрый доступ, Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅
Π›ΠΎΠ³ΠΈ ΠΈ события Kafka / ClickHouse Аналитика, Π°ΡƒΠ΄ΠΈΡ‚, Big Data

Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ для Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° Π±Π°Π·Π΅ ClickHouse ΠΈ Hadoop. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚Ρ‹ Π»ΠΎΠ³ΠΎΠ² повСдСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ Ρ‚Π°Ρ€Π³Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹.

Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈ DevOps ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ

Π—Π° ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сайта ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€ΠΊ сСрвСров, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Ρ… Π² Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π°Ρ…. Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Авито ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΈ управляСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ. Автоматизация процСссов deployment (CI/CD) позволяСт Π²Ρ‹ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ обновлСния ΠΊΠΎΠ΄Π° dozens Ρ€Π°Π· Π² дСнь Π±Π΅Π· остановки сСрвиса.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Ρƒ. БистСмы Π²Ρ€ΠΎΠ΄Π΅ Prometheus ΠΈ Grafana ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ со всСх ΡƒΠ·Π»ΠΎΠ² Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Если ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π½ΠΎΡ€ΠΌΡ‹, автоматичСски ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π°Π»Π΅Ρ€Ρ‚Ρ‹, ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ инфраструктуры Авито достигаСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π° счСт ΠΌΠΎΡ‰Π½ΠΎΠ³ΠΎ ΠΆΠ΅Π»Π΅Π·Π°, Π½ΠΎ ΠΈ благодаря Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠΌΡƒ балансировщику Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ распрСдСляСт Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСрами.

Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ являСтся ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ слоТныС систСмы ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ DDoS-Π°Ρ‚Π°ΠΊ ΠΈ рСгулярныС Π°ΡƒΠ΄ΠΈΡ‚Ρ‹ бСзопасности. Код ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ строгиС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠ΅ΠΌ Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ срСду.

β˜‘οΈ ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Авито

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния ΠΈ клиСнтская Ρ‡Π°ΡΡ‚ΡŒ

Говоря ΠΎ тСхнологиях Авито, нСльзя Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ. ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния для iOS ΠΈ Android написаны Π½Π° Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… языках: Swift (ΠΈΠ»ΠΈ Objective-C) ΠΈ Kotlin (ΠΈΠ»ΠΈ Java). Π­Ρ‚ΠΎ обСспСчиваСт ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ доступ ΠΊΠΎ всСм функциям устройства, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ ΠΊΠ°ΠΌΠ΅Ρ€Π° ΠΈ гСолокация.

Для Π²Π΅Π±-вСрсии ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ соврСмСнный JavaScript ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Π²Ρ€ΠΎΠ΄Π΅ React. Frontend-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Авито β€” это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ большая ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, Π³Π΄Π΅ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°, SEO-Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±ΠΈΡ (SSR) ΠΈ адаптивности интСрфСйсов.

ВзаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ сСрвСром происходит Ρ‡Π΅Ρ€Π΅Π· API. ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ общСния строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, Ρ‡Ρ‚ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ошибки ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Для ускорСния Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ собствСнная систСма CDN (Content Delivery Network).

πŸ’‘

УспСх Авито базируСтся Π½Π° Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½ΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅: ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΉ PHP для бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ Ρ‚Π°ΠΌ, Π³Π΄Π΅ это допустимо, ΠΈ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Go для критичСских ΡƒΠ·Π»ΠΎΠ², ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Π΅ ΠΌΠΎΡ‰Π½ΠΎΠΉ инфраструктурой.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

ΠŸΡ€Π°Π²Π΄Π° Π»ΠΈ, Ρ‡Ρ‚ΠΎ Авито ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ пСрСписали Π½Π° Go?

НСт, это Π½Π΅ совсСм Ρ‚Π°ΠΊ. Π₯отя Go Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для высоконагруТСнных микросСрвисов, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ legacy-ΠΊΠΎΠ΄Π° ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π΄ΠΎ сих ΠΏΠΎΡ€ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° PHP. Полная миграция β€” процСсс Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Π½Π΅ всСгда экономичСски ΠΎΠΏΡ€Π°Π²Π΄Π°Π½Π½Ρ‹ΠΉ.

Какая Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для поиска объявлСний?

Для полнотСкстового поиска ΠΈ слоТной Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ прСимущСствСнно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Elasticsearch. Он позволяСт быстро ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ объявлСния ΠΈ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ поиска с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ мноТСства ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

МоТно Π»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ Авито Π½Π° WordPress?

ВСхничСски Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сайт объявлСний Π½Π° WordPress ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², Π½ΠΎ ΠΎΠ½ Π½Π΅ Π²Ρ‹Π΄Π΅Ρ€ΠΆΠΈΡ‚ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π΄Π°ΠΆΠ΅ Π² 1% ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Авито. АрхитСктура WordPress Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Ρ‚Π°ΠΊΠΈΡ… объСмов Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΈ кастомной Π»ΠΎΠ³ΠΈΠΊΠΈ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π»ΠΈ ΠΎΠ½ΠΈ Python?

Python Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ примСняСтся Π² Авито, Π½ΠΎ Π² основном для Π·Π°Π΄Π°Ρ‡ Data Science, машинного обучСния, Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ написания скриптов Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π° Π½Π΅ для основного бэкСнда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ прилоТСния.