Switching to microservices: optimization of network calls / Переход на микросервисы: оптимизация сетевых вызовов

23 октября, 17:20
Смотреть Трансляцию

Key ideas

Microservices are the new black — so everyone is shifting to them. However, many companies, including Avito, end up with both a monolithic PHP application and a variety of microservices. The result is a significant increase in network traffic, which can lead to many different problems that these companies haven’t encountered before.

In this talk, I’ll discuss the cost of a network call, new problems caused by high network traffic, and how you can save on networking by optimizing your infrastructure and a few other things. You’ll learn how the cURL library works in PHP and what role curl_multi_exec plays. I’ll also be talking about Guzzle: how and what for we use it at Avito. We’ll look at how to choose appropriate timeouts and examine problems connected to timeouts (like thread pool starvation and cascading failure). I’ll also share my experience of using a reverse proxy with a PHP application — what it can be used for (for example, keep-alive, saving on dns resolve, retries).


Тезисы

Все переходят на микросервисы. Это новый черный сейчас. Во многих компаниях, в том числе и в Авито остается монолитное PHP приложение и зоопарк микросервисов. Появление интенсивного сетевого обмена приводит к самым разным проблемам, которых раньше не было.

В этом докладе я расскажу про цену сетевого вызова, о новых видах проблем, и как можно сэкономить на сети, сделав ряд инфраструктурных (и не только) оптимизаций. Из доклада слушатели узнают про то как работает curl библиотека в PHP, чем помогает curl_multi_exec. Упомяну обертку guzzle, и расскажу в каком виде и для чего мы используем ее в Авито. Пройдусь по теме выбора правильного таймаута, и расскажу о проблемах которые бывают с ним (выедание пула воркеров, каскадный отказ). Расскажу о практике использования reverse-proxy вместе с PHP-приложением, о том-какие задачи оно на себя берет (кип-алайф, экономия на DNS-резолве, ретраи).

Авито

Павел Лакосников

For the last four years I’ve been developing high-load services at Avito. Due to this experience, now I know a lot about the architecture of large applications and optimization of monolithic PHP applications.


Занимаюсь разработкой высоконагруженных сервисов в Авито последние 4-ре года. За это время получил отличную экспертизу в архитектуре больших приложений и оптимизации php-монолита.

For the last four years I’ve been developing high-load services at Avito. Due to this experience, now I know a lot about the architecture of large applications and optimization of monolithic PHP applications.


Занимаюсь разработкой высоконагруженных сервисов в Авито последние 4-ре года. За это время получил отличную экспертизу в архитектуре больших приложений и оптимизации php-монолита.

Другие спикеры: