Найти в Дзене
Topsite Web

Руководство Drupal Multisite

Оглавление

Вы когда-нибудь слышали, что у одного бизнеса много разных филиалов или мини-предприятий? Это довольно обычное явление в наше время. Деловой мир сильно вырос, и его потребности тоже. И одного веб-сайта недостаточно для удовлетворения этих потребностей.

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

Какое же тогда решение?

Многосайтовая структура, которая позволяет создавать несколько веб-сайтов, используя общие черты. Для его создания потребуется меньше работы, но при этом будет обеспечена столь необходимая автономия для отдельных сайтов в настройке. И это то, что мы собираемся обсудить сегодня, но в отношении Drupal.

Drupal, будучи популярной CMS, может многое предложить, если рассматривать веб-разработку. Сайты, разработанные с использованием Drupal, универсальны , масштабируемы и обеспечивают потрясающе мощный цифровой опыт. И одна из таких функций, которая способствует этой мощи, — это многосайтовая установка Drupal. Итак, для тех, кто спросил: «Поддерживает ли Drupal мультисайт?», Ответ будет положительным, и он делает это исключительно хорошо. Давайте узнаем, как это сделать.

Drupal Multisite: о чем идет речь?

Вы когда-нибудь делали торт? Основные ингредиенты: мука, яйца и сахар — одинаковы для каждого торта. Различаются только вкус и начинка. По той же аналогии можно понять мультисайт Drupal.

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

Что будет одинаковым для всех веб-сайтов в этой настройке?

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

И что будет отличаться на нескольких сайтах?

Все, кроме кодовой базы. У вас были бы независимо работающие веб-сайты, которые удовлетворяли бы потребности целевой аудитории.

  • У сайтов будет своя собственная база данных;
  • У сайтов будет своя собственная конфигурация с точки зрения включенных модулей и тем, контента и прочего; 
  • Сайты будут иметь свои собственные файлы, включая изображения, загрузки, профили пользователей и многое другое;
  • И у сайтов даже будет свой собственный базовый домен или URL.

Таким образом, по сути, мультисайт Drupal предоставит вам возможность создавать несколько веб-сайтов с использованием одной и той же кодовой базы, однако все сайты будут отличаться друг от друга, обслуживая разную аудиторию.

Как такое возможно?

Из-за запросов сервера. Позвольте мне немного прояснить это. Все мультисайты, созданные с помощью этой настройки, хранятся в отдельных папках. Структура Drupal с несколькими папками может быть отделена от многосайтовых репозиториев, что упрощает развертывание как для обслуживающего персонала, так и для интерфейсных разработчиков. Вдобавок к этому каждая из этих папок будет иметь свой собственный setting.php с возможностью подключения к своей личной базе данных.

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

Что вы от этого получаете?

После понимания базовой концепции и работы многосайтового модуля Drupal следующее, что приходит в голову, — это его преимущества. Почему вы должны этим заняться? Что от этого выиграешь? И именно здесь я пришел, чтобы рассказать вам об удивительных возможностях мультисайта Drupal.

Воспользуйтесь более быстрым запуском

Лучшая часть мультисайтовой функции Drupal — это возможность создавать новые веб-сайты за считанные минуты и без особой поддержки со стороны ИТ-специалистов и разработчиков.

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

Получите выгоду от отказа от компромиссов

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

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

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

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

Воспользуйтесь меньшими затратами на обслуживание

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

Если вы столкнетесь с ошибкой на любом из этих сайтов, вы должны исправить ее для всех. Это значительно сокращает время, затрачиваемое на техническое обслуживание, и, следовательно, сопутствующие ему расходы. С помощью мультисайта Drupal вы можете отслеживать обновления и проверки в одном месте, тем самым сохраняя удобный контроль над обслуживанием.

Получите выгоду от экономии ваших усилий

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

Повторно используемый код с общей библиотекой влечет за собой:

  • Многоразовые интеграции; 
  • Многоразовый функционал; 
  • Многоразовые компоненты пользовательского интерфейса; 
  • Многоразовые рабочие процессы.

И вы также можете повторно использовать тему с механизмом наследования тем Drupal, что позволяет вам создать базовую тему для других тем, от которых будут унаследованы основы.

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

Какие варианты предлагает мультисайтовый Drupal?

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

Итак, давайте разберемся, какой диапазон имеет мультисайт Drupal.

Традиционный подход: классическая многосайтовая архитектура Drupal

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

-2

Я был бы неправ, если бы сказал, что разделяется только кодовая база. Технически это действительно так. Однако, если вы хотите, чтобы на мультисайтах было больше общего, у вас есть возможность. Модуль Features, уникальная черта традиционной архитектуры Drupal, может вам в этом помочь. Он позволяет сайтам иметь общие функции, импортируя из него конфигурацию. Config Split еще больше упрощает рабочую нагрузку, разделяя, какая конфигурация должна быть совместно использована, а какая должна быть отменена.

Напротив, я упомянул, что вы можете создавать независимые и несколько уникальные веб-сайты, используя мультисайт Drupal, если вы этого хотите. Это возможно, потому что это позволяет настраивать из-за изолированных конфигураций. Таким образом, вы можете создавать свои собственные темы и модули для каждого из ваших веб-сайтов.

Многодоменная архитектура

Многодоменная архитектура не сильно отличается от многосайтовой. Однако существует единая кодовая база, а также единая и общая база данных, чего нет в случае с несколькими сайтами. Вот диаграмма для лучшего понимания.

-3

Благодаря многодоменной архитектуре вы будете поддерживать единственную установку Drupal, что довольно просто. Кроме того, вы также сможете легко поддерживать конфигурацию и функциональность.

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

Благодаря большему участию в этом архитектурном проекте Drupal с точки зрения возможностей, функциональности, контента и даже пользователей, обновление одного сайта — это просто прогулка по парку.

Что касается недостатков, то среди них не может быть никаких исключений. В режиме мультисайта вы можете добавить дополнительные функции к отдельным веб-сайтам, но здесь вы не можете этого сделать. Что ж, вы можете, если хотите, но, как видите, цель многодоменной архитектуры — простота. И добавление исключений для каждого сайта противоречило бы этому значительному значению. Даже при использовании модулей contrib вы должны быть очень осторожны при проверке их совместимости с Domain Access.

Другие известные архитектуры

В Drupal есть еще три архитектуры с несколькими сайтами, давайте прольем на них немного света.

На основе дистрибутива Drupal

Вы когда-нибудь покупали смесь для торта? Это готовая смесь всего, что входит в торт, и все, что вам нужно сделать, это превратить его в жидкое тесто и поставить в духовку, и вы получите свой собственный испеченный торт. Легко, правда? По сути, это и есть дистрибутив Drupal.

Вы получаете сочетание всего, что вам может понадобиться для запуска ваших веб-проектов, от необходимых модулей и библиотек до настраиваемых тем и модулей и от конфигурации до, возможно, содержимого по умолчанию. Это стартовый пакет для веб-сайта. Есть популярные дистрибутивы Drupal, например Commerce Kickstart и Lightning , но вы также можете создавать свои собственные дистрибутивы. Взгляните на этот полный список основных дистрибутивов Drupal, которые вы должны попробовать.

Они отличаются от мультисайтов и мультидоменов за счет кодовой базы: у каждого сайта будет своя собственная, и у каждого сайта также будет своя учетная запись хостинга.

Главный недостаток здесь в том, что это требует дополнительной работы. Я знаю, что это какая-то ирония для смеси для торта. Вам придется поддерживать кодовую базу распространения, а также каждый из сайтов. Обновления безопасности и исправления ошибок требуют еще большего внимания, если ваш дистрибутив опубликован на Drupal.org.

На основе разрозненных данных

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

На основе многоязычных потребностей

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

Когда можно наиболее оптимизировать настройку?

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

У вас несколько сайтов?

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

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

Они похожи друг на друга?

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

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

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

Есть ли у вас техническая инфраструктура?

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

  • Правильная среда хостинга для управления несколькими доменами и механизмами развертывания. Ваш хостинг-провайдер должен знать точные требования к вашей настройке.
  • Правильные процессы DevOps, совместимые с вашей многосайтовой настройкой. Когда говорят, что многосайтовая установка сокращает объем вашей работы, одной из причин этого является автоматическое развертывание, поэтому ваш DevOps должен быть в этом эффективен.
  • Наконец, правильная среда тестирования, поскольку вы развертываете несколько сайтов одновременно, вероятность ошибок возрастает. Нарушение функциональности может стать колоссальным, и проверка его вручную — тяжелая работа. Итак, автоматизированная среда тестирования, оснащенная инструментами для обеспечения более высоких стандартов качества, имеет решающее значение.

Может ли работа с несколькими площадками создать проблемы?

Всегда есть темная сторона вещей, и мультисайты Drupal не исключение. Есть определенные недостатки, которые сопровождают установку, которые могут оставлять кислый привкус во рту. Для многих эти проблемы стали причиной отказа от многосайтовой архитектуры.

Вызов неудачи

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

Во-первых, для всех сайтов существует единая кодовая база. Это означает, что если есть проблема с одним, то проблема со всеми. Возьмем, к примеру, всплески трафика: они могут быть хорошими для одного веб-сайта, но для мультисайтов один сайт может представлять значительные риски для других.

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

Вызов индивидуальности и новаторства

Да, мы действительно говорим, что функция мультисайта имеет место для индивидуальности каждого сайта. И затем мы также говорим, что каждый сайт должен быть одинаковым или, по крайней мере, в значительной степени похожим, чтобы архитектура работала. Вы понимаете, к чему я иду с этой задачей?

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

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

Проблема технических недостатков

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

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

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

Проблема потери открытого исходного кода

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

Вывод

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

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