Drupal 7 + Microsoft Azure
Подружить эти две вещи очень даже легко.
Что такое Drupal-думаю все знают..это очень гибкая и функциональная CMS.
Microsoft Azure-это облачная технология,предоставляемая компанией Microsoft. В чём же её достоинство. Работает точно также,как и обычное облако. Если сайт рассчитан на высокие нагрузки-можно построить кластеры или придумать ещё что-нибудь.Облачный подход сейчас наиболее популярен.
Подружить шестую версию Drupal не получится,или же самому придется писать драйвер к БД.Для семерки качаем модуль
тут настраиваем.
Далее идем на
http://www.microsoft.com/windowsazure/ и получаем аккаунт.
Предполагается что сайт у вас уже готов.
По адресу
https://windows.azure.com увидим админ панель.
Имеется также рускоязычная версия интерфейса, так что сориентироваться можно. Подключам базу данных. PhpMyAdmin-а к сожалению не увидим...Но у обозревателя базы данных MsSql(Работать кстати придется именно с ней) тоже есть свои достоинства.
Стандартные модули друпала впринципе дружат с такой БД,но если будете писать свои модули-имейте ввиду что запросы к БД строятся немного иначе,нежали к MySql. Лично у меня запарка произошла с оператором
group by mssql. Джойны и ордеры работают также,хэвинги не проверял.
Ещё отмечу-при указании длинны поля типа int - вылезет ошибка,указывать его не надо.(в MySql можно было указать без проблем)
Чтобы свести ошибки написания кода к минимуму-рекомендую использовать
DataBase API.У седьмого друпала она очень даже ничего. Используя её-никогда не ошибешся в последовательности написания операторов where,left loin.order by и group by(если они все присутствуют в одном запросе), в общем попробуйте сами.Например select будет выглядеть вот так:
$query =db_select('cb_sessionss','s');
$query ->condition('v.ProjectID',$user->uid,'=');
$query ->leftjoin('cb_videos', 'v', 's.VideoID = v.ID');
$query ->leftjoin('cb_node_guid','ng','ng.guid=v.AvsURL');
$query ->leftjoin('node', 'n', 'n.nid = ng.nid');
$query ->fields('s',array('VideoID')); $query ->fields('v',array('AvsURL')); $query ->fields('n',array('title')); $query ->addExpression('count(*)','views');
$query ->addExpression('count(distinct s.UserID)','uniques');
$query ->groupBy('s.VideoID ,v.AvsURL, n.title');
$query ->orderBy('views','desc');
$query ->orderBy('uniques','desc');
$result=$query->execute();
Не забываем что названия полей BD MSSQL регистрозависимы.
А вставить запись можно так:
$query=db_insert('cb_users');
'IP'=>$IP,
'Platform'=>$Platform,
'BrowserName'=>$BrowserName,
'BrowserVersion'=>$BrowserVersion,
'Info'=>$Info,
'LastSeen'=>$lastseen,
'Hash'=>$Hash
));
$query->execute();
Использование такого подхода покажется сложным,на первый взгляд. Но попрограммируйте так денек другой-вообще можете забыть как когда то писали SQL-запросы на чистом PHP. Drupal 7 DataBase API кстати использует библиотеку PDO.Тому кто с ней знаком-будет несколько проще. Её использование защитит вас от такого неприятного, но крайне важного момента,как внедрение SQL-инъекции злоумышленником.
Немного ушли от темы...
Сайт,собранный на стороннем сервере(или даже локальной машине) собирается в деплой и заливается на облако. Само облако может представлять из себя несколько виртуальных машин(иначе зачем мы его используем?!),называемых инстансами. Тоесть запускаем 10 инстансов,заливаем на них деплой.База данных у них общая,IP адрес тоже будет один.
И теперь при обращении к сайту-вы будете попадать на один из инстансов.Таким образом нагрузка будет распределена и сайт будет выдерживать высокие нагрузки.