gRPC для мобильных приложений и не только Переход на Go
Хочу рассказать две истории о gRPC в продакшне.
Первая - наши приключения вокруг gRPC и мобильных приложений. Как-то мы решили переделать протокол взаимодействия водительского приложения с сервером, чтобы можно было сделать full duplex-коммуникацию между ними. В итоге выбор пал на Go+gRPC по нескольким причинам:
- мы давно уже использовали Go;
- gRPC оказался достаточно крутым для наших задач.
В докладе хочу поговорить об опыте перехода с Twisted на gRPC, а также о:
- сравнении с MQTT/UDP/Websockets для нашего кейса;
- трейсинге, мониторинге, отладке gRPC-приложения;
- приключениях gRPC в условиях мобильной сети и как с этим жить;
- проблемах в продакшне с gRPC в условиях мобильной сети;
- балансировке gRPC на сервере. Что было тогда, что есть сейчас. Какую эволюцию мы прошли.
Также стоит отметить использование gRPC для общения между микросервисами. А когда у нас есть микросервисы, то иногда нам нужно сделать гарантированную доставку между сервисами. Об этом будет вторая часть доклада.