SlideShare a Scribd company logo
1 of 78
Go и геоданные
Андрей Минкин MadDevs
Кто я
• Team Lead/Maddevs.io
• Nambataxi.kg
• Nambafood.kg
• 10 лет опыта(Sysadmin, Python/Go)
• https://github.com/meshbird/meshbird
• https://github.com/maddevsio/ariadna
Бишкек
• 100+ служб такси
• ~1M жителей
Namba taxi
• 4 года на рынке
• Не менее 8к заказов в сутки
• 600+ водителей на линии
• 500к+ довольных клиентов
Что такое такси
• Клиенты
• Водители
• Операторы
AVG response time
• Водители 20 ms
• Операторы 2.5 ms
План доклада
• Сбор GPS треков раз в секунду
• Пробки от 2ГИС в Бишкеке
• Прочие инструменты
План доклада
• Сбор GPS треков раз в секунду
• Пробки от 2ГИС в Бишкеке
• Прочие инструменты
Предыстория
С чего мы начинали
Обновление местоположения
• Водитель: раз в 15 секунд
• Клиент: раз в 15 секунд
А что еще происходит
• Какой заказ сейчас выполняет
• Какой заказ будет следующим
• Есть ли открытые тревоги
Первые пробы
• Делаем запрос – сохраняем координаты
• Делаем запрос – анимируем машину
Первые проблемы
• Машинку колбасит
• Машинка едет по полям, лесам
Решение
• OSRM
Пробуем еще
• Таймаут – 15 секунд
• Делаем запрос – сохраняем координаты
• Шлем координаты
• Делаем запрос в OSRM – выдаем маршрут в OSRM
• Получаем маршрут – анимируем маркер
Проблемы
• Одностороннее движение
Решение
• Проверка на 20 метров
Релизнулись
Недочеты
• Расчет стоимости – у водителя
• 1 трек в 15 секунд – мало
• Проблемы с GPS у водителя
Проблемы с GPS
• Плохой девайс изначально
• GPS модуль умирает со временем
• Ямы и «глушилки»
Новые фичи
• Хотим все это на главном экране
Вытекающие задачи
• Собирать больше треков водителей
• Показывать ближайшие анимированные машины на
главном экране
• Хранить промежуточную стоимость на сервере
• Экономить трафик водителю
• Собирать трек раз в секунду
Расходы водителя за смену в Бишкеке
• 550 р бензин
• 200 р еда
• 200 р комиссия
• Средний чек – 100р
Расходы на интернет
• 100 р на водителя за смену
• 100 000 р в день.
Что такое трек и как он выглядит
• Latitude
• Longitude
• Session
• OrderID
• TripCost
Экономим трафик водителю
• Уложить 1 трек в 100 байт
• И чтобы работало быстро
Огласите весь список, пожалуйста
• HTTP
• WebSockets
• TCP
• UDP
Минусы http
• Много хедеров
• 18 байт оверхеда (GET / HTTP/1.0<CR><LF>
<CR><LF>)
• Работает поверх TCP
Минусы websocket
• Работают поверх http
• Нужно сделать upgrade
• На установление соединения 2 запроса
• Нестабилен на плохом соединении
Минусы TCP
Минусы TCP
• Долго
• latency
• Дорого
• 20 байт на пакет
Почему UDP
• Шлем только датаграммы
• Гарантии не нужны
• Минимализм
Чем сериализировать?
• JSON 
• MsgPack 
• Protocol Buffers 
Размер данных
137
127
42
JSON
MsgPack
Protobuff
Итого
• 42 байт пейлоада
• + 20 байт IP хедеров
• = 62 байт на трек
• = 2 мегабайта за смену
• = 6 рублей в деньгах
Хранение
Какие данные хранить?
• Сессия водителя
• Номер борта
• ID заказа
• Сумма поездки
• Последнее местоположение
• N последних точек
Что есть
• Percona
• Redis
• Elasticsearch
Нужен геоиндекс
• KD-tree
• R-tree
Какие требования к геоиндексу
• Поиск N ближайших точек
• Сбалансированное дерево
KD-Tree
Минусы KD-tree
• Несбалансированное дерево
• Поиск только одной ближайшей точки
R-tree
Ок, где взять?
• https://github.com/dhconnelly/rtreego
Что не так с водителями
• Плохая связь с интернетом
• Выключил телефон
• Села батарейка
• Выгрузил приложение из памяти
• И еще полдесятка причин
• Нужен Expire
• Нужен LRU для хранения координат
Как хранить
• В памяти
• R-tree
• Карта с водителями (ключ сессия)
• Карта с водителями (ключ номер борта)
Какой алгоритм на бэкенде?
• Получили пакет по UDP
• Получаем водителя со стораджа
• Если нет – получаем с Redis
• Проверяем, есть ли все нужные данные
• Делаем set в сторадже
Какой алгоритм на бэкенде?
• Если есть – обновляем
• Если нет – инициализируем LRU для координат
• Обновляем инфу в R-tree
Варианты для реализации
• Python
• Ruby
• Node.js
• Go
Go
• Строго типизированный и компилируемый
• Маленький размер docker-контейнеров
• Малый расход ресурсов
• Меньше зоопарк
Как реализовывали
• https://github.com/dhconnelly/rtreego
• LRU – навелосипедили
• UDP – stdlib
• https://github.com/golang/protobuf
• HTTP API
HTTP API
• Ближайшие водители
• Удалить водителя (по номеру борта или сессии)
• Получить информацию о поездке
• Получить маршрут по водителю
Куда интегрировать
• Бэкенд для водителей
• Бэкенд для клиентов
Как оно выглядит
• Ядро – Django
• Водители – Twisted
• Клиенты - Django
А архитектурно
Nginx
AppBackend
Core
Core
AppBackend Core
Водители
Nginx
Twisted
Core
Core
Twisted Core
Водители
Водитель
Location
backend
Core
Twisted
Клиенты
Клиент
Location
backend
Core
App
backend
Как эксплуатировать
• Логи в stdout
• Метрики в Graphite
• Чеки в Sensu
• Полезный /status
• Боты
Полезный /status
• Uptime since
• HTTP Statuses counters
• Total requests
Боты
• Эмуляция движения водителя
• Эмуляция работы клиента
Как стало в мобильных приложениях
• Получаем местоположение клиента
• Получаем ближайших водителей с маршрутом
• Анимируем каждую машинку
• Обновляем раз в 15 секунд
Сравнение результатов
Самый главный слайд
• UDP+Protobuf для экономии трафика
• In-memory
• R-tree для выдачи ближайших водителей
• LRU cache для хранения последних координат
• OSRM для выравнивания треков на дороге
План доклада
• Сбор GPS треков раз в секунду
• Пробки от 2ГИС в Бишкеке
• Прочие инструменты
Интеграция с 2ГИС
• https://github.com/paulmach/go.geo
• Расчет расстояния от точки до точки
• Удобно было хранить точки
План доклада
• Сбор GPS треков раз в секунду
• Пробки от 2ГИС в Бишкеке
• Прочие инструменты
А что есть еще?
• https://github.com/nfleet/via
• https://github.com/hailocab/go-geoindex
• https://github.com/azr/kdtree
• https://github.com/maddevsio/ariadna
Вопросы
• https://github.com/maddevsio
• @gen1us2k (twitter,github,facebook,skype,telegram)

More Related Content

What's hot

101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...Ontico
 
Юрий Насретдинов, Badoo
Юрий Насретдинов, BadooЮрий Насретдинов, Badoo
Юрий Насретдинов, BadooOntico
 
Консольные приложения на Go
Консольные приложения на GoКонсольные приложения на Go
Консольные приложения на GoAndrey Smirnov
 
maps.sputnik.ru #highload2014
maps.sputnik.ru #highload2014maps.sputnik.ru #highload2014
maps.sputnik.ru #highload2014Maxim Dementyev
 
My talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPConMy talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPConAlex Chistyakov
 
Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)Andrey Smirnov
 
Ровная балансировка нагрузки на фронтенд-кластере
Ровная балансировка нагрузки на фронтенд-кластереРовная балансировка нагрузки на фронтенд-кластере
Ровная балансировка нагрузки на фронтенд-кластереBadoo Development
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonAndrey Smirnov
 
Доменно специфичные базы данных и рассылка Aviasales, Борис Каплуновский (Avi...
Доменно специфичные базы данных и рассылка Aviasales, Борис Каплуновский (Avi...Доменно специфичные базы данных и рассылка Aviasales, Борис Каплуновский (Avi...
Доменно специфичные базы данных и рассылка Aviasales, Борис Каплуновский (Avi...Ontico
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеAlexandr Krasheninnikov
 
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...Ontico
 
Архитектура поиска в Booking.com
Архитектура поиска в Booking.comАрхитектура поиска в Booking.com
Архитектура поиска в Booking.comIvan Kruglov
 
My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014Alex Chistyakov
 
Как устроен NoSQL, Андрей Аксенов (Sphinx)
Как устроен NoSQL, Андрей Аксенов (Sphinx)Как устроен NoSQL, Андрей Аксенов (Sphinx)
Как устроен NoSQL, Андрей Аксенов (Sphinx)Ontico
 
Загрузка больших объемов данных для бизнес-аналитики
Загрузка больших объемов данных для бизнес-аналитикиЗагрузка больших объемов данных для бизнес-аналитики
Загрузка больших объемов данных для бизнес-аналитикиBadoo Development
 
Спасение 6 миллионов файлов в условиях полного Хецнера
Спасение 6 миллионов файлов в условиях полного ХецнераСпасение 6 миллионов файлов в условиях полного Хецнера
Спасение 6 миллионов файлов в условиях полного ХецнераDaniel Podolsky
 

What's hot (17)

101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
 
Юрий Насретдинов, Badoo
Юрий Насретдинов, BadooЮрий Насретдинов, Badoo
Юрий Насретдинов, Badoo
 
Консольные приложения на Go
Консольные приложения на GoКонсольные приложения на Go
Консольные приложения на Go
 
Happydev presentation soa
Happydev presentation soaHappydev presentation soa
Happydev presentation soa
 
maps.sputnik.ru #highload2014
maps.sputnik.ru #highload2014maps.sputnik.ru #highload2014
maps.sputnik.ru #highload2014
 
My talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPConMy talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPCon
 
Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)
 
Ровная балансировка нагрузки на фронтенд-кластере
Ровная балансировка нагрузки на фронтенд-кластереРовная балансировка нагрузки на фронтенд-кластере
Ровная балансировка нагрузки на фронтенд-кластере
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в Python
 
Доменно специфичные базы данных и рассылка Aviasales, Борис Каплуновский (Avi...
Доменно специфичные базы данных и рассылка Aviasales, Борис Каплуновский (Avi...Доменно специфичные базы данных и рассылка Aviasales, Борис Каплуновский (Avi...
Доменно специфичные базы данных и рассылка Aviasales, Борис Каплуновский (Avi...
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проекте
 
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
 
Архитектура поиска в Booking.com
Архитектура поиска в Booking.comАрхитектура поиска в Booking.com
Архитектура поиска в Booking.com
 
My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014
 
Как устроен NoSQL, Андрей Аксенов (Sphinx)
Как устроен NoSQL, Андрей Аксенов (Sphinx)Как устроен NoSQL, Андрей Аксенов (Sphinx)
Как устроен NoSQL, Андрей Аксенов (Sphinx)
 
Загрузка больших объемов данных для бизнес-аналитики
Загрузка больших объемов данных для бизнес-аналитикиЗагрузка больших объемов данных для бизнес-аналитики
Загрузка больших объемов данных для бизнес-аналитики
 
Спасение 6 миллионов файлов в условиях полного Хецнера
Спасение 6 миллионов файлов в условиях полного ХецнераСпасение 6 миллионов файлов в условиях полного Хецнера
Спасение 6 миллионов файлов в условиях полного Хецнера
 

Similar to GDGNSK Работа с геоданными в Go

Как собирать gps треки раз в секунду, экономя трафик / How to Collect GPS Tra...
Как собирать gps треки раз в секунду, экономя трафик / How to Collect GPS Tra...Как собирать gps треки раз в секунду, экономя трафик / How to Collect GPS Tra...
Как собирать gps треки раз в секунду, экономя трафик / How to Collect GPS Tra...Mad Devs
 
Собираем GPS-треки от водителей в такси раз в секунду, экономя трафик / Андре...
Собираем GPS-треки от водителей в такси раз в секунду, экономя трафик / Андре...Собираем GPS-треки от водителей в такси раз в секунду, экономя трафик / Андре...
Собираем GPS-треки от водителей в такси раз в секунду, экономя трафик / Андре...Ontico
 
gRPC в продакшне для мобильных приложений
gRPC в продакшне для мобильных приложенийgRPC в продакшне для мобильных приложений
gRPC в продакшне для мобильных приложенийMad Devs
 
Рефакторинг монолита в микросервисы на Go
Рефакторинг монолита в микросервисы на GoРефакторинг монолита в микросервисы на Go
Рефакторинг монолита в микросервисы на GoAndrew Minkin
 
Рефакторинг монолита в микросервисы на Go / Refactoring of Monolithe to Micro...
Рефакторинг монолита в микросервисы на Go / Refactoring of Monolithe to Micro...Рефакторинг монолита в микросервисы на Go / Refactoring of Monolithe to Micro...
Рефакторинг монолита в микросервисы на Go / Refactoring of Monolithe to Micro...Mad Devs
 
Как строить архитектуру для отказоустойчивой службы такси / How to Build a ...
Как строить архитектуру для отказоустойчивой службы такси / How to Build a ...Как строить архитектуру для отказоустойчивой службы такси / How to Build a ...
Как строить архитектуру для отказоустойчивой службы такси / How to Build a ...Mad Devs
 
RTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwordsRTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwordsDaniel Podolsky
 
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)
RTB DSP на языке Go укрощение buzzwords /  Даниил Подольский (Qmobi.Com)RTB DSP на языке Go укрощение buzzwords /  Даниил Подольский (Qmobi.Com)
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)Ontico
 
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Ontico
 
Путь мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в GrammarlyПуть мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в GrammarlyVsevolod Polyakov
 
Алексей Бережной - http-протокол
Алексей Бережной - http-протоколАлексей Бережной - http-протокол
Алексей Бережной - http-протоколYandex
 
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Mad Devs
 
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Колёса Крыша Маркет
 
Тестирование через мониторинг или холакратия на практике / Максим Чистяков (U...
Тестирование через мониторинг или холакратия на практике / Максим Чистяков (U...Тестирование через мониторинг или холакратия на практике / Максим Чистяков (U...
Тестирование через мониторинг или холакратия на практике / Максим Чистяков (U...Ontico
 
Марат Мавлютов - Современный веб как сложная система
Марат Мавлютов - Современный веб как сложная системаМарат Мавлютов - Современный веб как сложная система
Марат Мавлютов - Современный веб как сложная системаYandex
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonAndrey Smirnov
 
Алексей Бережной — «HTTP-протокл»
Алексей Бережной — «HTTP-протокл»Алексей Бережной — «HTTP-протокл»
Алексей Бережной — «HTTP-протокл»Yandex
 
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Andrew Minkin
 
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Mad Devs
 

Similar to GDGNSK Работа с геоданными в Go (20)

Как собирать gps треки раз в секунду, экономя трафик / How to Collect GPS Tra...
Как собирать gps треки раз в секунду, экономя трафик / How to Collect GPS Tra...Как собирать gps треки раз в секунду, экономя трафик / How to Collect GPS Tra...
Как собирать gps треки раз в секунду, экономя трафик / How to Collect GPS Tra...
 
Собираем GPS-треки от водителей в такси раз в секунду, экономя трафик / Андре...
Собираем GPS-треки от водителей в такси раз в секунду, экономя трафик / Андре...Собираем GPS-треки от водителей в такси раз в секунду, экономя трафик / Андре...
Собираем GPS-треки от водителей в такси раз в секунду, экономя трафик / Андре...
 
gRPC в продакшне для мобильных приложений
gRPC в продакшне для мобильных приложенийgRPC в продакшне для мобильных приложений
gRPC в продакшне для мобильных приложений
 
Рефакторинг монолита в микросервисы на Go
Рефакторинг монолита в микросервисы на GoРефакторинг монолита в микросервисы на Go
Рефакторинг монолита в микросервисы на Go
 
Рефакторинг монолита в микросервисы на Go / Refactoring of Monolithe to Micro...
Рефакторинг монолита в микросервисы на Go / Refactoring of Monolithe to Micro...Рефакторинг монолита в микросервисы на Go / Refactoring of Monolithe to Micro...
Рефакторинг монолита в микросервисы на Go / Refactoring of Monolithe to Micro...
 
Как строить архитектуру для отказоустойчивой службы такси / How to Build a ...
Как строить архитектуру для отказоустойчивой службы такси / How to Build a ...Как строить архитектуру для отказоустойчивой службы такси / How to Build a ...
Как строить архитектуру для отказоустойчивой службы такси / How to Build a ...
 
RTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwordsRTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwords
 
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)
RTB DSP на языке Go укрощение buzzwords /  Даниил Подольский (Qmobi.Com)RTB DSP на языке Go укрощение buzzwords /  Даниил Подольский (Qmobi.Com)
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)
 
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
 
Путь мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в GrammarlyПуть мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в Grammarly
 
Алексей Бережной - http-протокол
Алексей Бережной - http-протоколАлексей Бережной - http-протокол
Алексей Бережной - http-протокол
 
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
 
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
 
Тестирование через мониторинг или холакратия на практике / Максим Чистяков (U...
Тестирование через мониторинг или холакратия на практике / Максим Чистяков (U...Тестирование через мониторинг или холакратия на практике / Максим Чистяков (U...
Тестирование через мониторинг или холакратия на практике / Максим Чистяков (U...
 
Марат Мавлютов - Современный веб как сложная система
Марат Мавлютов - Современный веб как сложная системаМарат Мавлютов - Современный веб как сложная система
Марат Мавлютов - Современный веб как сложная система
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в Python
 
Sivko
SivkoSivko
Sivko
 
Алексей Бережной — «HTTP-протокл»
Алексей Бережной — «HTTP-протокл»Алексей Бережной — «HTTP-протокл»
Алексей Бережной — «HTTP-протокл»
 
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
 
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
 

GDGNSK Работа с геоданными в Go

Editor's Notes

  1. Дать контекст про мобильное приложение
  2. Сделать или длиннее или успеть перебежать
  3. Что такое osrm рассказать про map matching и роуты
  4. Найти отзывы если есть по фиче
  5. Добавить рассказы
  6. Ради этой мелкой фичи трогать такие стораджи не целесообразно Сделать переход зачем геоиндекс
  7. Тут остановится и рассказать про LRU
  8. Рассказать про меньший зоопарк. Почему стали переходить. В чем разница между контейренами и про докер пару слов
  9. Сослаться на прошлогодний доклад
  10. Расписать про бота