• Сервис нагрузочного тестирование loadme

      Наша команда столкнулась с недостатками инструментов нагрузочного тестирования, и, в конце концов, было решено разработать собственный сервис. Основные сложности:
      • Если это сервис — для серьезной нагрузки цена слишком высока
      • Если это утилита — результат зависит от скорости канала компьютера/сервера с которого проводился тест
      • Повторяющиеся запросы не отражают реальной скорости, так как кэширование есть на самых разных уровнях начиная от CPU и заканчивая базой данных

      Надеюсь, «велосипед» будет интересен и другим — сначала я опишу что уже работает, потом можно будет обсудить дальнейшие фичи.

      Что уже сделано?


      • Можно тестировать задания из списка url, до 20 штук
      • Каждая url может содержать один или несколько случайных параметров, задаваемых с помощью функции $RND
      • Тест запускается с множества серверов, на каждом из которых работает только 8 потоков
      • Тестирование можно проводить из 5 регионов AWS — Дублин, Франкфурт, Восток/Запад США, Токио
      • Тесты до 200 потоков мы готовы предоставлять бесплатно

      Читать дальше →
    • MongoDb в действии — интернет магазин

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

        В целом скажу так: работать с MongoDB удобнее чем с MS SQL. Регулярно встречаются сценарии, которые требуют больше усилий по сравнению с SQL, однако, в результате ты больше знаешь о том, как устроена твоя база данных и лучше контролируешь что будет тормозить, а что — нет.

        На хабре полно приложений в стиле «Hello World», так что инициализацию среды опустим и перейдем сразу к более продвинутым вопросам, а именно:
        • Почему удобнее хранить весь объект целиком, а не по таблицам?
        • Как бороться с реляциями?


        Читать дальше →
      • Использование Amazon Web Services на примере wikipaintings.org

          Думаю, уважаемому сообществу будет интересно узнать о моем опыте разработки интернет проекта с использованием amazon web services.

          Я не берусь утверждать, что весь проект идеален, однако я постараюсь описать основные решения, которые помогли сделать этот проект. Wikipedia.org, которая нас вдохновляла на работу, отдает 12 миллиардов страниц в месяц и поэтому мы старались с самого начала готовить код к росту популярности.

          Что такое wikipaintings.org — www.wikipaintings.org/ru/About
          Сейчас заканчивается первый этап разработки и основные задачи следующего этапа — привлечение волонтеров к наполнению сайта.

          Если кому-то кажется, что картины – это скучно, оцените творчество Archimboldo — www.wikipaintings.org/ru/giuseppe-arcimboldo/spring-1573#supersized-artistPaintings-184903

          Если же вам интересно наконец-то понять классификацию стилей живописи, добро пожаловать на www.wikipaintings.org/ru/paintings-by-style

          Ну а теперь, после того как вы положили сайт Хаббраеффектом (если еще не положили – кидаем ссылку всем друзьям), давайте перейдем к главному – техническим советам.

          Читать дальше →
        • Гигагерцы задешево — Win 2008R2 Core на Amazon

          Занимаясь стартапами я, наконец-то, дошел до той точки, когда нужно быть готовым отмасштабировать приложение на N серверов для 1M просмотров в день и я начал думать, как же это сделать наиболее эффективно с использованием Amazon Ec2.

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

          Из недорогих серверов у амазона особого выбора нет. Изначально я планировал использовать для этого Small Instance — именно этот вариант рекомендует amazon по умолчанию. В нем 1.7 GB RAM, что довольно комфортно для windows, но только 1 ECU. На практике в памяти можно разместить 5-8 рабочих процессов, однако, толком работать одновременно они не способны — ядро одно и очень слабое: 1 ECU это всего-то 1 Ghz одного ядра Xeon образца 2007 года. По моим оценкам, примерный эквивалент — процессор Celeron на частоте 1.5 Ghz. Стоит такой сервер $0.12 в час ~ $86 в месяц, десяток — $860 в месяц… Было очевидно, что эта конфигурация сервера не совсем отвечает моим задачам.

          Поэтому я решил попробовать Micro instance — всего-навсего 613 MB памяти, но зато:
          • производительность достигает 2 ECU
          • он в 4 раза дешевле
          • можно использовать 64 битную платформу Windows Server 2008 R2 Core


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