Добрый день, друзья ! Сегодня мы с Вами подробно познакомимся с технологией Windows Azure Connect. Начнем по старинке с определения. Итак, технология Windows Azure Connect позволяет объединять на IP-уровне наши облачные сервисы (роли) с удаленными компьютерами, работающими вне датацентров Microsoft, в единую виртуальную сеть. С помощью этой штуковины мы получаем инструмент, при помощи которого можно связать разбросанные по интернету физические машины в одну единую сеть на очень контролируемой и безопасной основе. На диаграмме чуть ниже мы можем увидеть ключевые особенности Azure Connect.
Как мы видим Windows Azure Connect создает логическую виртуальную сеть, состоящую из 2-х типов сущностей: Ролевых групп и Машинных групп. Ролевая группа содержит в себе набор ролей, запущенных в клауде, для которых включена возможность соединения с внешними машинами посредством Azure Connect. Машинная группа – это коллекция внешних машин, которая соединена с ролями в облаке посредством установки специального программного обеспечения под названием Windows Azure Connect Endpoint Software. Одна внешняя машина может принадлежать лишь одной машинной группе – это ограничение текущей версии коннекта. Кроме того существует целый ряд других ограничений и правил, с которыми стоит познакомиться:
В приложении находится одна страница Default.aspx, на которой выводится список всех музыкальных треков из таблицы Tracks. Для этих целей мы добавили в разметку EntityDataSource и GridView
Давайте также взглянем одним глазом на скудный codebehind страницы.
После запуска приложения на локальном эмуляторе получим список всех музыкальных треков в табличном виде.
Для того, чтобы портировать приложение в облако необходимо выполнить ряд действий. Во-первых необходимо получить активационный токен. Делается это на портале разработчика в разделе Virtual Network.
После выбора пункта меню “Get Activation Token” откроется модальное окошко, в котором появится необходимый нам активационный токен. После копирования токена идем в свойства нашей Веб-роли и во вкладке Virtual Network ставим галочку “Activate Windows Azure Connect” и в текстовое поле вставляем скопированную ранее строку. Следующим шагом необходимо развернуть приложение в облаке. Делается это стандартными для Windows Azure средствами. В моем случае был выбран простейший способ - путем загрузки пакета. Как только приложение инициализируется и запустится в облаке мы увидим его в ветке “Groups and Roles”.
Сейчас приложение не может получить доступ к локальном SQL серверу, поэтому следует приступить к объединению роли с локальной машиной. Для этого в первую очередь необходимо установить специальное программное обеспечение, оно становится доступным на скачивание при клике на специальную кнопку “Install Local Endpoint”.
После скачивания запускаем процесс инсталляции на машине с SQL-сервером и терпеливо ждем успешного завершения.
Как только установка успешно завершится мы увидим на портале машину с SQL сервером.
На данный момент у нас есть все реквизиты для объединения машин. Поэтому сделаем последний шаг, а именно создадим новую группу.
В открывшемся окне необходимо будет задать название создаваемой группы, опционально ее описание, а также входящие в нее удаленные машины и облачные роли, которые мы хотим объединить. Например, в моем случае получилась вот такая схема.
Как только группа будет создана, запущенное в клауде приложение перезапустится в течении минут 5-10 и мы сможем посмотреть на результат. Для этого откроем приложение в браузере и посмотрим, что получилось.
А получилось то чего мы и добивались. Веб-роль получила доступ удаленному SQL серверу и отобразила информацию на странице. Как видим Windows Azure Connect просто великолепная технология, позволяющая создавать виртуальные сети и объединять в них внутрисистемные для облака роли с удаленными машинами, которые могут находится в различных уголках земного шара. Спасибо за внимание ! Пишите комментарии, задавайте вопросы, с удовольствием буду на них отвечать :)
Как мы видим Windows Azure Connect создает логическую виртуальную сеть, состоящую из 2-х типов сущностей: Ролевых групп и Машинных групп. Ролевая группа содержит в себе набор ролей, запущенных в клауде, для которых включена возможность соединения с внешними машинами посредством Azure Connect. Машинная группа – это коллекция внешних машин, которая соединена с ролями в облаке посредством установки специального программного обеспечения под названием Windows Azure Connect Endpoint Software. Одна внешняя машина может принадлежать лишь одной машинной группе – это ограничение текущей версии коннекта. Кроме того существует целый ряд других ограничений и правил, с которыми стоит познакомиться:
- Ролевая группа может быть присоединена к машинной группе либо к нескольким машинным группам (на рисунке выше можно заметить, что основная ролевая группа соединена одновременно с 2-мя машинными группами)
- Участники одной ролевой группы не имеют соединения между собой, а также с другими ролевыми группами. Это сделано по причине того, что среда Windows Azure предлагает более удобные и прогрессивные средства соединения облачных сервисов.
- Машинные группы в свою очередь могут объединятся как с ролевыми группами так и с другими машинными.
- Машинные группы имеют свойство под названием “interconnected” – если оно установлено то все машины группы могут взаимодействовать друг-с-другом.
В приложении находится одна страница Default.aspx, на которой выводится список всех музыкальных треков из таблицы Tracks. Для этих целей мы добавили в разметку EntityDataSource и GridView
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebRole1._Default" %> <asp:content id="HeaderContent" contentplaceholderid="HeadContent" runat="server"> </asp:content> <asp:content id="BodyContent" contentplaceholderid="MainContent" runat="server"> Datasource: <asp:Label runat="server" ID="Datasource"></asp:Label><br /> <% foreach (var ip in Ips) { %> Address: <%= ip %> <br /> <%} %> <br /> <asp:entitydatasource id="MainDataSource" runat="server" where="it.TrackId < 100" enableflattening="False" connectionstring="name=ChinookEntities" defaultcontainername="ChinookEntities" entitysetname="Track"></asp:entitydatasource> <asp:gridview runat="server" datakeynames="TrackId" autogeneratecolumns="False" datasourceid="MainDataSource"> <columns> <asp:boundfield sortexpression="TrackId" readonly="True" headertext="TrackId" datafield="TrackId" /> <asp:boundfield sortexpression="Name" headertext="Name" datafield="Name" /> <asp:boundfield sortexpression="AlbumId" headertext="AlbumId" datafield="AlbumId" /> <asp:boundfield sortexpression="MediaTypeId" headertext="MediaTypeId" datafield="MediaTypeId" /> <asp:boundfield sortexpression="GenreId" headertext="GenreId" datafield="GenreId" /> <asp:boundfield sortexpression="Composer" headertext="Composer" datafield="Composer" /> <asp:boundfield sortexpression="Milliseconds" headertext="Milliseconds" datafield="Milliseconds" /> <asp:boundfield sortexpression="Bytes" headertext="Bytes" datafield="Bytes" /> <asp:boundfield sortexpression="UnitPrice" headertext="UnitPrice" datafield="UnitPrice" /> </columns> </asp:gridview> </asp:content>
Давайте также взглянем одним глазом на скудный codebehind страницы.
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Net; namespace WebRole1 { public partial class _Default : System.Web.UI.Page { protected IPAddress[] Ips { get; set; } protected void Page_Load(object sender, EventArgs e) { using (var context = new ChinookEntities()) { var datasource = context.Connection.DataSource; datasource = datasource.Remove(datasource.IndexOf('\\')); if (datasource == ".") { datasource = "localhost"; } Ips = Dns.GetHostEntry(datasource).AddressList; Datasource.Text = datasource; } } } }
После запуска приложения на локальном эмуляторе получим список всех музыкальных треков в табличном виде.
Для того, чтобы портировать приложение в облако необходимо выполнить ряд действий. Во-первых необходимо получить активационный токен. Делается это на портале разработчика в разделе Virtual Network.
После выбора пункта меню “Get Activation Token” откроется модальное окошко, в котором появится необходимый нам активационный токен. После копирования токена идем в свойства нашей Веб-роли и во вкладке Virtual Network ставим галочку “Activate Windows Azure Connect” и в текстовое поле вставляем скопированную ранее строку. Следующим шагом необходимо развернуть приложение в облаке. Делается это стандартными для Windows Azure средствами. В моем случае был выбран простейший способ - путем загрузки пакета. Как только приложение инициализируется и запустится в облаке мы увидим его в ветке “Groups and Roles”.
Сейчас приложение не может получить доступ к локальном SQL серверу, поэтому следует приступить к объединению роли с локальной машиной. Для этого в первую очередь необходимо установить специальное программное обеспечение, оно становится доступным на скачивание при клике на специальную кнопку “Install Local Endpoint”.
После скачивания запускаем процесс инсталляции на машине с SQL-сервером и терпеливо ждем успешного завершения.
Как только установка успешно завершится мы увидим на портале машину с SQL сервером.
На данный момент у нас есть все реквизиты для объединения машин. Поэтому сделаем последний шаг, а именно создадим новую группу.
В открывшемся окне необходимо будет задать название создаваемой группы, опционально ее описание, а также входящие в нее удаленные машины и облачные роли, которые мы хотим объединить. Например, в моем случае получилась вот такая схема.
Как только группа будет создана, запущенное в клауде приложение перезапустится в течении минут 5-10 и мы сможем посмотреть на результат. Для этого откроем приложение в браузере и посмотрим, что получилось.
А получилось то чего мы и добивались. Веб-роль получила доступ удаленному SQL серверу и отобразила информацию на странице. Как видим Windows Azure Connect просто великолепная технология, позволяющая создавать виртуальные сети и объединять в них внутрисистемные для облака роли с удаленными машинами, которые могут находится в различных уголках земного шара. Спасибо за внимание ! Пишите комментарии, задавайте вопросы, с удовольствием буду на них отвечать :)
Комментариев нет:
Отправить комментарий