Суббота, 6 апреля


Итак, прошла очередная рабочая неделя, а это значит, что пришло время рассказать обо всех нововведениях за последние пять дней. Как я и анонсировал в предыдущей записи, сегодня была введена система определения страны по IP-адресу даже в том случае, если сеть, к которой относится проверяемый IP-адрес, отсутствует в базе данных GeoIP. По сути дела, особо полезной эта функция будет лишь для тех сайтов, на которых включен геофильтр, так как в остальных случаях, по сути, никакой острой необходимости в поголовной проверке IP-адресов на географическую совместимость нет. Ранее проверка происходила только по встроенной базе GeoIP, которая обновляется достаточно редко и в данный момент не включает в себя IP-адресов из новых сетей на 2.*, 5.*, 192.* и 198.*, поэтому адреса из таких сетей определялись как НЛО и, соответственно, геофильтр к ним не применялся, так как подобные сети можно блокировать только все сразу, а это уже несколько не то, что надо, так как желая заблокировать таким образом, к примеру, Северную Корею, на самом деле мы заблокируем и новые адреса из Российской Федерации, и из Казахстана, и из Украины (в которой, как правило, все новые IP-адреса на 5.* ― это сети домашнего Интернета от «Киевстар»). Теперь для адресов, не прошедших проверку встроенным механизмом GeoIP, будет производиться проверка по нашей новой технологии с использованием данных whois. Сначала мы просто собирались добавить такую проверку вторым слоем, однако несколько позже, при тестировании, пришли к выводу, что в таком режиме двойная проверка приведет к существенному снижению производительности (на пустом сервере страницы стали грузиться по 0,9сек вместо 0,05 ранее, на сервере со средней загрузкой по 1-1,5сек, а на сильно загруженных серверах задержка достигала пяти секунд). После некоторых тестов мы решили получать из данных whois не только географические данные, а и данные о первом и последнем IP-адресах сети, отсутствующей в базе данных GeoIP. Таким образом мы, собственно, создали самопекущуюся базу данных GeoIP, так как все отсутствующие сети будут добавляться в конец таблицы сразу же после того, как будет зарегистрировано первое посещение с IP-адреса из данной сети. Это же поможет и существенно снизить нагрузку на сервер, так как при подключении к SQL в нашем случае она на 70-75% ниже, чем при подключении к серверу whois, так как запрос внешних данных будет уходить только при самом первом посещении. После того, как данные будут получены, WebEngine автоматически приведет их в необходимый для базы GeoIP вид и запишет в таблицу. Все последующие обращения буду обслуживаться уже локальным сервером. Таким образом мы избавились практически ото всех посетителей из «неизвестного местоположения», которые отображались в разнообразных отчетах статистики. Почему практически ото всех? Потому что о некоторых сетях в базе данных whois нет конкретных данных, а те, что указаны, слишком глобальны для того, чтобы использовать их (к примеру, «Asia/Pacific» вместо страны, либо «European Union», который в отличие от Советского Союза единым государством не является).

Аналогичные меры мы хотели применить и для адресов протокола IPv6, который с недавних пор получил полную поддержку в ядре WebEngine, благодаря чему пользователи, имеющие доступ к IPv6-Интернету, теперь могут свободно просматривать сайты, работающие на CMS на базе ядра WebEngine (при условии, конечно же, что сам сайт имеет AAAA-запись и IPv6-адрес). С этим, к сожалению, ничего не получилось. Мы уже даже нашли подрядчика, который сконструировал для нас тестовую базу GeoIP для IPv6, но столкнулись с другой проблемой. Дело в том, что IPv6-адреса невозможно сконвертировать в числовое значение при помощи функции ip2long. Есть, конечно же, аналогичная функция ip2long6, но она требует установки дополнительных компонентов к ПО сервера, что будет доступно далеко не всем администраторам сайтов, работающим с shared-хостингом. Других способов хранения адресов мы пока не придумали (нет, просто хранить, конечно, можно и в обычном текстовом формате, но тогда на определение сети будет уходить больше вычислительных ресурсов сервера, а для нас это примерно то же самое, что и получение данных по каждому запросу из whois. Последнее, кстати, не шутка. Мы действительно собрались сначала поступить с IPv6-адресами так же, как и с IPv4, но упустили из виду момент, что для IPv4 к серверу whois делается только один запрос, а ответ кешируется, для IPv6 же вышло так, что запрос отправлялся заново при каждом обращении, что существенно снизило скорость работы сайта (до вышеупомянутых пяти секунд на формирование страницы при пиковой загрузке сервера). Была еще идея собирать данные для каждого IPv6-адреса по отдельности, благодаря чему к внешнему серверу запрос делался бы лишь однократно для каждого адреса, но это, как Вы понимаете, не самый оптимальный вариант, так как за несколько месяцев использования таким образом наберется база на пару десятков мегабайт информации об адресах, с которых, вполне вероятно, к нам больше никогда никто не зайдет, а если учитывать, что IPv6-адресов во много раз больше, чем адресов предыдущей версии протокола, то это и вообще выглядит как полнейшая глупость.

Второе обновление касается уже не программного обеспечения, а линейки продуктов «Ибице», к которым кроме всего прочего добавилась услуга «кадровой безопасности». По названию, честно говоря, не совсем понятно, что предоставляется в рамках данной услуги, но это только пока на сайте не появилась страничка с подробным описанием. Попробую кратко описать. Я думаю, никто не удивится, если я скажу, что иногда на объявления о вакансиях не всегда откликаются честные соискатели, но любой руководитель при этом желает, чтобы на его предприятии работали только честные сотрудники. К сожалению, далеко не всегда кадровая служба предприятия делает что-либо для проверки соискателей. Даже напротив, мне, к примеру, известен один такой кадровый отдел, в котором заведующая специально отвергает все заявки от более-менее приличных соискателей, а на конкурс директору предоставляет лишь дубовые кадры с восемью классами средней школы. Но там директор почему-то, не знаю почему, доверяет барышне. А теперь представьте, что Вы ― директор, который разочаровался в своей кадровой службе, но все еще хочет набрать себе на работу достойных людей. Теперь Вы сможете дать поручение на подбор персонала для своего предприятия кадровой службе «Ибице», которая самостоятельно найдет для Вас оптимальное количество соискателей, кандидатуры которых будут подвергнуты такой же проверке, которой они были бы подвергнуты в случае, если бы данные соискатели устраивались на работу в «Ибице». Мы сами проведем все собеседования и подготовим Вам подробный отчет о том, кто из кандидатов наиболее подходит для работы на Вашем предприятии, а кто скрыл некоторые сведения при подаче заявки, либо напротив, значительно преувеличил свои заслуги. Мы выясним, происходили ли какие-либо неприятные случаи на предыдущих местах работы а также соберем отзывы ото всех предыдущих руководителей. Ну и стоит ли говорить о том, что будет проведена проверка знаний по указанной специальности, а также верификация документов об образовании? Более подробная информация об услуге появится несколько позже.


06.04.2013, 21:31
  IWE, WebEngine, GeoIP, IPv4, IPv6, проекты.
Просмотров: 5976.
5