Статьи

Облачные службы Windows Azure и виртуальные сети

Windows Azure исторически была чистым PaaS-решением с модулем развертывания, так как вычислительная служба была размещенной службой, включающей необязательную веб-роль и ноль или более рабочих ролей. Каждая роль развернута как один или несколько экземпляров виртуальной машины. Размещенный сервис формирует границу безопасности, и единственный способ получить доступ к экземплярам роли — через конечную точку общего входа с балансировкой нагрузки. Экземпляры ролей внутри размещенной службы могут обмениваться данными напрямую, используя внутренние конечные точки, что обеспечивает меньшую задержку, поскольку они не проходят через балансировщик нагрузки Windows Azure.

В июне 2012 года Microsoft объявила о предварительном просмотре виртуальных машин Windows Azure, предложения IaaS и виртуальных сетей Windows Azure. Это также принесло изменение имени от размещенной службы к облачной службе для подразделения развертывания вычислений. Существует небольшая путаница в использовании облачных сервисов, потому что для максимально простого развертывания одной виртуальной машины облачная служба создается неявно при развертывании одной виртуальной машины IaaS. Эта облачная служба становится очевидной только при определенных обстоятельствах, таких как удаление виртуальной машины или ассоциация второй виртуальной машины с первой.

Microsoft одновременно анонсировала предварительный просмотр веб-сайтов Windows Azure (WAWS), который предоставляет масштабируемое решение для веб-хостинга высокой плотности. Акцент в WAWS делается на простоте развертывания, что намного лучше в WAWS, чем в веб-ролях PaaS. Однако такая простота развертывания сопряжена с большими ограничениями развертываний, чем при использовании традиционных веб-ролей PaaS.

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

(Удивительный) учебный комплект по платформе Windows Azure содержит практическую лабораторную работу (веб-сайты Windows Azure и виртуальные машины с использованием ASP.NET и SQL Server), которая использует веб-сайт Windows Azure в качестве внешнего интерфейса для виртуальной машины, на которой размещается SQL Server. Этот HOL использует общедоступную конечную точку для виртуальной машины SQL Server, что означает, что в общедоступном Интернете имеется необработанная конечная точка SQL Server.

Hanu Kommalapati уже опубликовал интересный пример , который хозяйничает в Кассандру кластер в 3 -х виртуальных машинах с передним концом , предоставленным другой виртуальной машиной под управлением веб — сервер , разработанный в Node.js . В этом примере также используется общедоступная конечная точка для кластера Cassandra, что, следовательно, означает, что в общедоступном Интернете имеется необработанная конечная точка Cassandra.

Виртуальные сети

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

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

Первый пример, описанный ранее — от внешнего интерфейса WAWS до внутреннего сервера SQL Server — не может использовать этот метод, поскольку веб-сайт WAWS не может быть добавлен в виртуальную сеть. Однако пример сработал бы, если бы интерфейсный веб-сайт размещался на веб-роли PaaS, расположенной в той же виртуальной сети, что и внутренняя виртуальная машина SQL Server. Последнему не потребуется общедоступная конечная точка, ему нужен только правильно настроенный межсетевой экран. Во втором примере может использоваться этот метод, облачная служба Node.js имеет общедоступную конечную точку, а кластер Cassandra не имеет общедоступной конечной точки.

Очень важным моментом является то, что Виртуальная сеть ДОЛЖНА быть создана до того, как в ней будут созданы какие-либо облачные службы, поскольку после создания облачной службы ее невозможно перенести в виртуальную сеть.

Майкл Уошам описывает эту технику в одном из превосходных постов в своем блоге.

Создание виртуальной сети

Виртуальная сеть создается с помощью элемента « Сети» в предварительном просмотре Windows Azure Portal. Это вызывает мастера, который запрашивает следующую информацию:

Страница виртуальных сетей запрашивает следующую информацию:

  • название
  • Affinity Group

Страница адресного пространства и подсетей запрашивает следующую информацию:

  • Адресное пространство (для сети) в формате abcd / x. Например:

    • 10.10.0.0/16
  • Адресное пространство для подсетей в формате abcd / x. Например:

    • FrontEnd: 10.10.10.0/24
    • BackEnd: 10.10.11.0/24

В Серверы DNS и локальные сети страница может быть пропущена через без предоставления какой — либо информации.

После создания виртуальной сети ее конфигурацию можно просмотреть следующим образом:

samplenetwork

Добавление виртуальной машины (облачной службы IaaS) в виртуальную сеть

Облачная служба IaaS добавляется в виртуальную сеть, создавая ее из галереи и указывая соответствующую виртуальную сеть, когда ее запрашивают для Region / Affinity Group / Virtual Network . Соответствующая подсеть выбирается на странице параметров виртуальной машины в мастере следующим образом:

VMOptions

После создания виртуальной машины для доступа к ней можно использовать удаленный рабочий стол. Затем приложение Window Firewall с расширенной безопасностью можно использовать для изменения брандмауэра по мере необходимости.

Добавление облачной службы PaaS в виртуальную сеть

Облачная служба PaaS добавляется в виртуальную сеть путем добавления раздела NetworkConfiguration в его файл конфигурации службы. Это расположено после конца раздела Роли. Например:

<NetworkConfiguration>
  <VirtualNetworkSite name="SampleNetwork" />
  <AddressAssignments>
    <InstanceAddress roleName="ContactManager.Web">
      <Subnets>
        <Subnet name="FrontEnd" />
      </Subnets>
    </InstanceAddress>
  </AddressAssignments>
</NetworkConfiguration>

 

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

Резюме

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