Мы не в первый раз проходим различные тесты для разных платформ. Это был и MySQL, это были и Platform тесты для Microsoft Windows Server 2003 и Microsoft SQL Server 2005. Совсем недавно мы подтвердили свою совместимость с Microsoft SQL Server 2008. Но все тесты фактически сводились к формальному подтверждению работоспособности продукта под ту или иную СУБД или платформу.
[spoiler]
Windows Server 2008
Несмотря на неудачный, на мой взгляд, продукт для рабочих станций Windows Vista, Майкрософту удалось выпустить супер-продукт - серверную версию Windows Server 2008. Я не буду рассказывать о всех возможностях этой ОС, лично мне особенно интересными стали Hyper-V и IIS. И если Hyper-V мне был интересен с точки зрения локальной разработки, тестирования и т.п. (например, наш корпоративный портал работает на виртуальной машине под Hyper-V и для многих наших сотрудников/пользователей это оказалось сюрпризом), то IIS мне был интересен как новая платформа не только для нового ASP.NET продукта, но и для PHP продуктов.
И интересен не только мне! Спрос на размещение КП или сайта на платформе Windows растет с каждым днем. Если раньше это были экзотические установки, в основном наших зарубежных клиентов, то сегодня это вполне обычное явление - большинство организаций имеет Windows сети, соответствующих админов и высокоскоростной Интернет в офис. К тому же в сети повсеместно рекламируется что Майкрософт повернулась лицом к PHP приложениям и что теперь это родная для IIS 7 платформа, благодаря FastCGI.
После всего этого мы и решили по настоящему проверить у себя насколько окажется жизнеспособной конфигурация БУС+IIS.
Тестирование
После принятия решения о тестировании "1С-Битрикс: Управление сайтом" для "Certified for Windows Server 2008", я скачал документ с требованиями и был немного удивлен - документ о тестировании содержал более 240 страниц и требовал пройти более 100 тестов, некоторые из которых были совсем не простыми. Но трусы не играют в хоккей, а тем более не сертифицируют приложения на совместимость и я приступил...
Большая часть тестов касается установки/удаления приложения. Майкрософт требует чтобы приложения не оставляли за собой "мусора", могли устанавливаться с командной строки, имели подписанные дистрибутивы, легко деинсталлировались и т.п.. Вообще, Майкрософт, небезосновательно уделяет большое внимание процедуре установки приложения. Проходим эти тесты...
Часть тестов относится к безопасности, Hyper-V, кластерам, особенностям конфигурирования ОС, взаимодействиям с прочим ПО. Проходим и их...
Наибольший интерес вызвал нагрузочный тест. По его требованиям нужно на сервере запустить специальное приложение (loadgen), которое максимально использует ресурсы сервера - процессоры и память под завязку, при этом само приложение тоже нагружается рядом тестов с клиентских машин. Сам тест проходит 48 часов, во время которого все логгируется, как клиентские запросы, так и серверные ответы. В этом тесте меня как раз и ждал сюрприз.
Вначале я, следуя нашей же инструкции, настроил под IIS обычный PHP + eAccelerator, но в течении 48 часов тесты показали не совсем стабильную работу и не очень хорошую производительность. После этого я обратил внимание на рекомендуемую Майкрософтом сборку PHP, которая на странице скачивания выглядит как Non Thread Safe.
После установки и запуске теста обнаружилось, что не нужен никакой прекомпилятор типа eAccelerator (он даже вреден в этом случае), приложение отработало все 48 часов без единого сбоя, с производительностью, которой позавидуют многие Linux/FreeBSD серверы. Наш продукт был нагружен помимо loadgen-ом еще четырьмя клиентскими компьютерами, которые беспрерывно ходили по сайту и ни одного сбоя!
После такого открытия я действительно поверил - PHP под платформу Windows Server 2008 не маркетинговый шаг, а реальность.
Были еще тесты на работоспособность продукта после сбоев, например, после выключения питания сервера. Очень большое внимание Майкрософт уделяет поддержке приложений под их платформу. Меня это очень удивило, но у нас запросили информацию как мы осуществляем поддержку и как мы отлаживаем приложение в случае сбоев. Наши инструменты по диагностике ошибок и отправке их в саппорт + SLA + ... - стали подтверждением нашей дееспособности в вопросах решении проблем. Майкрософт уделяет большое внимание для сертифицированных продуктов - не только их качеству, но и их поддержки.
В общем, сейчас, когда я вижу что приложение имеет лого "Certified for Windows Server 2008", я могу быть полностью уверен что оно прошло самые жесткие испытания, что оно действительно будет работать с максимальной производительностью и в случае сбоев будет оказана квалифицированная поддержка.
Что же дальше?
А дальше мы планируем развивать интеграцию с Microsoft Windows Server 2008 - изменяем руководство по интеграции, будем еще оптимизировать продукт под эту платформу, сделаем отдельный специальный инсталлятор для IIS, дадим клиентам возможность приобретать продукт вместе с SQL Server 2008 по льготной цене, в общем сделаем все для тех, кто привык работать с продукцией Microsoft, к тому же сам Майкрософт приложил к этому уже усилия, которые эффективно работают.
На практике действительно PHP nts работает быстрее, чем PHP + eAccelerator.
Раз тут была затронута тема про документацию, спрошу: если настроить обработку 404 ошибки БУСом, то никак не могу настроить нормальный вывод сообщений об ошибках в PHP (ошибка 500). Сейчас обработка 404 (ЧПУ и т.д.) нормально работает, а вот на 500ую (когда допущена ошибка в php) вылазить строка, что в главном модуле используется неопределенная константа BX_PERSONAL_ROOT
Сейчас обработка 500 ошибки из Error Pages убрана.
В Edit Feature Settings стоит Detailed error for local and custom for remote.
Если 500 вернуть то показывается стандартная страница IIS.
Если в Edit Feature Settings поставить Detailed error, то перестает обрабатываться 404, но 500 отображается нормально.
Не могу найти разницы в настройках 2х серверов, на одном все хорошо, на втором вместо ошибки PHP вижу
[URL=http://okna-na-rostov.ru/669-natyazhnye-potolki-samye-nizkie-ceny-v-rostove.html] натяжной потолок , матовый Ростов дешего красиво[/URL] [URL=http://okna-na-rostov.ru/670-natyazhnye-potolki-v-novocherkasske.html]потолки срочно[/URL][URL=http://xn-----elcbpnnh0aagadwqgk.xn--p1ai/] натяжные потолки в Ростове-на-дону [/URL]
PHP may be installed as a CGI binary, or with the ISAPI module. In ..."
ато вот я никак не могу настроить хорошую производительность