ΠΊΠ°ΠΊΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с кэшСм Π² тСстировании

КакоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с кэшСм Π² тСстировании

ΠΊΠ°ΠΊΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с кэшСм Π² тСстировании

Кэш (Cache)

Кэш β€” это Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ для Π΄Π°Π½Π½Ρ‹Ρ… посСщСнного сайта.

Π’ кэшС ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ:

Β· Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ β€” Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΡ‹, ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, Ρ„ΠΎΠ½Ρ‹ ΠΈ Ρ‚. Π΄.;

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ кэш?

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π²Π΅Π±-страниц Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, вмСсто ΠΈΡ… ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ врСмя открытия Π²Π΅Π±-сайтов Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Π’Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ мСньшС Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚Π°Ρ€ΠΈΡ„Π½Ρ‹ΠΌΠΈ ΠΏΠ»Π°Π½Π°ΠΌΠΈ. Π’Π°Ρˆ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²Π΅Π±-страницу нСсколько Ρ€Π°Π·, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· кэша. Но сохранСниС Π΄Π°Π½Π½Ρ‹Ρ… происходит Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΈ для Π²Π΅Π±-страниц.

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ кэш?

Когда Π²Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ Π²Π΅Π±-страницу, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΊΡΡˆΠΈΡ€ΡƒΠ΅Ρ‚ эти Π΄Π°Π½Π½Ρ‹Π΅: Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, тСкст Π½Π° ваш ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. Когда Π²Ρ‹ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° сайт снова, эти Π΄Π°Π½Π½Ρ‹Π΅ ΡƒΠΆΠ΅ находятся Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΈΠ»ΠΈ устройствС. ΠŸΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ Π·Π°Ρ…ΠΎΠ΄Π΅ Π½Π° сайт, Ссли Π²Π΅Π±-страница Π½Π΅ измСнилась, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· кэша, Π° Π½Π΅ Π·Π°Π½ΠΎΠ²ΠΎ скачиваСт ΠΈΠ· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°.

Π’ΠΈΠΏΡ‹ использования кэша

Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ: Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ сСтСвой сСрвСр ΠΈΠ»ΠΈ слуТба, Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ ΠΊΠ°ΠΊ сСрвСр ΠΈΠ»ΠΈ Π²Π΅Π±-сСрвСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сохраняСт Π²Π΅Π±-страницы ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ локально. Кэш-сСрвСр ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ прокси-кэшСм.

Дисковый кэш: содСрТит Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, смСТныС области Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, вСроятно, Π±ΡƒΠ΄ΡƒΡ‚ доступны Π² блиТайшСС врСмя. НСкоторыС диски ΠΊΡΡˆΠΈΡ€ΡƒΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ часто ΠΎΠ½ΠΈ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ. Часто Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Π΅ Π±Π»ΠΎΠΊΠΈ хранСния Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ горячими Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΈ автоматичСски ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² кэш.

Кэш-ΠΏΠ°ΠΌΡΡ‚ΡŒ: кэш-ΠΏΠ°ΠΌΡΡ‚ΡŒ процСссора часто связана нСпосрСдствСнно с процСссором ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… инструкций. Кэш-ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²ΠΊΠΈ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ быстрСС, Ρ‡Π΅ΠΌ кэш-ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π° дискС, Π½ΠΎ кэш-ΠΏΠ°ΠΌΡΡ‚ΡŒ процСссора Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ быстрСС, Ρ‡Π΅ΠΌ кэш-ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²ΠΊΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° находится Ρ‚Π°ΠΊ Π±Π»ΠΈΠ·ΠΊΠΎ ΠΊ процСссору.

Ѐлэш-кэш: Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° микросхСмах Ρ„Π»ΡΡˆ-памяти β€” часто с использованиСм Ρ‚Π²Π΅Ρ€Π΄ΠΎΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»Π΅ΠΉ β€” для выполнСния запросов Π΄Π°Π½Π½Ρ‹Ρ… быстрСС, Ρ‡Π΅ΠΌ это Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ссли Π±Ρ‹ кэш находился Π½Π° Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΌ ТСстком дискС ΠΈΠ»ΠΈ Π΅Π³ΠΎ части.

ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½Ρ‹ΠΉ кэш: учитываСтся фактичСская Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, Π³Π΄Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ Π² случаС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ»ΠΈ сбоя систСмы. РСзСрвная батарСя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² динамичСской ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти с Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΌ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ΠΌ ΠΎΡ‚ Π±Π°Ρ‚Π°Ρ€Π΅ΠΈ Π² качСствС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Алгоритмы кэша

Алгоритм ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ β€” это ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ список инструкций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ элСмСнты слСдуСт ΠΎΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ Π² кэш.

НаимСнСС часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ (Least Frequently Used β€” LFU). Π”Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ основываСтся Π½Π° отслСТивании частоты доступа ΠΊ записи. ΠŸΡ€ΠΈ использовании Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ LFU запись с наимСньшим счСтом удаляСтся ΠΏΠ΅Ρ€Π²ΠΎΠΉ. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ Ρ‚Π°ΠΊ часто, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Π» Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ доступа, Π° Π·Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ»Π³ΠΎ Π½Π΅ использовался.

Π”Π°Π²Π½ΠΎ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ (Least Recently Used β€” LRU): этот Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ элСмСнты Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части кэша. ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ элСмСнту LRU ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ Π² Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ Ρ‡Π°ΡΡ‚ΡŒ кэша. Когда Π»ΠΈΠΌΠΈΡ‚ кСша Π±ΡƒΠ΄Π΅Ρ‚ достигнут, элСмСнты, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π΄Π°Π²Π½ΠΎ Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Π»ΠΈΡΡŒ, Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹, начиная с Π½ΠΈΠΆΠ½Π΅ΠΉ части кэша. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ дорогостоящим Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Β«Π±ΠΈΡ‚Ρ‹ возраста», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, ΠΊΠΎΠ³Π΄Π° ΠΊ элСмСнту ΠΎΠ±Ρ€Π°Ρ‰Π°Π»ΠΈΡΡŒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ LRU удаляСт элСмСнт, «возрастной Π±ΠΈΡ‚Β» измСняСтся для всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов.

ПослСдниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ (Most Recently Used β€” MRU): этот Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ, удаляСт самыС послСдниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ элСмСнты Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ. LRU ориСнтируСтся Π½Π° врСмя: здСсь Ρ‡Π΅ΠΌ ΡΡ‚Π°Ρ€ΡˆΠ΅ элСмСнт, Ρ‚Π΅ΠΌ ΠΎΠ½ мСньшС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈ удаляСтся Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ. MRU β€” Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Ρ‡Π΅ΠΌ ΡΡ‚Π°Ρ€ΡˆΠ΅ элСмСнт, Ρ‚Π΅ΠΌ Ρ‡Π°Ρ‰Π΅ ΠΊ Π½Π΅ΠΌΡƒ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ, ΠΈ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ здСсь ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ послСдниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ элСмСнты, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ мСньшС всСго использовались. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, LRU удаляСт самыС Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ элСмСнты β€” самыС старыС, Π° Π² MRU удаляСт самыС Π½ΠΎΠ²Ρ‹Π΅.

Кэш Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½Ρ‹ (Adaptive Replacement Cache β€” ARC): этот Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ±Π° Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌ способом ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ доступный кэш.

ИспользованиС ΠΏΡ€ΠΈ тСстировании

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с КэшСм

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ кэш позволяСт ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ врСмя ΠΈ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ искаТСнным ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ½ΠΎΡΠΈΡ‚ΡŒ большС Π²Ρ€Π΅Π΄Π°, Ρ‡Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·Ρ‹.

Вирус ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ сСбя Π² кэш Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, зараТая вСсь ваш ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

Π€Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ сильно ΡƒΡΡ‚Π°Ρ€Π΅Ρ‚ΡŒ, Ссли кэш Π½Π΅ очищаСтся автоматичСски, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ просматриваСмыС страницы ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ошибки.

Один ΠΈΠ· частых вопросов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π° Π±Π°Π³ это: β€œΠ Ρ‚Ρ‹ кэш почистил?”. НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΎΡ‡ΠΈΡ‰Π°Ρ‚ΡŒ кэш ΠΏΠ΅Ρ€Π΅Π΄ воспроизвСдСниСм Π±Π°Π³Π°.

Кэш ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Учитывая, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. Кэш всСх Π²ΠΈΠ΄ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡ‡ΠΈΡ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΎ нСобходимости.

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° кэша

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ кэш Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ†ΠΈΡŽ Β«ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽΒ».

Одна ΠΈΠ· самых извСстных ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ – Ccleaner. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму ΠΎΡ‚ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², кэш ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² со всСй историСй просмотров страниц.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π£Ρ…ΠΎΠ΄ΠΈΠΌ Π² кэш Π² высоконагруТСнных систСмах

Одна ΠΈΠ· Π²Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚Π΅ΠΌ β€” ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° с кэшСм. Π—Π²ΡƒΡ‡ΠΈΡ‚ это просто, Π½ΠΎ Π½Π° Π΄Π΅Π»Π΅ Π² Π½Π΅ΠΉ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΊΠ°ΠΌΠ½Π΅ΠΉ ΠΈ особСнностСй. Ну Π° ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, всС становится Π΅Ρ‰Π΅ интСрСснСй. Π’ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅Ρ‚ «сСрСбряной ΠΏΡƒΠ»ΠΈΒ», Π° Π΅ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΈΠΊ. И остаСтся лишь ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΡ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ для вашСй Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ достоинства ΠΈ нивСлируя нСдостатки.

На ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ PHP Russia 2021 ПавСл ΠŸΠ°Ρ€ΡˆΠΈΠΊΠΎΠ², backend engineer Π² Авито, прСдставит Π΄ΠΎΠΊΠ»Π°Π΄ Β«Π£Ρ…ΠΎΠ΄ΠΈΠΌ Π² кэш Π² высоконагруТСнных систСмах». А Π² этом ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ…ΠΎΡ€ΠΎΡˆ Π»ΠΈ PHP для растущих Π² ΠΏΠ»Π°Π½Π΅ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π΅Π³ΠΎ инструмСнты Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ.

ΠΊΠ°ΠΊΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с кэшСм Π² тСстировании

РасскаТи Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ сСбС. Π§Π΅ΠΌ Ρ‚Ρ‹ занимаСшься?

Π― Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠΌ Π² Авито. Π£ΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ 15 Π»Π΅Ρ‚ занимаюсь Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ, Π² основном ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ бэкСнда.

ΠΊΠ°ΠΊΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с кэшСм Π² тСстировании

Когда я Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽ своС Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ врСмя, Ρ‚ΠΎ понимаю, Ρ‡Ρ‚ΠΎ большС ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Для бэкСнд-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π° это ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ своСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π½ΠΎ ΠΈ с рСбятами ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… Π³Ρ€ΡƒΠΏΠΏ, ΠΈΠ· ΠΎΡ‚Π΄Π°Π»Π΅Π½Π½Ρ‹Ρ… частСй ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Для этого Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π°ΠΆΠ½Ρ‹Π΅ вопросы ΠΈ Π½Π΅ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Ρ†Π΅Π½Π½ΠΎΠ΅ врСмя ΠΊΠΎΠ»Π»Π΅Π³. А Π² случаС ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ»Π°Π½ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΡƒΠΌΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ понятно Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои мысли Π² тСкстС. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΡŒ ΠΌΡ‹ ΠΈ программисты, большСй Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΌΡ‹ Π½Π΅ ΠΊΠΎΠ΄ΠΈΠΌ, Π° Π΄ΡƒΠΌΠ°Π΅ΠΌ, ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌ, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ.

Π’Ρ‹ занимался Π½Π°ΡƒΠΊΠΎΠΉ ΠΈ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Π». ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΡƒΡˆΠ΅Π» ΠΈΠ· этих областСй? Π§Ρ‚ΠΎ Π΄Π°Π» Ρ‚Π΅Π±Π΅ этот ΠΎΠΏΡ‹Ρ‚?

Π Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ я Π½Π°Ρ‡Π°Π» Π΅Ρ‰Π΅ Π²ΠΎ врСмя обучСния Π² унивСрситСтС. Π’ Ρ‚ΠΎ врСмя спрос Π½Π° Π³Ρ€Π°ΠΌΠΎΡ‚Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π΄Π°ΠΆΠ΅ студСнтов Π±Π΅Π· ΠΎΠΏΡ‹Ρ‚Π°, Π±Ρ‹Π» просто ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΊ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡŽ унивСрситСта Ρƒ мСня ΡƒΠΆΠ΅ Π±Ρ‹Π» ΠΎΠΏΡ‹Ρ‚ ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ дальшС. Но казалось, Ρ‡Ρ‚ΠΎ Π² Π½Π°ΡƒΠΊΠ΅ я ΠΌΠΎΠ³Ρƒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ большС, Ρ‡Π΅ΠΌ просто Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ для Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ поборолся Π·Π° мСсто Π² аспирантурС ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ» ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅. ОсобСнно ΠΌΠΎΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ сСбя Π² Ρ€ΠΎΠ»ΠΈ прСподаватСля. Π£ мСня Π±Ρ‹Π» ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ Π·Π°ΠΏΠ°Π» энСргии: Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ рСбятам ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ знаСшь, Ρ‡Π΅ΠΌΡƒ ΡƒΠΆΠ΅ научился Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

Π’ΠΎ врСмя написания Π΄ΠΈΠΏΠ»ΠΎΠΌΠ° я заинтСрСсовался ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊ принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π² экономикС. И Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΈΡ… исслСдований ΡΠΌΠ΅ΡΡ‚ΠΈΠ»ΠΎΡΡŒ Π² сторону управлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ согласования интСрСсов субподрядчиков-исполнитСлСй Ρ€Π°Π±ΠΎΡ‚.

Для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ участники Ρ‚Π°ΠΊΠΈΡ… ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ распрСдСлСнныС ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ систСмы. Они Ρ‡Π΅ΠΌ-Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° микросСрвисы, Ρ‚.ΠΊ. состоят ΠΈΠ· нСзависимых ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΎΠ±Ρ‰Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΠΎ стандартизованному ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ. Π’Π°ΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌΠΈ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π°Π³Π΅Π½Ρ‚Π°ΠΌΠΈ, Π° срСда для ΠΈΠ· взаимодСйствия β€” ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½ΠΎΠΉ систСмой.

Они ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ классичСских ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСм Π² Ρ‚ΠΎΠΌ ΠΆΠ΅, Π² Ρ‡Π΅ΠΌ ΠΈ микросСрвисная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° отличаСтся ΠΎΡ‚ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΉ, состоящСй ΠΈΠ· мноТСства подсистСм Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±Ρ‰Π΅ΠΉ систСмы.

Π­Ρ‚ΠΎ интСрСсноС ΠΈ пСрспСктивноС Π½Π°ΡƒΡ‡Π½ΠΎΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅. На Π΅Π³ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ я ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π³Ρ€Π°Π½Ρ‚, исслСдования финансировал Π€ΠΎΠ½Π΄ содСйствия инновациями. Но ΠΏΠΎΡ‚ΠΎΠΌ сил Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ сразу Π΄Π²Π° направлСния стало Π½Π΅ Ρ…Π²Π°Ρ‚Π°Ρ‚ΡŒ. Для развития Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ Π³Π»ΡƒΠ±ΠΆΠ΅ Π»ΠΈΠ±ΠΎ Π² Π½Π°ΡƒΠΊΡƒ, Π»ΠΈΠ±ΠΎ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. И я Π²Ρ‹Π±Ρ€Π°Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.

Π‘Π°ΠΌΠΎΠ΅ интСрСсноС, Ρ‡Ρ‚ΠΎ я устроился Π² Авито ΠΏΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ своСго студСнта. И Π²ΠΎΠΎΠ±Ρ‰Π΅ рСбята, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… я ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Π», ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… российских IΠ’-компаниях (ЯндСкс, Mail.ru ΠΈ Ρ‚.Π΄.), Π½ΠΎ ΠΈ Π² ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹Ρ… тСхнологичСских Π³ΠΈΠ³Π°Π½Ρ‚Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Google ΠΈ Apple. И успСх ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ², Π½Π° самом Π΄Π΅Π»Π΅, Ρ‚ΠΎΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ сильно ΠΌΠΎΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΠΎΠ±ΡƒΡ‡Π°Ρ‚ΡŒ, Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ знаниями, ΠΏΠΎΠΌΠΎΠ³Π°Ρ‚ΡŒ рСбятам Π΄ΠΎΠ±ΠΈΠ²Π°Ρ‚ΡŒΡΡ большСго.

Π₯ΠΎΡ€ΠΎΡˆ Π»ΠΈ PHP для растущих Π² ΠΏΠ»Π°Π½Π΅ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²?

Начну с Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊ Π±Ρ‹ Π½ΠΈ Ρ€ΡƒΠ³Π°Π»ΠΈ PHP, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π² Ρ‚ΠΎΠΏΠ΅ Π ΡƒΠ½Π΅Ρ‚Π° написаны ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Π½Ρ‘ΠΌ. Π’ качСствС языка для бэкСнда высоконагруТСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π» Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‚ΠΎΠΆΠ΅ использовался PHP. И, ΠΏΡ€ΠΈ этом, ΠΎΠ½ΠΈ Π΄Π΅Ρ€ΠΆΠ°Π»ΠΈ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π² тысячи RPS, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»ΠΈΡΡŒ нСбольшой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

На ΠΌΠΎΠ΅ΠΉ Π½Ρ‹Π½Π΅ΡˆΠ½Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ нСсколько языков для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ β€” это PHP ΠΈ Go. На PHP написан вСсь ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ Авито. НСкоторыС сСрвисы Ρ‚Π°ΠΊΠΆΠ΅ написаны Π½Π° PHP, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сСрвисы для API ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (mapi).

PHP Ρ‚ΠΎΡ‡Π½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆ для растущих Π² ΠΏΠ»Π°Π½Π΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Ρ€ΡƒΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². PHP-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ это рСбята самого Ρ€Π°Π·Π½ΠΎΠ³ΠΎ уровня. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Π΅Π±-сайтов написано Π½Π° PHP, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ быстро Π½Π°Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ всСго Π±ΡƒΠ΄Π΅Ρ‚ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° PHP. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ сайтов β€” это совсСм Π½Π΅ highload, Π° ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΌΠ°Π»ΠΎΠ½Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ полустатичСскиС сайты ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρ‹, написанныС Π½Π° распространСнных, Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ самописных CМS’ΠΊΠ°Ρ…. Но Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒ 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. Но ΡƒΠΆΠ΅ сСгодня ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с расписаниСм ΠΈ ΠΏΡ€ΠΈΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΄ΠΎΠΊΠ»Π°Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π΅ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ.

А Π΅Ρ‰Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ участия: ΠΎΠ½Π»Π°ΠΉΠ½ ΠΈΠ»ΠΈ ΠΎΡ„Π»Π°ΠΉΠ½. НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΊΡƒΠΏΠΈΡ‚ΡŒ Π±ΠΈΠ»Π΅Ρ‚Ρ‹ ΡƒΠΆΠ΅ сСгодня!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *