Кадры считают все
База данных должна быть функциональной, легко модифицируемой и обладать отточенным и быстрым поисковым механизмом. Продуктов, отвечающих всем этим требованиям, на рынке хватает: например, Oracle или ДВ2. Однако компания Headhunter.RU решила создать поисковый механизм самостоятельно. Результаты такого решения, как водится, неоднозначны.
Headhunter.RU работает в области подбора персонала с 2000 года. Ее услугами пользуется ряд весьма крупных компаний. К примеру, Citibank, Gillette, PricewaterhouseCoopers, МТС. Ежедневно сайт компании испытывает нагрузку в 35 000 посещений. Объем ежемесячного трафика составляет 900 Гб. Эти показатели вкупе с положительной динамикой посещаемости (за август 2005 года выросла на 30%) подразумевают наличие стабильного и быстрого механизма работы с имеющейся на сайте базой данных.
Как и у всех крупных интернет-ресурсов, такой механизм у Headhunter действительно есть. Любопытно другое: Headhunter не стала лицензировать готовое решение, а разработала свое. По словам генерального директора компании Юрия Вировца, варианты с лицензированием не подходили, поскольку большинство аналогичных ресурсов, использующих сторонние разработки (third party. – Прим. «Ко»), либо имеют меньшую посещаемость, либо пока не столкнулись с проблемой постоянно растущей нагрузки на сервер. Также стоит отметить, что значительная часть существующих на рынке поисковых механизмов предполагает, что сайт состоит из статических, а не динамических страниц. Из-за этого проверка прав доступа к каждому отдельному документу «на лету» значительно усложняется или становится вовсе невозможной.
Не стоит, конечно, забывать и о таком важном факторе, как цена вопроса. По всем подсчетам, создание собственной поисковой машины (in house development) обходилось Headhunter дешевле, чем лицензирование стороннего решения с его последующим «тюнингом».
Проблема выбора
«Выбирая базу данных, мы просчитывали варианты использования как бесплатных СУБД (систем управления базами данных), так и коммерческих, – рассказывает технический директор Headhunter Сергей Никулин. – Среди бесплатных рассматривались MySQL и PostgreSQL, а из коммерческих – Oracle и DB2. Выбор пал на MySQL, поскольку она поддерживает функцию репликации, что позволяет построить более надежную систему. (Если функция репликации работает, то при внесении изменений в одну из связанных между собой частей сайта те же самые изменения автоматически вносятся в каждую из них. – Прим. «Ко».) В случае с Oracle коммерческая СУБД обошлась бы нам в $160 000 (при кластеризации базы сумма возрастала бы, так как по условиям лицензирования оплачивается установка на каждый процессор). При использовании DB2 – в $133 000».
В качестве потенциального поискового движка компания рассматривала Google Search Appliance стоимостью $30 000 и Yandex Server Enterprise стоимостью $12 750. После продолжительного анализа всех имеющихся вариантов специалисты компании остановились на бесплатном поисковом движке Lucene. По словам Сергея Никулина, выбор бесплатного продукта позволил компании значительно сэкономить на лицензии. Затраты же на настройку и «прикручивание» коммерческого поисковика едва ли были бы меньше, чем в случае с Lucene (в Headhunter этой работой занимались два программиста в течение двух месяцев). Под «прикручиванием» подразумевается, что кроме полнотекстового сайту требуется еще и поиск по отдельным параметрам (например, специализации для вакансий и резюме, зарплатным ожиданиям, ограничениям по уровню видимости документов для различных пользователей и т.п.).
Помимо бесплатности Lucene обладает и другими достоинствами. «На фоне mnogosearch и aspsearch преимущества Lucene состоят в большой скорости работы (к примеру, поиск по базе резюме, которая содержит почти полмиллиона документов, осуществляется в среднем за 400 миллисекунд) и удобстве интеграции в систему (существует масса вариаций этого поисковика для разных языков программирования). Дополнительным аргументом в пользу Lucene стал тот факт, что этот поисковый движок уже с успехом используется во многих программных продуктах, в том числе и коммерческих», – говорит Юрий Вировец.
За пригоршню долларов
В качестве основного языка программирования, с помощью которого должен был исполняться проект, руководство Headhunter рассматривало несколько вариантов: asp.net, PHP, Java. «Остановились на Java по двум причинам: эта технология кроссплатформенная, на ней можно легко построить масштабируемые решения (для нас этот момент особенно важен, поскольку нагрузка на сайт быстро растет) и для нее существует огромное количество бесплатных библиотек, позволяющих значительно ускорить процесс разработки и снизить затраты, – комментирует выбор платформы директор по маркетингу Headhunter Ольга Бруковская. – В качестве операционной системы рассматривались Linux, Solaris x86 и MS Windows Server. Стоимость Linux-решения составляла всего $20, решение же на базе Windows Server обошлось бы нам примерно в $1000 за лицензию на каждый сервер, то есть на момент выхода первой версии сайта – в $2000, а на конец сентября 2005 года – уже в $15 000».
К затратной части проекта также следует отнести стоимость оборудования. ИТ-отдел Headhunter приобрел дополнительный сервер на основе четырех процессоров AMD Opteron с 4 Гб оперативной памяти стоимостью $18 000.
Разработка первой версии сайта Headhunter c внедренным в него новым механизмом поиска заняла четыре месяца. Еще две недели ушло на тестирование. В настоящее время систему поддерживают три человека, а вопросами ее дальнейшего развития занимаются четыре сотрудника.
Поскольку система модульная, она достаточно просто модифицируется. Это очень важное конкурентное преимущество, так как защищает сайт от «закостенения». «Недавно, например, мы добавили систему управления контентом и на ее базе создали журнал Headhunter Magazine, – рассказывает Ольга Бруковская. – Смена дизайна также больше не является для нас серьезной проблемой».
Все сервисы Headhunter кластеризованы. Это значит, что наращивать их общую производительность можно посредством простой докупки новых серверов. Единственным узким местом на сегодняшний день является база данных. Ее кластеризация должна быть произведена в ближайшем будущем.
О результатах
По словам Ольги Бруковской, после запуска первой версии сайта на Java его посещаемость выросла на 15%. Вообще же с момента запуска сайта суточная посещаемость повысилась примерно в пять раз. То, что система собственной разработки, базирующаяся на бесплатном ПО, бесперебойно справляется с такой нагрузкой, достаточно необычно.
В принципе разработать сервис, полностью аналогичный Headhunter, вполне возможно, но при этом затраты на его разработку не будут ниже. «Разработка сайта обошлась в $18 000, тестирование – в $2000. На разработку поисковика было потрачено $5000. А в связи с тем, что за год выросли зарплаты программистов, в настоящее время самостоятельная разработка может обойтись на 30% дороже, чем она обошлась нам», – рассуждает Бруковская. – Код нашего сервиса не является свободно распространяемым, и его нельзя легально скопировать. Компания планирует открывать интерфейсы для доступа к некоторым своим сервисам, что в перспективе позволит сторонним разработчикам создавать интегрированные решения».
Найдется все?
«Ко»: Когда человек заходит на поисковый сайт и делает запрос, он подчас не может найти то, что ему нужно. Причем не потому, что этого нет в Интернете – просто первые несколько сотен страниц забиты всевозможным мусором. С чем это связано? Есть ли какое-то техническое решение проблемы в обозримом будущем?
Александр Садовский, руководитель отдела web-поиска компании «Яндекс»: Миллионы пользователей при обращении к крупной поисковой системе используют «командный» язык запросов (который ближе к набору слов, чем к фразе на естественном языке) и ждут в ответ упорядоченного списка документов. Основная задача поисковых систем – научиться давать релевантный ответ в рамках привычного для пользователей шаблона запроса, а не переучивать их, как бы это ни было заманчиво. Специализированные «искалки» имеют возможность подстраивать аудиторию под себя: «Хотите найти хороший ответ? Пишите запросы так, читайте ответы здесь». У больших поисковых систем такой возможности нет.
Кроме того, нужно помнить, что найти документы – это только половина задачи. Ведь прежде нужно понять, что этот конкретный пользователь имел в виду, когда писал свой запрос. Как ему подать результаты?
Анализируя запросы участников «Кубка по поиску Яндекса», мы пришли к выводу, что самые сильные игроки отличались не столько умением задавать запросы, сколько умением «читать», то есть быстро находить в списке найденного искомые ответы. Алгоритмы ранжирования непрерывно улучшаются, как и аннотации найденных документов, полнота ответа, скорость поиска. Это понимают все.
За простенькими интерфейсами поисковых машин скрываются сложные механизмы. Однако при всей своей сложности они, увы, не обладают «человеческим» интеллектом.
Интернет-вандализм
Ко: Какой ущерб в денежном эквиваленте наносят вандализм, спам и программы-«боты» крупным рекрутинговым ресурсам?
Станислав Халипа, ведущий специалист по разработке интернет-портала E-xecutive: Прежде всего, ущерб можно оценить по стоимости трафика и времени ИТ-специалистов. Это так называемый текущий ущерб. В этом случае все происходит в штатном режиме, и мы успешно занимаемся отсевом роботов и прочего. Безусловно, целенаправленный вандализм способен привести к более серьезному ущербу. Если он все-таки был по той или иной причине допущен, то тут уже малой кровью не обойтись и придется рассчитывать стоимость потерянных в результате контрактов, упущенную выгоду и т.д. Естественно, наша деятельность направлена на то, чтобы не допускать подобных форс-мажоров.