вторник, Декабрь 27, 2011

iOS-практика программирования

На прошлой и позапрошлой неделях в бизнес-инкубаторе IT-парка прошли занятия, посвещенные разработке для iOS-устройств. Рассчитано было на начинающих разработчиков, то есть тех, чей опыт в данной сфере равнялся нулю. В общем, мне было интересно и получил много полезных начальных знаний. В принципе, даже пройдя исключительно это обучение уже можно начать разрабатывать что-то под iPhone или iPad. Тем не менее, ребята, ведущие мастер-классы, рекомендовали обязательно посмотреть в iTunes U стенфордские лекции, курс CS193P. Это необходимо для понимания тонкостей разработки. Лекций по этому курсу много, очень интересные, всем рекомендую.

Первый день: http://bi.itpark-kazan.ru/5763
Второй день: http://bi.itpark-kazan.ru/5949
Третий день: http://bi.itpark-kazan.ru/5952

вторник, Сентябрь 27, 2011

Highload 2011

Давняя мечта скоро сбудется — я наконец-то попаду на Highload. В эти выходные выезжаю в Москву, где 3 и 4 октября будет проходить вышеназванная конференция.

Вообще говоря, мне не рекомендовали туда ехать. Говорят, там для разработчика нет ничего особо интересного, так как подобные конфы проходят скорее для рекрутинга. Тем не менее, на DevConf мне понравилось, даже не смотря на то, как агрессивно там работали Badoo в области поиска новых кадров. Точно могу сказать, это только заставляло делать их более качественные доклады.

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

вторник, Июнь 07, 2011

Построение архитектуры, заточенной под высокие нагрузки

Если говорить коротко о том, что я услышал на DevConf, то:

1. Возможность горизонтального масштабирования нужно закладывать изначально. Это, разумеется, в первую очередь относится к базе данных. Как сказал Рыбак (если не путаю, не дословно): "Отмасштабировал базу, считай, что отмасштабировал все приложение." Для этого используем шарды.

2. Использовать следует nginx (или другой "легкого" веб-сервера) и PHP-FPM.

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

4. В базе данных используем движок InnoDB. Связано с тем, что MyISAM блокирует полностью таблицу, а в InnoDB блокировка строк, что позволяет не создавать длинных "очередей" на чтение/запись. Ну, и транзакций нет, понятное дело, в MyISAM. Рыбак, как я понял, рекомендовал (по собственному опыту) XtraDB (да и вообще Percona Server).

5. Используем очереди. Это позволяет многие затратные операции не делать немедленно, а разнести во времени. (Да и в пространстве тоже, собственно.)

6. Много, очень много внимания следует уделять мониторингу и логам. Логировать нужно все, мониторить тоже :) Для мониторинга рекомендовалась Pinba.

upd. Рыбак также рекомендовал несколько блогов, из которых я запомнил два:
http://highscalability.com и http://jcole.us/blog/

воскресенье, Июнь 05, 2011

DevConf 2011

Давно мечтал попасть на DevConf (PhpConf), и вот это случилось :) Второй день в самом разгаре, сижу на мастер-классе Алексея Рыбака "[HighLoad] Основы построения масштабируемых высоконагруженных веб-проектов". В целом, довольно интересно, хотя и ничего нового тут пока не услышал, так как по долгу службы приходится работать практически с такой же архитектурой.

понедельник, Декабрь 06, 2010

Писать в блог

Все-таки я не понимаю, когда успевают писать в свои блоги люди, занятые делом?! Времени ведь просто не остается на это.