- PVSM.RU - https://www.pvsm.ru -
Одним из самых захватывающих опытов в истории EastBanc Technologies стала совместная с Microsoft и Bing работа над проектом Polling Place Locator [1] — облачным Azure-приложением, которое 6 ноября 2012 года [2] помогло 6 миллионам американцев найти свои избирательные участки. В этот день произошло два исторических события — 1) президентом Соединенных Штатов Америки во второй раз стал Барак Обама; 2) наше приложение выдержало колоссальную нагрузку в 1,5 млн уникальных визитов и 6 млн API-запросов за один день, в течение которого Polling Place Locator показывался на каждой странице американского сегмента Facebook, на mashable.com и на сайтах нескольких кандидатов в президенты.
Газета Los Angeles Times назвала Polling Place Locator «возможно, самым полезным инструментом поиска избирательных участков» [3], а телеканал CNN рассказал о приложении в прайм-тайм [4].
Историю о том, как EastBanc Technologies внес свою лепту в развитие американской демократии, читайте далее! Под хабракатом мы рассказываем о технической реализации приложения, применении Windows Azure в высоконагруженных приложениях и о том, как приложение работало, и как мы сделали так, чтоб отпустило пожалуйста что ничего не упало даже в пиковые нагрузки.
В США отсутствует институт прописки, миграционные потоки внутри страны мониторятся через водительские права, социальные карты (ID) и платежные системы. Гражданин США может проголосовать в одном из определенных мест рядом с его домом, при этом он обязан предъявить документ, удостоверяющий личность (а какой конкретно — ID или водительские права — индивидуально для каждого штата) и какое-либо доказательство его проживания на этом участке, например, оплаченный счет за коммунальные услуги.
Всё это может создавать определенную путаницу (у нас-то все проще – мы можем голосовать лишь в одном месте, которое определяет нам наша прописка, и только по предъявлению паспорта). В Штатах же у вас было бы несколько таких мест, причем располагаться избирательные пункты могут в супермаркетах, школах или даже просто на улицах.
Чтобы американские избиратели не плутали и всегда приносили с собой нужные документы, по инициативе некоммерческой приправительственной организации Pew [5] в 2010 году компанией EastBanc Technologies при поддержке MSN и Bing был создан [6] сервис Voting Information Project [7] (VIP), призванный сделать информацию о любых государственных и муниципальных выборах (будь то выборы президента, сенатора или шерифа) более доступной. С помощью VIP граждане имеют возможность: забив в строку поиска свой адрес, получить маршрут ко всем определенным для этого адреса избирательным пунктам и узнать время их работы; прочесть информацию о кандидатах; узнать, какие документы нужно взять с собой; получить контакты административных работников, курирующих участки; работать с приложением на одном из 50 предложенных языков, в том числе на таких экзотических как гаитянский, креольский, тагальский, хинди и язык одной из китайских народностей — хмонг.
Путь до ближайшего избирательного пункта
Какие документы с каким содержанием предъявить
Подтверждение адреса с помощью счета за газ
VIP оказался эффективным инструментом, который помог миллионам людей выполнить гражданский долг с минимумом хлопот и путаницы. Об этом можно судить уже по статистике 2010 года, когда более 300 веб-сайтов разместили виджет VIP, который собрал 20 миллионов просмотров и около 7 млн случаев поискового запроса.
В «мирные» годы VIP работал под вполне себе обычной нагрузкой. Самый интересный момент настал, когда на выборы глобально собралась вся страна Америка…
При разработке приложения были использованы следующие ингредиенты:
От заказчика (Pew) мы получали данные в виде exml, которые закачивались в нашу базу.
Специально для эффективной загрузки фидов на ASP.NET было написано приложение MVC, в котором по расписанию раз в час перегружались URL-ы.
Сначала, в тестовом режиме, чтобы разнести нагрузку по базам, мы разбили их на 4 региона — Middle East, West, South, Northeastern States. При переключении на боевой режим 6-го ноября 2012 года количество баз было увеличено до 127. Работали они так: одна база определяла, из какого штата пришел запрос, и переключала на ту, что отвечает за этот штат.
Для примера: юзер обозначает, что живет в городе Нью-Йорк. Через сервер OData отправляется запрос к главной базе, которая определяет, что за штат у этого города и выдает данные нью-йоркской базы, — мол, документы принеси такие-то, голосовать идти можешь по таким-то адресам.
В таком напряженном режиме приложение проработало до 7 ноября 01:00 ночи по Вашингтону. Потом мы всё и отключили, вернувшись к нормальной жизни и, наконец, выпив заслуженный стакан валерьянки кофе.
6 ноября 2012 года 6 миллионов избирателей из 50 штатов США почти одновременно воспользовались приложением Polling Place Locator — 99% трафика пришло с Facebook, 1% — с mashable.com и сайтов кандидатов. С каждого штата было загружено до 20 Гб данных.
Приложение выполняло поиск по различным форматам данных. Для работы с адресами поддерживались:
При этом — сервер у нас ни разу не упал, а время на поиск составляло буквально доли секунды! И вообще, обошлось без особых эксцессов: конечно, в саппорт приходили жалобы, но их быстро разруливала вашингтонская сторона [9], в целом всё прошло почти без седины в волосах всех участников проекта.
Почему Azure оказался идеальным для наших целей?
Во-первых, нам не пришлось покупать большие мощности в виде серверов, лицензионного ПО, а потом еще и устанавливать всё это. Мы просто заплатили за количество пользователей, а также за пользование ядрами и базами данных в течение 1 дня, и как только потребность в мощностях отпала, мы вернулись в обычный режим. При этом мы получили сразу широкий канал, и не пришлось ничего хостить.
Что мы хотели бы подчеркнуть особо: на жизненном пути, в разговорах с соискателями, в пресс-релизах различных ИТ-компаний часто встречались люди, которые говорили: «Мы сделали ASP-шный сайт и задеплоили в Azure. Поэтому, зовите теперь это Azur’ом! Хоть туда и заходит три человека в день».
При всем уважении — это заблуждение.
Реально «ажурным» решение становится только тогда, когда количество запросов к нему вырастает до такого, что физически ни один сервер не может этого выдержать, начинает работать сама инфраструктура Azure и начинается масштабирование. Вы не найдете точного определения нагрузки, при котором система становится высоконагруженной. Мы же для себя эмпирическим путем выяснили, что это происходит в момент, когда на систему пиково обрушивается количество запросов больше, чем может выдержать один (даже самый хороший и дорогой) сервер.
Но самое главное, что мы получили в результате этого проекта:
Автор: eastbanctech
Источник [13]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/asp-net-mvc/30425
Ссылки в тексте:
[1] Polling Place Locator: https://votinginfoproject.org/projects/view/microsoft_polling_place_locator_tool
[2] 6 ноября 2012 года: http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%B7%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D1%81%D0%BA%D0%B8%D0%B5_%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D1%8B_%D0%B2_%D0%A1%D0%A8%D0%90_(2012)
[3] назвала Polling Place Locator «возможно, самым полезным инструментом поиска избирательных участков»: http://www.latimes.com/business/technology/la-fi-tn-election-2012-facebook-google-twitter-20121106,0,6649692.story
[4] рассказал о приложении в прайм-тайм: http://ireport.cnn.com/docs/DOC-869216
[5] Pew: http://www.pewstates.org/about
[6] был создан: http://www.pewstates.org/research/reports/voting-information-project-85899378735
[7] Voting Information Project: https://votinginfoproject.org/
[8] APIPhany: http://apiphany.com/
[9] вашингтонская сторона: http://eastbanctech.com/
[10] здесь: http://sib.fm/news/2012/11/13/progolosovali-na-vyborakh-prezidenta-ssha-s-pomoshhju
[11] здесь: http://news.ngs.ru/more/817288
[12] здесь: http://news.otstv.ru/news/21840
[13] Источник: http://habrahabr.ru/post/174291/
Нажмите здесь для печати.