воскресенье, 13 мая 2012 г.

Балансировка HTTP запросов

Сегодня восполнил свой пробел в области балансировки HTTP траффика. Оказывается что кроме round robin DNS, Nginx и HAProxy еще существует такая замечательная вещь как LVS. Для себя решил что нужно будет обязательно попробовать LVS как только переедем на собственные сервера.
Настройка LVS на русском языке - очень полезная статья про установку LVS на хабре
Practical Load Balancing by Peter Membrey, Eelco Plugge, and Dawid House   - книжка про балансировку нагрузки написанная на очень простом языке. Довольно многословная книжка, даже для специалиста среднего уровня - пол книжки можно пропустить. Не понимаю зачем  требовалось объяснять основы TCP/IP и HTTP в книге, посвященной балансировки нагрузки. Мне всегда казалось что люди занимающиеся балансировкой нагрузки - четко представляют себе как работают данные протоколы.  Но если пропустить весь словесный понос - то можно дочитать до подробного описания установки LVS и кое-какую информацию по оптимизации Nginx.

Пока гуглил на тему влияния worker_cpu_affinity на производительность Nginx наткнулся на http://tengine.taobao.org/ - китайский форк Nginx в котором привязка воркеров к процессорам делается автоматически.

суббота, 12 мая 2012 г.

Github Issues 2.0

На этой неделе зашел потыкать палочкой issues  на github и был очень приятно удивлен. Если раньше они годились только для code review и как мелкие заметки самому себе - то сейчас они прямотаки преобразились. Теперь в принципе там есть все необходимое для базового управления задачами. Это конечно ни разу не Jira  но для управления задачами на уровне небольших групп программистов - самое то. Интеграция с репозиториями - гораздо лучше чем в Jira, одно только закрытие задач при коммите чего стоит. Многие возразят что для Jira тоже есть плагины связывающие задачи и коммиты в репозиторий - но эти плагины так написаны, что лучше бы уж и не брались.  На прошлом месте работы мы пытались использовать один из подобных плагинов - примерно с месяц промучались пока не выяснили что этот плагин делает запрос к репозиторию на каждый показ страницы с задачей - поэтому у нас то репозиторий становился "задумчивым", то сервер самой Jira. Исходя из этого github issues 2.0 - самое то для управления задачами внутри команды программистов. Полное описание возможностей github issues 2.0 можно посмотреть здесь

      

пятница, 4 мая 2012 г.

Magento-баг в аутентификации

Сегодня наткнулся на весьма досадную багу в системе аутентификации магенты. Если сессия протухает и клиент сразу же пытается залогинится - логин не работает. То есть клиента перенаправляют на страницу логина, он вводит корректные логина/парол - нажимает отправить -  и его опять перенаправляют на эту же страницу. Молча. Никакого сообщения об ошибке или успешности логина. После продолжительного шаманства выяснились некоторые детали: 
1. Проблема существует только в клиентской части - в админке таже самая последовательность действи не воспроизводит проблему. 
2. При каждой попытке session ID меняется. 
3. При удалении всех кук проблема также пропадает.
Из второго пункта можно сделать вывод что при каждой попытке заводится новая сессия, а старая соответсвенно теряется. После некоторой медитации над заголовками запросов я попробовал отключить флаг - "HTTP only" в настройках сессии - и угадал. После установки этого флага в "No", все заработало.