Нагрузочное тестирование "По-быстрому",

Мне очень понравился LoadStorm. С ним работа строится следующим образом:
1. регистрируемся
2. Создаем тест — в котором указывает сайт который будем пытать
3. Прежде чем начать пытку- требуется верификация (а вдруг вы хотите положить сайт конкурента????). надо на главную страницу положить определенный текст с кодом — или файл с определенным именем в корень
4. Дальше создаем сценарий — при создании сценария описываем, как пользователь идет по вашему сайту, какие линки нажимает, можно засабмитить формы. Все достаточно интуитивно и понятно
5. потом говорим когда запустить
6. в назначенное время тест запускается, ждем 30 минут пока до 50-ти пользователей бродят по вашему сайту согласно вашим указаниям — и получаем отчет.

http://habrahabr.ru/post/77593/

Читать далее »

Начальные сборки на Yii

Найдено на Хабре:

 Структура приложения – это одна из основных причин, по которой PHP программисты превращаются из “изобретателей колеса” в пользователей фреймворков. Строгие соглашения о структуре приложения и именовании позволяют нам избавиться от тонны кода, сделать рабочий процесс предсказуемым и объединить усилия команды для быстрого и качественного написания ценного бизнес функционала – без вечного рефакторинга роутеров, контроллеров и тд

Yii Framework имеет консольную команду для создания основного костяка приложения, который позволяет практически сразу начать работу над веб-приложением. Gii Модуль позволяет создавать каркассы классов моделей, контроллеров и универсальных CRUD интрерфейсов. Однако, если функциональность вашего приложения находится за пределами обычного вебсайта, — фреймворк сам по себе уже не имеет встроенных помощников для создания комплексной архитектуры. 

И, хотя, все добротные схемы организационной структуры приложения описаны и хорошо известны (на самом деле, не так уж и “хорошо”), это не освобождает нас от шаблонного конструирования в новых проектах время от времени. Здесь приходит на помощь готовый скелет структуры приложения.

http://habrahabr.ru/sandbox/51747/

Пользуюсь YiiBoilerplate в своем последнем проекте. Отличная штука. 

Читать далее »

Юнит тестирование моделей в Yii

Найдено:

Сейчас я расскажу про применение техники TDD для разработки моделей, используя Yii-framework.
Изначально предполагается, что была прочитана тема «Тестирование» из официального мануала (http://yiiframework.ru/doc/guide/ru/test.overview).

Итак, окружение настроено и сейчас нашей задачей будет — создать модели категории и продуктов(Category, Product) и покрыть их тестами.

http://habrahabr.ru/post/147491/

Читать далее »

Производительность шрифтов

Найдено на Хабре:

Применение веб-шрифтов становится все популярнее: согласно HTTP Archive, за последний год число сайтов, использующих дополнительные шрифты, выросло вдвое — с 6 до 12%.

Слабым местом веб-шрифтов является производительность, однако ситуация постепенно меняется в лучшую сторону: появляются более совершенные методы сжатия, улучшается поддержка браузерами, unicode, отдельные наборы шрифтов и т.д.

http://habrahabr.ru/post/159907/

Читать далее »

Amazon Glacier

Амазон порадовал новостным письмом:

 Amazon Glacier is:

  • Low cost- Amazon Glacier is an extremely low-cost, pay-as-you-go storage service that can cost as little as $0.01 per gigabyte per month, irrespective of how much data you store.
  • Secure - Amazon Glacier supports secure transfer of your data over Secure Sockets Layer (SSL) and automatically stores data encrypted at rest using Advanced Encryption Standard (AES) 256, a secure symmetric-key encryption standard using 256-bit encryption keys.
  • Durable- Amazon Glacier is designed to provide average annual durability of 99.999999999% for each item stored.
  • Flexible –Amazon Glacier scales to meet your growing and often unpredictable storage requirements. There is no limit to the amount of data you can store in the service.
  • Simple– Amazon Glacier allows you to offload the administrative burdens of operating and scaling archival storage to AWS, and makes long term data archiving especially simple. You no longer need to worry about capacity planning, hardware provisioning, data replication, hardware failure detection and repair, or time-consuming hardware migrations.
  • Designed for use with other Amazon Web Services – You can use AWS Import/Export to accelerate moving large amounts of data into Amazon Glacier using portable storage devices for transport. In the coming months, Amazon Simple Storage Service (Amazon S3) plans to introduce an option that will allow you to seamlessly move data between Amazon S3 and Amazon Glacier using data lifecycle policies.

Если коротко, то новый сервис создан специально для хранения бэкапов. Стоимость - 1 цент в месяц за гигабайт. Амазон радует. 

UPDATE.

http://aws.amazon.com/glacier/faqs/ - faq по сервису.

http://habrahabr.ru/post/149942/ - небольшой обзор на Хабре. 

Читать далее »

Yii 1.1.11

Команда Yii зарелизила версию 1.1.11, в которую вошли более ста улучшений и багфиксов.

Этот релиз особенный потому как является первым с тех пор, как код Yii мигрировал на GitHub. Сообщество восприняло миграцию очень хорошо ивыложилось по полной, прислав в виде pull-request новые возможности, исправления, unit-тесты и переводы.

За всё это огромное спасибо! Особенно отметим: resurtmDaSourcerercebeи suralc.

Можно ознакомиться со списком изменений и новыми возможностями. Если планируете обновиться, внимательно читайте инструкции.

Читать далее »

Использование TDD при построении простого приложения

TDD is a “test-first” technique to develop and design software. It is almost always used in agile teams, being one of the core tools of agile software development. TDD was first defined and introduced to the professional community by Kent Beck in 2002. Since then, it has become an accepted – and recommended – technique in everyday programming.

TDD has three core rules:

  1. You are not allowed to write any production code, if there is not a failing test to warrant it.
  2. You are not allowed to write more of a unit test than is strictly necessary to make it fail. Not compiling / running is failing.
  3. You are not allowed to write more production code than is strictly necessary to make the failing test pass.
Читать далее »

Многопоточность на PHP. Подборка статей.

Несколько полезных статей:

Иногда появляется необходимость выполнять несколько действий одновременно, например, проверять изменения в одной таблице БД и вносить модификации в другую. Причем если одна из операций (например, проверка изменений), занимает много времени, очевидно, что последовательное выполнение не обеспечит балансировки ресурсов.

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

Хотя PHP и не поддерживает многопоточность, есть несколько методов её эмуляции, о них и пойдет речь ниже.

http://www.phphighload.com/2012/07/php.html

Про PCNTL - расширение PHP для поддержки многопоточности:

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

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

Проблема на лицо - нужно чтобы 3 отдельных процесса выполнялись одновременно, не отбирая ресурсов один в одного.

http://www.phphighload.com/2012/07/pcntl.html

Про многопроцессорных демонов на Хабре:

Как из одного процесса сделать два? Программистам под Windows (в том числе и мне) больше знакома система, когда мы пишем функцию, которая будет main() для дочернего потока. В *nix все не так, потому я немного расскажу об этой системе многопроцессовости. *nixоиды могут смело пропустить эту часть, если они и так все знают.

Итак. Есть такая функия pcntl_fork. Как ни странно, аргументов она не берет. Что же делать?

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

http://habrahabr.ru/post/40432/

Читать далее »

Немного мыслей про Amazon Web Services

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

Начну с перечисления минусов, буду говорить конкретно про Amazon Web Services:

  • Облака предоставляют ресурсы по требованию, но никто не сказал, что дешево. Если сравнивать с обычной VPS, то получается раза в два дороже. Такое сравнение не совсем корректно, но все же. 
  • Конкретно у Амазона медленно работает дисковая система. Поэтому надо решать эту проблему настройкой софтверного рейд массива. 
  • Бывает тяжело объяснить человеку, что такое облака и чем они круты. Как бы что-то где-то, какие то облака, почему я должен за них так много платить и т.д.
Теперь перечисление достоинств и плюсов:
  • Главным достоинством является гибкость. Архитектуру можно настраивать как угодно админу. Машины можно сохранять, клонировать, удалять, размножать и т.д. Причем делается все это из панели управления несколькими кликами. 
  • Очень мал шанс что-либо потерять навсегда. Особенно в S3. Закинув что-то туда можно спать спокойно. 
  • Амазон надежен. Да, недавно был большой сбой в дата-центре в Америке, упали многие сервисы, которые там располагались. НО! Никто не запрещает дублироваться на другие дата-центры Амазона, на случай таких вот аварий. Которые, к слову, бывают реже, чем у на других площадках. 
  • Масштабируемость. Ресурсов можно брать ровно столько, сколько вам надо и менять их количество во времени. Маленькая нагрузка? Отключаем машины. Большая нагрузка? Подключаем дополнительные машинки. Все очень просто. 
  • Бэкапы. Бэкапиться можно как отдельными образами дисков, так и целыми машинами. Бэкапиться можно часто. И восстанавливаться тоже можно очень быстро. Для интернет-магазинов, у которых цена отката велика - самое оно! Плюс бэкапы инкрементные, что хорошо сказывается на итоговом счете. 
За бортом осталась большая часть сервисом Амазона, просто руки до них еще не успели дойти. Но как появиться опыт общения с ними, я обязательно тут панишу. 
Читать далее »

Про золотое правило производительности

Для начала пример «водопада», показывающего распределение времени сервер/клиент для сайта LinkedIn. Серверное время – это время, необходимое серверу для отдачи первого байта клиенту. Оно включает в себя несколько процессов: выборка по БД, вызовы удаленных веб сервисов, собирание HTML-страницы из шаблонов и т.д. Клиентское время — это все остальное. Оно включает в себя очевидные фазы, такие как выполнение JavaScript'а и рендер страницы. Так же в него входит время, затрачиваемое на загрузку всех необходимых ресурсов. Я включаю это время в клиентское, потому что фронтэнд-разработчики могут уменьшать его, применяя асинхронную загрузку скриптовобъединение скриптов и таблиц стилей иразнесение ресурсов по разным доменам.



Для получения результатов, имеющих отношение к реальности, я сделал выборку по сайтам, входящим в Топ-10. Среднее клиентское время составило 76%, что чуть ниже, чем заявлено в золотом правиле. Но не забывайте, что эти сайты оптимизированы по-максимуму и два из них – поисковые страницы (не результаты, а именно страница запроса), на которых очень мало лишних ресурсов.

http://habrahabr.ru/post/148213/

Читать далее »
Scroll To Top