вторник, 16 сентября 2008 г.

AnjLab.Harvester

На сайте AnjLab появилась информация о проекте Harvester, которым мы занимаемся последние несколько месяцев. Информация краткая, поскольку проект коммерческий, разработанная система дает нашему заказчику реальное конкурентное преимущество, и мы не вправе раскрывать деталей разработки. Тем не менее, кое-что рассказать можно. Безусловно, проект стал для нас прорывным и инновационным. Многое было впервые.

Во-первых, это наш первый по настоящему серьезный коммерческий проект на платформе Linux + Ruby on Rails. До этого были разработки «для себя», морально - технологически мы были готовы, и вот, новый подход пошел. Использование Ruby оказалось вполне оправданным с точки зрения скорости, эффективности и качества разработки. А сейчас, после нескольких месяцев работы системы, можно сказать, что выбранная платформа вполне адекватна с точки зрения производительности и надежности. К слову сказать, что в процессе работы мы перенесли development environment на MacOS X, еще один интересный опыт для нас и отдельная история.

Во-вторых, это первый проект, использующий по-настоящему распределенную инфраструктуру. Система состоит из десятков агентов, которые выполняют сотни задач и все это на множестве машин. И все это хозяйство управляется централизовано. А в процессе разработки такие интересные вещи, как, например, автоматическая реконфигурация системы с целью балансировки. По-иному организована база данных. С MySQL мы уже работали и знали «вкусности» вроде использования различных «движков», но в Harvester текущий размер базы около миллиарда записей, и это требует особых подходов: кластеры, репликация, балансировка нагрузки с использованием MySQL Proxy.

В-третьих, впервые мы столкнулись с технологией computing cloud. Мысль о том, что можно арендовать, к примеру, винт, причем не настоящий, а виртуальный, и платить за количество операций Read\Write поначалу была очень непривычной. И вот, система работает не на конкретном «железном» сервере, а на целом наборе виртуальных серверов, где-то в недрах Amazon Elastic Coumputing Cloud, причем эти сервера создаются и уничтожаются по мере необходимости.

Мы рады, что получаем деньги за этот проект, получаем удовольствие от того, что делаем интересную вещь, которая приносит кому-то реальную пользу. Но не менее важен опыт и знания, которые мы приобрели в этом проекте, и будем использовать в будущем.