weeg.ru RC1 запущен

PerlПриятного время суток, мальчики и девочки. Релиз кандидат 1 укорачивалки длинных URL в маленькие и смешные — weeg.ru — запущен. Как и писал раньше, переписан на  Dancer — Perl’овый web framwork, который я использую последнее время. Надеюсь, что скоро мне сделают дизайн, а я допишу кой-какие мелочи: регистрация, расширенная статистика посещений, и еще несколько мелочей.

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

weeg.ru: Вторая версия

dcr-header-logoПриветствую, уважаемые читатели. Сейчас пол шестого утра, и я сижу переписываю свою укорачивалку на Dancer. Да, я не забыл об этом проекте, но вот, к сожалению, базу коротышей я, по всей видимости, потерял. Но не беда, думаю.

Проект хоть и некоммерческий, но лично мне важный, так что забрасывать его не буду. Встречайте скоро новую версию weeg.ru — еще быстрее, еще гибче и вообще 🙂 Если есть пожелания по функционалу — добро пожаловать в комментарии.

Консоль опять оказалась функциональней

Снова и снова убеждаюсь в том, что GUI — это проще, но увы, менее функционально, чем консоль и управление командами из консоли управления. Как-то в конце прошлого года я восхищался командным интерфейсом XCP, хвалил за возможность все-все сделать из командной строки. Тут пришлось повозиться в консольке ESXi еще разок, чуть основательней.

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

Смотрим vmid виртуальной машины:

vim-cmd vmsvc/getallvms

Выключаем ее:

vim-cmd vmsvc/power.shutdown VMID

Копируем файл настройки и диск на новое место:

cp vserver.vmx /vmfs/volumes/new-data-storage/vserver/
vmkfstools -i vserver.vmdk /vmfs/volumes/new-data-storage/vserver/vserver.vmdk

Регистрируем виртуальную машину, смотрим ее VMID и стартуем ее:

vim-cmd solo/registervm /vmfs/volumes/new-data-storage/vserver/vserver.vmx
vim-cmd vmsvc/getallvms
vim-cmd vmsvc/power.on VMID

Вот и все. Как-то там мы смогли перенести виртуальный сервер на другой Datastore.

ESXi в консоли

Заметка больше для себя, но вдруг кому пригодиться.

Насколько уж VMware ESXi хорошо рулится из графической управлялки, но иногда быстрее и проще сделать что-то из консоли. Сегодня столкнулся с ситуацией, когда через гуй не смог переподключить nfs шары. Вот никаким совершенно образом. Сами шары были доступны. Решение простое:

Цепляемся по ssh к хосту (если вы sshd сделали доступным);

Смотрим какие шары есть:

~ # esxcfg-nas --list

удаляем проблемную:

~ # esxcfg-nas --delete

цепляем ее заново:

~ # esxcfg-nas --add --host --share

Собственно и все. Заходим в гуй, рефрешим список Стораджей, и если какие-то виртуальные машинки были на шарах, то они сразу обновятся в дереве пулов слева.

Сайты по-быстрому

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

  • Движки
  • Языки программирования
  • Дизайн
  • Контент

Движки

В свое время попробовал целую кучу разных движков. Остановился на WordPress, на котором можно реализоваться все что мне надо было. От Joomla меня выворачивает (да простят меня жумлисты), Drupal еще толком не освоил, ибо сложный он (вернее сложнее чем тотже вордпресс). Еще понравился TextPattern своим аскетизмом. Даже вел бложек на нем. Но вот смена дизайна на нем — вещь совершенно не тривиальная, что отталкивает. А так — быстрый двиг, приятный. Иногда что-то тестовое пробую делать на TextPattern’е. Еще один двиг, оставивший у меня приятные воспоминания — MovableType. Движок не только для блога, но и для сайтов, писанный на Perl, поддерживающий мультисайтовость, приятный, быстрый, своеобразный. Но так же столкнулся с проблемами смена дизайна. Вел одно время на нем бложек — все было суперски. Ковырялся еще в LiveStreet— тоже спицифичный движок, заточенный на ведении социальной сети хабрахабного типа. Требуются люди пишущие и активно комментирующие. Недавно создатели LiveStreet объявляли конкурс на создание нового дизайна по-умолчанию.

Языки программирования

На своем пути ковырялся в движках написанных всего на двух языках программирования — Perl и PHP. Писанное на Python или ASP с Rubyпочему-то даже не трогал. Наверное потому, что я в них не разбираюсь совсем. Я и в PHP толком не разбираюсь, но отредактировать неработающий скриптец в силах.

Дизайн

Так как я не очень уж веб-дизайнер, то использую чужие шаблоны, которые либо оствляю неизменными (что редко), либо доделывая под свои нужды (что чаще). Редактировать чужое чаще проще, чем создавать с нуля свое (хотя это справедливо не для всех, поэтому говорю про себя). Касательно меня — это справедливо только вэб-дизайна, потому что «не владею».

Контент

Контент — штука сложная с одной стороны, а с другой приятная. Мне нравится писать. Нравится писать в сто раз больше, когда я владею темой 🙂 Поэтому практически на всех своих вэб-ресурсах я пишу контент самостоятельно. Либо глубокий реврайт — это касается новостей, например. Но иногда приходится заказывать материал на стороне. Такое случается у всех, я думаю. Неправильно тратить свое время на вникание в непрофильные темы, если, конечно же, у Вас нет цели вникнуть в саму тему, расширив свой кругозор. Цена на контент самая разная, как и качество. Причем за большую цену можно нарваться на совершенно некачественные материалы — тут надо держать ухо востро.

Тесты производительности: nginx, cherokee, lighttpd

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

Сегодняшний стенд — мой домашний роутер:

CPU: Intel(R) Pentium(R) 4 CPU 2.66GHz (2666.78-MHz 686-class CPU)
real memory = 1073741824 (1024 MB)
D-Link DGE-530T Gigabit Ethernet
FreeBSD hasp.vzletka.net 8.1-STABLE FreeBSD i386

Проверяю достаточно стандартным средством:
mult@multop:~$ ab -c 190 -n 50000 192.168.1.254:80/error404.jpg

Понеслось:
Server Software: lighttpd/1.4.29
Server Hostname: 192.168.1.254
Server Port: 80
Document Path: /error404.jpg
Document Length: 22830 bytes
Concurrency Level: 190
Time taken for tests: 118,479 seconds
Requests per second: 423,896 [#/sec] (mean)
Transfer rate: 9548,873 [Kbytes/sec] received

далее,

Server Software: Cherokee/1.2.2
Server Hostname: 192.168.1.254
Server Port: 81
Document Path: /error404.jpg
Document Length: 22830 bytes
Concurrency Level: 190
Time taken for tests: 120,629 seconds
Requests per second: 415,11 [#/sec] (mean)
Transfer rate: 9336,393 [Kbytes/sec] received

и наконец третий участник:

Server Software: nginx/1.0.8
Server Hostname: 192.168.1.254
Server Port: 82
Document Path: /error404.jpg
Document Length: 22830 bytes
Concurrency Level: 190
Time taken for tests: 121,489 seconds
Requests per second: 412,483 [#/sec] (mean)
Transfer rate: 9282,033 [Kbytes/sec] received

Небольшое замечание: самую большую нагрузку на процессор создал Cherokee. Все три веб-сервера запущены на одной машине. Тесты запускал несколько раз по очереди. Больших различий в результатах небыло.

Надо было бы еще Apache попробовать, но вряд ли бы результаты у него были хорошими, да и прожорливый он очень. К тому же, он не позиционируется как реверс-прокси или кеширующий веб-сервер — поэтому в моем тестировании web-серверов он не учавствовал. Еще не измерял скорость php-скриптов, потому что это было бы скоростью исполнения самого php.

Все три веб-сервера поддерживают кеширование и проксирование с распределением нагрузки между backend’ами. Все три имеют вменяемые конфиги. Может nGinx и показал бы самые высокие результаты, но его надо уметь готовить. А из коробки все вот так как есть. Будут еще интересные результаты — обязательно поделюсь.

ESXi или Xen Cloud?

Пока еще не решил. Последние пару месяцев занимаюсь копанием в Xen Cloud Platform. Копание-ковыряние происходит буквально на подручных материалах, что в случае с VMware ESXi было бы просто нереально — все мы знаем о привередливости этой платформы. А вот Зен вполне показал мне что можно делать живую миграцию виртуальных машинок с ноды на ноду с простоем в 10-15 секунд. Большой простой при миграции, спросите вы? Ответ простой — подручные средства — это были Intel Pentium 4 3.0-3.2 GHz с гигом или двумя озу. В качестве общего хранилища, без которого живая миграция просто невозможна, чаще всего выступал мой ноутбук с Ubuntu на борту. Ну и 100Mbit сеть как-то не очень располагает к быстрому обмену данными между нодами и мастерами.

Поэтому вопрос о предоставлении во временное пользования стенда все еще открыт 🙂 пару-тройку не сильно старых железок приму, повторюсь, о временное пользование с удовольствием. Что в замен — обсуждаемо.

Наблюдаем, следим, мониторим

Обязательные действия для каждого человека. У каждого ведь свои объекты для наблюдений — одни следят за курсом валют и погодой, другие приглядывают за положением дел в Ираке и ценами на нефть. Вебмастера следят за доступностью сайтом, сисадмины — за доступностью сервисов. Родители приглядывают за детишками, а если дети школьного возраста — то за их успеваемостью.

Лично я слежу за следующими классами объектов:

  • Серверы с критичными для меня и моих работ сервисами;

Мониторинг, после долгих поисков, проб и ошибок пал на систему мониторинга Munin. Я о ней уже писал раньше. Нравится тем, что устанавливается быстро и просто, работает очевидно. Коллектор настраивается, бд для хранения данных не требует (для некоторых этот пунктик спорный). Рисует графики, есть не просит и вообще работает как часы, что радует и доставляет безмерно.

  • Доступность своих сайтов;

Сайты мониторятся, в основном, Яндекс.Метрикой и Host-Tracker’ом. В первом бесплатно много счетчиков, плюс различная статистика по посещаемости и переходим по сайту. Во втором — замеряется сетевой аптайм, что тоже иногда требуется. Хост-Трекер умеет писать смски о недоступности ресурсов, но дело это платное, хоть и недорогое.

  • Новости по некоторым ключевым словам;

За необходимыми новостями я слежу через Google.News подписавшись на выдачу по RSS. Удобно читать, удобно смотреть старые записи, удобно искать по ним. Хочу написать свою мониторилку, но, чую, работы там непочатый край даже подготовительной. Некоторые смотрят новости через Яндекс.Новости, но им я стараюсь пользоваться не так часто — только по необходимости.

Интересно, а за чем вы следите и что мониторите?

Бесплатные сервисы

Насколько они бесплатны? Это продолжение поста о том, что ничего бесплатного в интернете нет. Хочу поговорить о бесплатных сервисах, вроде почты или поиска. Все нижеизложенное — предмет моих домыслов и умозаключений. Ни на какую истину в последней инстанции оно не претендует. Такой вот небольшой дисклаймер, который, надеюсь, не отпугнул тебя, уважаемый читатель.

Исторически сложилось, что крупные интернет-порталы как наши, так и буржуйские, развивались горизонтально. В те времена это было логичным шагом — развиваться вширь, привлекая и удерживая клиентов дополнительными сервисами вроде почты, гороскопов или еще какой лабудой. Опять же — все бесплатное для посетителей и пользователей — таковым только кажется, потому что каждый переход сопровождается показом какого-либо вида рекламного сообщения (будь то баннер, контекстная или иная реклама).

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

Конкретно бесплатный почтовый сервис привязывает пользователя к порталу, повышает частоту использования дополнительных сервисов на портале, таких как почта, интернет-мессенджер или каталог товаров. Кроме того, некоторые портальные гиганты (например Яндекс или Гугл) предоставляют платные услуги на базе бесплатных, в комплексе и более расширенной редакции.

В общем и целом, подводя итоги, бесплатные сервисы лишь замануха и рекламная площадка, которая окупается даже в таком «бесплатном» варианте.

Ничего бесплатного

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

Идем дальше. Кликнули по тому что нам показали — будь то рекламное объявление или результат труда упорного SEO`шника — перешли на какой-то ресурс. Большая часть сайтов-порталов-блогов в интернете сделаны для привлечения прибыли. Явная монетизация или неявная. Работа на личный авторитет автора ресурса или вынуждение посетителя перейти по партнерской ссылкой — все служит для личного обогащения.

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

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

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

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