Итоги 5 лет. Победа над Drupal.

Аватар пользователя Алексей Пушкарев Алексей Пушкарев 9 мая в 18:27
7

Коллеги, поздравляю всех с Днем Победы!
По иронии этот текст был написан именно к 9 мая.

Полагаю, что сообществу будет интересен наш кейс, как мы пришли от хостинга к платформенным веб-решениям на Drupal.

Получилось “очень много букв”, но это про 5 лет работы с Drupal. Сложно написать одновременно кратко и емко.

Через терни к звездам...

Наша история началось аж в 2005, с хостинг-компании… Посчитав это направление интересным и перспективным мы с партнером вложились в свой первый бизнес.
Наивные, мы не понимали во что ввязались =) Следующие 2.5 года в качестве отдачи получали лишь только опыт.

При чем тут Drupal?
При том, что мы от незнания считали, что у нас есть выбор на чем делать себе проект. Мы прошли сложный пятилетний путь до Drupal.

Как и многие мы делали себе сайты на Joomla (Mambo), WP, Битрикс и в конце концов на Drupal. Пытались связать сайт с биллингом (чего только мы не использовали: WHMCS, Plesk, Billmanager и др.). Потом с 1С и другими решениями для автоматизации бизнес-процессов.

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

Ежедневные задачи: работа с тикетами, внутренними и клиентскими задачами, контроль качества работы сотрудников поддержки, обработка email, ведение и учет клиентов, работа с воронками, формирование финансовых отчетов, отправка email/sms-уведомлений и целевых рассылок… и еще куча всего.
У конкурентов были партнерки, продажа SSL, доменов, CMS-лицензий, услуги по администрированию, серверное железо и нам хотелось продавать это тоже. Это означало, что нам нужно еще более универсальное биллинг-решение.
Это далеко не полный список “must-have” для хостинговой инфраструктуры.

Арендовали кучу сервисов и пытались (< ключевое слово) их связать между собой, биллингом и сайтом. Про стабильность работы всей этой "системы" я промолчу. Вся структура была похожа один большой “костыль”. Да, мы знали все нюансы и косяки, предугадывали проблемы наперед. Но, назвать это комфортной работой было нельзя.
Еще раз повторюсь, чтобы хостинг окупался (речь не о прибыли) должно быть ОЧЕНЬ много клиентов. Технические риски росли по мере подключения нового функционала. Как масштабироваться с таким “вело-набором”? Очень большие риски.

Путь в никуда

Крупные конкуренты обладали ресурсами и работали на самописных решениях. У них были деньги на армию разработчиков, а у нас нет. Если бы мы наняли 3-4 разработчиков для написания сложного кастома, с нуля, то в случае, если кто-то из ниш решил бы уйти от нас - мы бы остались с кучей кода в котором вряд ли кто-то бы хотел разбираться. Пришлось бы писать новые костыли и повторить все круги ада. Этот путь проходили многие, мы знаем от коллег по веб-разработке и от клиентов.

Пришлось остановиться и хорошенько во всем разобраться. И вообще, больше ДУМАТЬ перед тем, как принимать решение и делать.

В наш “вело-набор” добавился сайт на Drupal. Мне нравилось то, можно было “накликать” новый функционал, при том получалось гибко и универсально. Сайт работал, развивался и мы все больше вникали в Drupal-принципы. Тогда я понял идею и перспективы. Я думал, что на Drupal можно создать решение для чего угодно.

“Безумству храбрых поем мы песню”

Прикинув возможности Drupal было предложено сделать все на нем, с нуля. Партнеру моя идея не понравилась =) Мы долго спорили, считали риски и в итоге не нашли консенсуса. Каждый пошел своей дорогой. Компанию перепродали крупному хостеру. А я остался с сотрудниками и решил все начать с нуля, а именно с создания комплексного решения на Drupal под новый хостинг-проект.

Для начала нужно было уменьшить количество интеграций (!) и связать все воедино. Очень хотелось стабильной и комфортной работы.

Целью - получить гибкую универсальную систему с централизованным управлением.
Для наших клиентов все должно было выглядеть как одно целое: сайт, личный кабинет, тикетница, формы и др. Требовалась единая среда, UI и принцип.

Для наших сотрудников все необходимое для работы должно было находиться в одном месте, без кучи учеток, вкладок, работать с одним интерфейсом. Управлять клиентами и услугами, выполнять маркетинговые задачи, создавать, редактировать и управлять любым контентом на сайте.

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

Вместе с командой разработчиков составили список необходимых нам решений с подробным описанием каждой функции.

Вот что получилось:

  • Кросс-стандарты для front-end и back-end;
  • Универсальный биллинг для “чего-угодно“ (взять лучшие решения у Plesk, WHMCS и др. и добавить в свое);
  • Центральное управление хостинг-панелями из Drupal (ISPmanager, CPanel, SolusVM, Proxmox);
  • Удобное и понятное отображение и управление товарами и услугами для клиентов;
  • Регистрация и продление доменов, интерфейс управления DNS;
  • Helpdesk (+тикетницу) и как минимум не хужче, чем это реализовано в WHMCS;
  • CRM с системой уведомлений, воронками, канбаном, дэшбордами, realtime-аналитикой, группировкой клиентов по различным условиям, управлением задачами, учетом KPI сотрудников, интеграцией с 1С, трэкингом телефонии, обработкой email, сообщений из соц. сетей, мессенджеров и др.;
  • Рекламные и персональные уведомительные рассылки;
  • A/B тесты предложений на сайте;
  • Сбор, хранение и управление данными о посетителях и клиентах (сейчас это модно называть "360 customers profile view");
  • Личный кабинет: баланс (смешанный: для физ. и юр. лиц), бонусные баллы, нарастающие скидки и промо-коды;
  • Партнерка (реферальные ссылки, промо-коды, суб-аккаунты, whitelabel);
  • Онлайн-чат с возможностью приема оплат, выставлением счетов;
  • Автоматика выставления счетов для юр. лиц (РФ) и формирования закрывающих документов;
  • Простой учет и отображение доходов и расходов (в реальном времени);
  • Менеджмент документов;
  • Обучающие курсы для сотрудников и клиентов (в т.ч. с платным доступом);
  • Интеграция эквайринга (прием платежей в РФ, Европе и США);
  • Службы доставки (для физической доставки товаров);
  • Собственные интеграции: DaData, Admitad, GA, Tagmanager, VoIP (UIS), Яндекс-сервисы и еще с десяток других;
  • Маркетплейс товаров и услуг;

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

Про время и деньги
Проект получился дорогой и долгий. Нужно было отбивать зарплаты и приходилось браться за некоторые клиентские проекты. Нам повезло запустить крупные ecommerce-сайты для нескольких известных брендов (Великобритания, Германия, Россия). Называть компании не буду (NDA), но уверен, что каждый читающий этот кейс что-то у них покупал =)
Кстати, задачи у наших клиентов были примерно похожи: от нас требовалось в максимально короткие сроки запустить достаточно сложный функционал с интеграциями 1C, SAP и кастомными корпоративными ERP. Наши универсальные наработки позволяли сократить сроки в 4, а то и 10 раз. Не скажу, что все было идеально, но на тот момент критичные задачи бизнеса решались. Искренне благодарен нашим клиентам за их веру и поддержку в нас в и Drupal!

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

День победы над Drupal =)

Сейчас все хорошо. Мы реализовали все, что когда-то планировали. Протестировали систему на наших и на клиентских проектах. Система в боевом режиме, работает как часы. Разумеется highload.

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

  • интернет-магазины
  • провайдеры услуг и сервисов
  • маркетплейсы
  • продажа digital-контента
  • online-образование

Если кому интересно, вот некоторые скриншоты вида “под капотом”:

Список реализованных функций с описанием (не полный, еще пишем).

Разумеется, мы буду рад продемонстрировать систему всем желающим. Пишите мне в ЛС и я отправлю доступы к инстансу.

Выводы

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

Drupal сегодня наилучшим образом подходит для построения платформ. Под платформами я имею в виду узкоспециализированные (целевые) CMS, конструкторы, CRM, биллинги, сервисы (SAAS-модель), хелпдески и др.
Drupal хорошо подходит для быстрого запуска сложных веб-проектов.
Drupal отлично подходит для сопровождения групп сайтов (применяя кросс-стандарты).
Drupal сложен для профессионального использования. Профессиональный разработчик скорее всего предложит “написать свое”, чем разбираться в особенностях Drupal.
Drupal – дорогое решение для небольших и средних веб-проектов из-за отсутствия целенаправленных готовых решений. О бесплатных билдах речи не идет, они чаще не адаптированы под конкретные задачи и представляют собой сборку модулей с так себе продуманной архитектурой.

Конечным потребителям:
Для создания простеньких сайтов лучше выбрать Joomla, WP или даже конструкторы типа WIX, Squarespace, uKit, A5. А для очередного мелкого интернет-магазина лучше купить CS-Cart, InSales, 1С Битрикс, UMI или же перебиваться на OpenCart.

Разработчикам:
Любой желающий не сможет “запрыгнуть” в профессиональный Drupal не преобразовав свою систему мышления. Потребуется затратить много времени и усилий. Не мудрено, что несмотря на огромный потенциал Drupal, веб-разработчики часто выбирают другие системы, играя в короткую игру. Так проще и дешевле, но не перспективнее.

P.S.

Я не преследую цели давать какую-либо оценку Drupal или убеждать в (не)правильности выбора. Изложенная информация для тех, у кого есть интерес к Drupal или кто сравнивает его с другими системами. Кто думает над тем, стоит ли вкладывать свое время и усилия в изучение и разработку на этой платформе.

Drupal – это о долгосрочных перспективах.

Желаю, чтобы как можно больше компаний в России начали применять Drupal и на достойном уровне. Так как это делается во всем остальном мире.

Все в наших руках, если очень захотеть =)

И еще раз всех с Победой!

Комментарии

Аватар пользователя gun_dose gun_dose 9 мая в 19:41
1

Спасибо, очень интересная статья! А какой друпал используете: 7 или 8? Используете ли для админки реактивные js-фреймворки и если нет, то собираетесь ли и почему?

Аватар пользователя Алексей Пушкарев Алексей Пушкарев 11 мая в 8:50
gun_dose wrote:

Спасибо, очень интересная статья! А какой друпал используете: 7 или 8? Используете ли для админки реактивные js-фреймворки и если нет, то собираетесь ли и почему?

Пожалуйста.

  1. На данный момент мы используем 7 только в целях снижения внутренних рисков, а именно в части лучшей проработанности (bugfixes) и завершенности модулей. Переход на 8 планируем не раньше, чем через 1.5 года, когда больше обкатается ядро и станет больше модулей, а так же пофиксятся многие баги.
  2. Нет, не используем подобные обвесы. Дело в том, что админская часть в Drupal изначально имеет множество нюансов наследуемых от разных модулей и общей не самой простой организации архитектуры, хотя бы в части front-end. У нас собственная администраторская тема с множеством плагинов и кросс-стандартов для удобства работы и долгосрочной поддержки. Стараемся держать баланс между модным и надежным.
Аватар пользователя gun_dose gun_dose 11 мая в 9:53
2

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

Но не в этом суть. Мне больше интересно вот что - у вас очень большой программный продукт, наверное под сотню тысяч строк кода. Не думали, что на восьмёрке засчёт структурированности всё это добро будет банально проще сопровождать? Просто стиль семёрки - это спагетти-код на 3000 строк в файле .module и столько же в инклюдах. Плюс многие хуки часто подразумевают дублирование кода. И когда на код-ревью прилетает коммит, где изменено 1000 строк в одном файле, то у ревьювера просто-напросто вытекут глаза. Плюс покрытие тестами и совместимость с современными фреймворками для тестирования.

Аватар пользователя ivnish ivnish 9 мая в 19:46
1

У меня пара вопросов:

1) Есть ли планы рассказать о своем опыте на главном друпал-кемпе? Думаю, лично Дрису, да и другим участниками сообщества будет очень интересно узнать о вашем опыте.

2) В процессе решения задач наверняка кучу модулей написали. Есть ли чем поделиться с сообществом в плане контриба?

Аватар пользователя Алексей Пушкарев Алексей Пушкарев 11 мая в 8:56
1
ivnish wrote:

У меня пара вопросов:
1) Есть ли планы рассказать о своем опыте на главном друпал-кемпе? Думаю, лично Дрису, да и другим участниками сообщества будет очень интересно узнать о вашем опыте.
2) В процессе решения задач наверняка кучу модулей написали. Есть ли чем поделиться с сообществом в плане контриба?

  1. Возможно все)
  2. Сотни модулей. Некоторые из которых огромного объема и сложности, сравнимо с views. Некоторые модули которые могут работать standalone без обязательной связки с другими будут опубликованы на d.org в ближайшее время. Наша система представляет собой не совсем "набор модулей", а полноценно собранный и настроенный билд. Создавали модули по принципу универсальности т.е. 90% модулей нет смысла публиковать отдельно просто потому, что они не будут работать без других написанных нами.
Аватар пользователя droopy droopy 10 мая в 12:01
1

Алексей, привет!) Молодец, что все же решил рассказать о своем проекте друпал-сообществу)

Аватар пользователя droopy droopy 10 мая в 12:06
1

Какие планы дальше?
Будет продаваться или бесплатно выложишь (целиком или по модулям)?
з.ы. на промо-сайте говорится про искусственный интеллект. Уже есть что-нибудь готовое?

Аватар пользователя Алексей Пушкарев Алексей Пушкарев 11 мая в 9:18
1
droopy wrote:

Какие планы дальше?
Будет продаваться или бесплатно выложишь (целиком или по модулям)?
з.ы. на промо-сайте говорится про искусственный интеллект. Уже есть что-нибудь готовое?

  1. Система уже продается для крупных проектов (enterprise-внедрения). Бесплатно опубликуем некоторую часть модулей, которые могут работать отдельно без связки с остальными нашими модулями (ответил на похожий вопрос выше). В случае бесплатной публикации целикового билда многие компании-разработчики коммерческих CMS такой "финт" воспримут как минимум оскорблением, ведь в этом случае многим будет не интересно платить, если можно взять бесплатно. Если бесплатно, то пропадает мотивация улучшать продукт до превосходного. Рынок веб-разработок должен развиваться и зарабатывать.
  2. По AI мы готовим большую разработку. Но, об этом позже, по факту готовности.