Недавно в рассылке talk@ спросили, зачем мы используем для тайлов адреса вида a.tile.osm.org, с тремя префиксами. Если бы они вели на разные серверы, это было бы логично, но они ведут на один. На деле это сделано не для снижения нагрузки, а для браузеров: когда-то у них стояло ограничение на количество одновременных соединений с сайтом (что-то около двух). Это ограничение, вероятно, уже снято, но традиция осталась. Richard Z. предположил, что добавление префиксов к адресам тайлов ломает кэширование, на что Грант Слейтер, наш главный администратор, ответил письмом, которое стоит перевести.
Нет. Альтернативное название сервера (a, b, c) выбирается так, чтобы для каждого тайла всё время подставлять один и тот же сервер (см. исходник Leaflet, в OpenLayers так же).
Давно пора рассказать, как работает наш тайловый CDN:
У нас 16 распределённых серверов оконечного кэширования по всему миру (список, карта, требования). За работоспособностью этих серверов почти в реальном времени следит Pingdom. Мы используем GeoDNS для доменов [a|b|c].tile.openstreetmap.org, который перенаправляет запрос на ближайший или предпочтительный для страны пользователя кэширующий сервер.
Как только Pingdom замечает падение одного из серверов, мы перестраиваем GeoDNS, и посетители пойдут на другой сервер, как только обновится их таблица DNS (в течение 5 минут). Кэширующие серверы прикрывают два сервера рендеринга (orm и yevaud), один из которых — главный. За ними мы тоже следим в Pingdom и когда нужно, перестраиваем GeoDNS.
На кэширующих серверах работает алгоритм равнодоступности (маркерная корзина), который не даст какому-то одному клиенту или подсети ухудшить качество сервиса для остальных.
Оба сервера рендеринга постоянно перегружены, особенно когда обновляется картостиль. Быстрым решением было бы добавить ещё один сервер для рендеринга, но более долговременным — перейти на модель, в которой тайлы (картинки png) производят оконечные кэширующие серверы, а базовые серверы готовят векторные тайлы, которые и рассылают кэширующим узлам. Такие технологии развивают несколько организаций, но полноценного работающего решения с открытым кодом пока нет. Некоторые из нас, операционной команды OSM и команды из викимедии, пристально следят за разработками.
Картостиль OpenStreetMap обновляется нерегулярно, примерно раз в месяц, и после каждого обновления два дня серверы рендеринга работают на пределе. В последней версии стиля целиком переделали отображение болот (теперь оно зависит от типа), добавили значки для памятников, судов, скамеек, урн, 11 видов магазинов, и подписи для деревьев, почты, банкоматов. Грядущая версия пока только легчает: с 6-го масштаба пропадут железные дороги.