Главное Свежее Вакансии Образование
Выбор редакции:
162 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Великие кормчие ТрафикСтора

Приветствую уважаемый $Username. Меня зовут Алексей и я являюсь основоположником такой конторы как TrafficStore, которая специализируется на ботах и автоматизации различных задач в интернете. Сколько существует программистов, сколько существует и способов реализации подходов в автоматизации каких-либо действий в интернете. Мы тоже не остались в стороне и написали своё решение, которое уже пятый год показывает свою годность. Эта короткая вводная статья будет о великих битвах по программированию, системному администрированию и победе человеческого разума. Кому интересно - добро пожаловать под кат.

Как-то поступила вроде бы простая задача с возможность подработать - нужно было крутить счётчики посещаемости (счётчик был убог до нельзя и простое F5 инкрементировало его значение). Накрутка должна была вестись с различной интенсивностью, плюс возможность быстро изменять нужные параметры (глубина переходов, время на сайте и так далее). Пару дней ушло на обмозговывание того, как лучше сделать. Одно из условий написания программы было влияние на счётчик яндекс.метрики, а так же, чтобы люди, которые просматривают данные не сразу догадались, что это боты.

Поскольку каждый компьютер обладает своими специфическими данными:

  • разрешение экрана
  • операционная система
  • браузер
  • куки
  • движения мышкой, скроллинг
  • наличие флэша

то нужно как-то независимо на всех ботах менять эти параметры, что позволило бы спокойно масштабировать решение.


Реализовать все данные вещи можно достаточно просто, если применить виртуализацию и тогда каждая из машин будет независима, что позволит нам играться как угодно с различными параметрами.

Поскольку я лучше всего разбираюсь в ОС Linux, то был взят дистрибутив Debian и виртуализация с помощью kvm (в то время он только развивался(5-6 лет назад), но был уже лучше всех других решений, типа виртуалбокса, vmware или xen). Скрипты генерации задач для Фаерфокса были расшарены с хостноды через sshfs, что позволяло быстро вносить изменения сразу на все виртуалки.

Но на обычном писюке не получится поднять больше четырех виртуальных машин, которые активно запускают FF из-за нагрузки на оперативную память и диск.

Пришло время координальной оптимизации ботов. Чтобы избавиться от лишних библиотек, файлов и прочей чепухи, а также уменьшить размер виртуального диска, с которым работает ОС нашего бота. За основу был взят дистибутив Gentoo, который полность перекомпилировался с отключением всем не нужных флагов и зависимотей, а так же перекомпиляцией ядра, что дало более оптимизированную ОС для ботов, а значит возможность запустить на одном писюке больше наших работяг.

Но как известно, самым медленным в по времени доступа в компе является жёсткий диск, а значит нам надо избавиться от него, что даст нам ещё более легковесное решение. Тут мы включаем все наши знание по линухам, динамическим библиотекам, компиляции, оптимизации и на выходе получаем полноценный дистрибутив, который имеет на своём борту всё, начиная от ядра и заканчивая полноценный браузер+flash+средства разработки скриптов по программированию ботов. Размер всего этого чуда составляет 110 Мб, работает в оперативной памяти и потребляет минимум ресурсов.

В итоге оптимизированная версия позволяет нам на одном сервере с 32Гб оперативки запускать до 60-ти инстансов. Все боты является полностью независимыми друг от друга.

Вот так из маленькой подработки получась фирма, которая теперь является одним из лидеров в своей нише рынка.

Данный подход позволил решать почти любую задачу нашего клиента при работе с любым сайтом, даже если там надо авторизовываться.

В следующих статьях мы затронем такие вопросы, как управление всеми нашими ботами, а их порядка 15-ти тысяч, способы постановки задачи, биллинг, обновление скриптов и самих ботов, мониторинг, планирование задач и многое другое.

ps Чего скрывать там, данный цикл статей ставит задачу привлечения внимания к нашему решению, что позволит меньшими потерями не используя убогие консольные решения или что-то селениума писать скрипты для наших ботов и исполнять их, получая при этом полезную информацию или автоматизируя что-то.

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.