Search
Write a publication
Pull to refresh
5
0
iniweb @iniweb

User

Send message

Comet–приложение для Mochiweb c нагрузкой в 1 000 000 пользователей. Часть 3/3

Reading time21 min
Views4.8K
Часть 1 и Часть 2 в этом цикле статей показали, как создать приложение, используя mochiweb, и как передавать сообщения подключенным пользователям. Мы уменьшили постребление памяти до 8 Кб для каждого подключения. Мы повторили c10k тест. Мы сделали графики. Это была забава, но теперь пора повторить все для 1 миллиона соединений.

Это статья покрывает следующее:
• Использование базы данных Mnesia;
• Генерация правдоподобного набора данных вида «friends» для миллиона пользователей;
• Настройка Mnesia и ввод наших данных;
• Открытие миллиона соединений с одной машины;
• Сравнительный тест с 1 миллионом пользователей;
• Libevent + Си для обработки соединений;
• Финальные выводы.
Читать дальше →

Масштабирование нагрузки web-приложений

Reading time6 min
Views61K
С ростом популярности web-приложения его поддержка неизбежно начинает требовать всё больших и больших ресурсов. Первое время с нагрузкой можно (и, несомненно, нужно) бороться путём оптимизации алгоритмов и/или архитектуры самого приложения. Однако, что делать, если всё, что можно было оптимизировать, уже оптимизировано, а приложение всё равно не справляется с нагрузкой?
Читать дальше →

Простой нагрузочный тест с Apache JMeter

Reading time7 min
Views289K
По моим наблюдениям, разработчики довольно редко делают нагрузочное тестирование сайтов и веб-приложений. И бывает так, что выставят проект в Интернет, а тут вдруг посетители начнут ходить (хабраэффект, к примеру, случился), и сайт в самый подходящий момент ложится или начинает не по-детски тормозить.

Почему бы не избежать этих неприятностей, прогнав нагрузочный тест?

Наверное, кого-то останавливает неверное представление о том, что нагрузочное тестирование — это очень сложное дело, требующее специальных знаний. Однако не боги горшки обжигают. Если выбор — тестировать не слишком профессионально, или не тестировать вовсе, я бы выбрал первое. Тем более, что организовать примитивный тест производительности очень даже просто. Можно воспользоваться онлайн-средствами (см., например, Нагрузочное тестирование по-быстренькому), а можно замутить все своими руками, это ненамного сложнее.

Под катом рассказываю, как с нуля организовать незамысловатый нагрузочный тест сайта при помощи Apache JMeter.
Читать дальше →

Медиамагия: Приходишь домой, берёшь пульт и выбираешь, чтобы посмотреть с трекера

Reading time2 min
Views23K
Позвольте мне начать своё повествование с рассказа про свободное время, семью и тягу к прекрасному. Свободного времени, которое я могу провести с женой, обычно очень мало. То я занят, то жена. То мы оба. Но иногда высвобождается час-другой, который можно провести вместе. А что можно сделать вместе? Ну, кроме того что вы подумали, можно ещё посмотреть вместе фильм. Сходить в кино, например, выбрав один из пяти унылых фильмов в кинотеатре. Или достать с полки DVD и в 5й раз посмотреть «Новинки 2006 года, 8 в 1». Но кому нужны новинки 2006 года в качестве для мобильного телефона или платить деньги за билеты в кино, если всё что нужно для удовольствия можно сделать у себя дома практически бесплатно? Если есть трекер на котором постоянно выкладываются сотни интересных фильмов? Если есть хороший телевизор и диван, на котором смотреть фильмы намного приятнее? Нет, иногда, конечно, приятно сходить в кино, или пересмотреть новинки 2006, но в большинстве случаев мы хотим (1) дома, (2) бесплатно посмотреть (3) новый фильм (4) в хорошем качестве (5) не дожидаясь пока он скачается.
Читать дальше →

Этот безумный, безумный, безумный appStore

Reading time4 min
Views5.2K
В прошлом году Дед Мороз подарил мне подержанный алюминиевый iPhone и новенький MiniMac. Не сразу, ох не сразу я распробовал эти девайсы и окунулся в яблочный мир. Сначала iPhone вытеснил Нокии, Моторолы и Самсунги. Ах ты, Господи, совсем забыл. Все мобильные девайсы у меня валяются на рабочем месте и не были куплены за кровно заработанные деньги.

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

Читать дальше →

Об учёте процессорного времени в облаке

Reading time6 min
Views19K
После запуска я получил много вопросов о том, как именно учитываются ресурсы в облаке. Некоторые интуитивно понимают, что такое «час процессорного времени» но есть и те, кто хочет подробного объяснения. Поскольку в общем анонсе подробные объяснения заняли бы много места, я вынес его в отдельный топик. Заодно, такой формат позволит более подробно описать, как Зен и виртуальные машины взаимодействуют. Уровень этого текста научно-популярный, то есть я не буду вдаваться в дебри кольцевых буферов, маскировки событий, «кредитного планировщика» и т.д., вместо этого я попробую рассказать относительно человеческим языком о том, как гипервизор управляет гостевыми машинами.


Что такое «процессорное время»? Сначала мы его хотели назвать более привычным «машинное время», благо, такой термин использовался во времена мейнфреймов, когда идея разделения машинного времени только-только зародилась, но вовремя остановились. Машинное время тех лет подразумевало все ресурсы, которые использовались машиной, а в нашем случае речь идёт именно о процессоре, так как каждый ограниченный ресурс учитывается раздельно.

Итак, что такое «процессорное время» и как может оказаться, что у одной виртуальной машины его насчитывается 4 часа в сутки, а у другой накручивает 30 «часов» за часов десять?

Облако Селектел работает под управлением Xen, точнее, Xen Cloud Platform, в котором гипервизором выступает Xen.

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

Как выглядит работа виртуальной машины?
Читать дальше →

Пять лучших способов завалить IT-стартап. Вредные советы

Reading time6 min
Views6.5K
«Хватит работать на дядю! Пора собрать команду правильных людей и заработать миллион!»

За время своей профессиональной деятельности я неоднократно слышал эту фразу. Почти каждый раз принимал участие в проекте, а иногда и сам произносил эти знаковые слова.

Миллиона я, конечно, не заработал, но опыта накопил изрядно — по крайней мере мои нынешние проекты обеспечивают какой-никакой доход.

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

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

«Хит-парад» составлен по принципу общей паскудности ситуации. По степени же распространенности я постараюсь говорить о тех проблемах, которые не слишком освещены в тематических книгах и статьях, однако, тем не менее, случаются на каждом шагу.

Читать дальше →

Введение в SaaS — системы управления проектами. Часть 1

Reading time5 min
Views19K
Для того, чтобы управлять проектами по-настоящему эффективно, необходимо обращение к специальному программному обеспечению. Набор систем для управления проектами на сегодняшний день очень обширный: от громоздких, мегафункциональных до самых «лёгких» и простых. Для внедрения первых и их эффективной отдачи, конечно, потребуется много усилий (если, конечно, Вы не пригласите пару другую сертифицированных специалистов для контроля project-цикла внутри организации). Но всегда ли это оправдано? И будет ли использоваться весь функционал системы?
Читать дальше →

Разбираемся с проблемой мертвого кода и инклудами

Reading time5 min
Views1.9K
В этой статье мы поговорим о некоторых иногда упускаемых разработчиками аспектах, влияющих на общую производительность веб приложения. В частности рассмотрим как влияет на производительность множественные подключения внешних файлов, наличие «мертвого» кода, акселерация путем кешеров опкода и FastCGI для PHP.
Читать дальше →

AppStore. Как Bills for iPad стала №1 в США

Reading time8 min
Views4.2K
Опыт от тех, кто создал самую продаваемую программу для iPad в США.

Есть много статей о том как зарабатывать деньги на мобильных приложениях в AppStore и Android market. Но сколько разработчиков реально были наверху? Наша программа Bills for iPad в период с 26 по 29 июня 2010 июня была самой продаваемой в AppStore в США программой для iPad.
image

Как зарабатывать в AppStore? Вот механизмы, которые доступны:
  • Продажа программ.
  • Внутренние покупки
  • Реклама

AppStore, по-моему мнению, нацелен именно на доходы от “продажи программ”. Два главных рейтинга, Топ самых скачиваемых программ (Top paid) и Топ самых доходных программ (Top grossing), раздел “новое”, а также разделы AppStore, где Apple выделяет новые интересные программы — все это мотивирует на создание новых, лучших продуктов. Отсюда такое громадное количество программ в магазине — свыше 300,000.
Читать дальше →

PMP сертификация за 3 месяца

Reading time2 min
Views52K
PMP традиционно входит в десятку самых востребованных IT сертификаций на западе. Эта мода потихоньку перебирается и в страны СНГ, некоторые компании уже начинают робко писать в вакансиях «PMP credential is a plus». Помимо повышения ценности ПМа на рынке труда, подготовка и сдача PMP сами по себе дают полезные знания и опыт.

Под катом — пошаговая инструкция получения PMP на базе PMBOK4.
Читать дальше →

Hg Init: Часть 1. Переобучение для пользователей Subversion

Reading time9 min
Views124K
Hg Init: Учебное пособие по Mercurial.


Mercurial — это современная распределенная система контроля версий с открытым кодом. Эта система — заманчивая замена для более ранних систем вроде Subversion. В этом простом учебном пособии в шести частях Джоэль Спольски (Joel Spolsky) рассказывает о ключевых принципах Mercurial.

Если вы использовали Subversion, то Mercurial будет непонятным. Эта часть рассказывает о главных отличиях при работе с Mercurial. Если вы никогда не использовали Subversion, то можете просто пропустить эту часть.

Часть 1. Переобучение для пользователей Subversion


В каком же я был смятении, когда программисты в моей компании решили сменить Subversion на Mercurial!

Для начала, я начал приводить всевозможные тупые причины, по которым нам не надо ничего менять. «Мы должны хранить репозиторий на центральном сервере, так безопаснее», — сказал я. Знаете что? Я был неправ. При работе с Mercurial у каждого разработчика на жестком диске хранится полная копия репозитория. Это, на самом деле, безопаснее. В любом случае, почти в каждой команде, использующей Mercurial, центральный репозиторий тоже существует. И вы можете делать резервное копирование этого репозитория со всей необходимой одержимостью. А еще можете устроить трехступенчатую защиту с Сайлонами, Штурмовиками и прелестными лабрадудлами или что там требует ваш IT-отдел.

Читать дальше →

Реши судьбу проекта: Winnie cloud — облачный руби хостинг

Reading time3 min
Views801
Я уже рассказывал вам, что побывал в Польше на Democamp 2010 и познакомился со многими владельцами перспективных польских стартапов.

image

Польские ребята, создатели Winnie Cloud, попросили узнать, будет ли их стартап востребован в России. И я надеюсь вы поможете мне в комментариях представить общую картину происходящего в данной сфере.

Основная идея — это безопасный облачный хостинг для Ruby on Rails.

Подробнее под катом.

AndroidDev #1. Создаем файловый менеджер

Reading time10 min
Views71K


Android — перспективная и динамично развивающаяся операционная система. И многие программисты хотят научиться программировать приложения для OS Android, но беглый поиск структурированных материалов в сети Интернет и, в частности, Рунете, приводит их в ступор. Действительно, до сих пор существует проблема поиска обучающих статей (особенно на русском языке) по разработке приложений для этой весьма популярной операционной системы.
Ну, что ж, будем потихоньку улучшать данную ситуацию при помощи Хабра.
Сразу предупрежу, что материалы предназначены для тех, кто не имеет опыта разработки приложений для Android, но очень-очень хочет этот опыт приобрести.

Читать дальше →

Тормозит веб-сервер. Настройка на примере www.ochevidets.ru

Reading time8 min
Views28K
Я оказываю услуги по настройке web- и БД-серверов. На днях ко мне обратился Иван Усачёв — владелец портала ochevidets.ru с просьбой избавить сайт от торможения.

Страницы в пиковое время стали долго загружаться, вплоть до 5 минут на страницу.

UPDATE: Статья была написана в 2010 году. Кое-что изменилось: вышли новые версии программ, у nginx изменились некоторые директивы и появились новые. Учитывайте это.

Ниже я опишу, что я предпринял для решения проблемы.

Непрерывная интеграция на примере Hudson

Reading time10 min
Views33K
Все мы прекрасно понимаем, что тестирование является неотъемлемой частью жизненного цикла разработки ПО. Чем чаще мы тестируем наш код, тем быстрее мы сможем обнаружить ошибку, вкравшуюся в него в ходе разработки, и быстрее её исправить. При этом стоит понимать, что тестирование крайне желательно проводить в окружении, максимально близком к боевому (ОС, ПО, Hardware, Нагрузка), что бы иметь возможность обнаружить ошибки, которые не проявляются на сервере разработки, но могут появиться в бою. Компануя два вышесказанных тезиса вместе мы получаем концепцию, называемую Continuous Integration.

Суть CI заключается в постоянной (например, после каждого commit'а) сборке и тестировании разрабатываемого ПО в максимально приближенной к боевой среде с целью как можно более раннего обнаружения ошибок и оповещения о них разработчиков. Сама идея CI принадлежит Martin Fowler, подробно описавшему её в своей статье.

Для автоматизации процесса непрерывной сборки существуют готовые решения (Hudson, CruiseControl), интеграцию одного из которых (Hudson) я и опишу в этой статье.

Читать дальше →

Премия Рунета 2010 — Хабраитоги года

Reading time4 min
Views583
Прямо сейчас проходит Премия Рунета 2010. По такому случаю хотелось бы подвести итоги года прямо во время громких объявлений на мероприятии — так сказать, альтернативный, Хабра-топ знаковых событий рунета в 2010 году.

подробности

OSM и карта лежачих полицейских в навигаторах

Reading time5 min
Views6.2K
imageТак как начинать с начала неинтересно, начну с конца.
Мы ее-таки сделали. Достали из данных OpenStreetMap лежачих полицейских, скрестили их со страшной коммерческой программой Навител, сделали веб-просмотрщик этих самых лежачих полицейских, и интерфейс для их добавления для новичков на http://latlon.org/tc/. И даже написали небольшой пресс-релизик, ссылку на который можно разослать друзьям и знакомым-автомобилистам.
Но для хабра можно рассказать и кое-что особенное: как это всё устроено внутри, и как оно делалось.
Читать дальше →

Information

Rating
Does not participate
Location
Минская обл., Беларусь
Date of birth
Registered
Activity