Производительность и красивый код

Источник: PHP Inside

Интервью с генеральным директором umisoft Сергеем Котыревым: UMI.CMS обещает производительность и красивый код Именно эти качества, по мнению руководства компании umisoft, присущи их детищу — системе управления контентом UMI.CMS, написанной на PHP 5. Ещё весной этого года мы взяли интервью у Сергея Котырева, генерального директора компании umisoft. И это интервью было не случайным – к тому моменту компания стала спонсором конференции PHPConf 2007, выпустила бесплатную версию своей коммерческой системы и заявила о своих планах стать производителем №1 коробочного решения для сайтов в России. Сайт продукта: umi-cms.ru

В одном из своих пресс-релизов Ваша компания сообщала: «Благодаря удачному креативу баннеров, размещенных в ICQ, в первые моменты работы нагрузка на сайт во много раз превысила расчетную», соответственно вопрос как примерно вы рассчитывали предполагаемую нагрузку для этого конкретного проекта?

У ICQ и их российского представителя (Index20) есть статистика среднего CTR для каждого варианта размещения. Исходя из этого среднего значения и строился прогноз посещаемости сайта. Реальный CTR при запуске рекламы Бонанзы превысил средний более чем в 3 раза.

Нагрузка была выдержана благодаря только совместимости с memcashed или что-то еще серьезно повлияло?

Memcached — только одно из звеньев (самое ключевое) в оптимизации UMI.CMS, но оно позволило значительно разгрузить самое узкое место в web-приложениях — работу с базой данных.

По каким причинам цена внедрения и владения вашей системой считается невысокой? Каковы конкретные цифры? Указанная в пресс-релизе $3600 это стоимость внедрения или просто цена продукта?

Это стоимость сервера и лицензии на UMI.CMS Все остальное ПО на сервере — бесплатное. Стоимость низкая, потому что решения конкурентов, выдерживающие аналогичные нагрузки требуют большего числа серверов и дорогостоящие лицензии на СУБД Oracle.

МНЕНИЕ РЕДАКТОРА. В паре своих небольших проектов я решил посмотреть на работу UMI.CMS в действии (конечно на примере бесплатной версии!). Причём оценить систему не только как ПО, но и как коммерческий продукт, включая чтение документации и общение с представителями технической поддержки, или, как это принято называть в umisoft «Службой заботы».

Сразу скажу — никаких коммерческих отношений с umisoft редакция журнала не имеет. Мы действительно решили посмотреть на отечественную разработку на базе PHP 5. К тому же, она имеет бесплатную версию, доступную всем.
По моему личному мнению — система достаточно документирована, имеет понятные возможности по встройке собственных шаблонов и использования API для создания макросов на PHP. И что поразило больше всего — это техподдержка. Мне, не смотря на то, что являюсь пользователем всего лишь бесплатной версии ответили на вопросы по телефону (насчёт управления структурой сайта в условиях ограничений бесплатной версии) и через форму обратной связи на сайте (в течение рабочего дня). Во втором случае вопрос касался проблем с использованием лицензионных ключей на одном хостинг-аккаунте. Трудности были решены.
Все проекты были сугубо частными и к журналу PHP Inside отношения не имели.

Компания образовалась в марте 2007 года. Когда и в какие примерные сроки разрабатывалась ваша система UMI.CMS?

Первое поколение с 2002 года. Второе поколение — с 2005.

Почему для решения была выбрана технология PHP?

Это очень перспективный и популярный Open Source проект. Системы, написанные на PHP легко сопровождать сторонним разработчикам. php прост для изучения, поэтому если понадобится найти специалиста для расширения базовой функциональности, то это не составит затруднения, и такой сотрудник не будет обходится фирме в кругленькую сумму, как, например, программисты на java или c#.

С какими еще СУБД и версиями РНР работает ваша CMS?

На данных момент UMI.CMS работает только с MySql. Этого более чем достаточно даже для крупных проектов. В дальнейшем мы планируем добавить поддержку Oracle и, возможно, PostgreSQL. Архитектура системы построена таким образом, что модули оперируют исключительно абстрактными объектами, доступ к которым предоставляются ядром системы. Т.е. им все равно, откуда получены данные и их изначальный вид. Это может быть как Mysql, так и memcached, Oracle, и т.д.. Следовательно, для перевода CMS на PostgreSQL (к примеру) необходимо изменить только код ядра, код модулей изменять не имеет смысла.

Ваша CMS расчитана исключительно на конечного пользователя, или может заинтересовать и веб-разработчика? Есть ли в системе API и прочие элементы для "кастомизации" решения? Если есть, то хотелось бы узнать о них поподробнее.

Мы сделали много сайтов и знаем, как важна возможность быстро и безболезненно добавить в систему дополнительный функционал. Взаимодействие модулей с ядром, базой и между собой построено таким образом, что программисту, дописывающему систему нет необходимости думать о том, каким образом реализовать разграничение прав доступа, как экранировать переменные в sql-запросах, каким образом организовывать кеширование, как разбирать url'ы, как лучше составить запрос к базе данных, какие таблицы в базе нужно создать и о многом другом. Он волен полностью сконцентрироваться на реализации непосредственно бизнес-логики. При этом можно сохранить возможность получения автоматических обновлений (при условии, что ядро и минимальный функционал не изменен). Это позволит всегда иметь систему самой новой версии, имеющую весь необходимый клиенту функционал. В данный момент (апрель 2007 – прим. редакции) завершается написание подробного API по системе, которое подробно описывает алгоритмы работы системы и содержит подробные инструкции как по написанию собственных модулей, так и по расширению функциональности существующих.

С какими основными трудностями вы столкнулись при разработке CMS? Как их решали? С какими трудностями столкнулись при внедрении на bonanza? Как их решали?

Главная трудность — дефицит талантливых разработчиков. Но мы эти трудности преодолеваем.

Какие этапы внедрения были в проекте bonanza? Был ли пилотный запуск? Как и чем проект тестировался?

Поскольку сроки были ограниченны, проект запускался сразу без пилотных запусков. Семилетний опыт работы агентства позволяет успешно запускать большие и нестандартные проекты в сжатые сроки. Бенчмарк проводился при помощи ApacheBench, Version 1.3d

Код CMS как-то закрыт? Нужно ли наличие специального ПО на хостинге (к примеру акселератора-энкодера) для работоспособности движка?

На данный момент код системы почти полностью открыт, за исключением 3х файлов ядра (зашифрован Zend Guard'ом), где проверяется подлинность лицензии. Для их работы на сервере необходимо наличие Zend Optimizer'а. В данный момент мы работаем над тем, чтобы избавится от необходимости иметь на сервере Zend Optimizer. В ближайшее время потребность в нем отпадет. Естественно, демо-версии будут раздаваться исключительно в зашифрованном виде.