В последнее время все чаще приходится сталкиваться с неправильными
мнением относительно использования Open Source на базе Windows Azure.
Будь то вопросы на мероприятии, или обсуждение на форуме периодически
возникают мифы о платформе Windows Azure, самые популярные, на мой
взгляд, я развею:
Миф 1: Windows Azure не поддерживает Open Source.
Этот миф я слышу довольно часто. Windows Azure поддерживает большое и
постоянно растущее количество приложений с открытым кодом, систем и
языков. Разработчики, работающие в. NET, Java, PHP, Node.js и Python
могут использовать свободно доступные SDK для этих языков, чтобы начать
работу быстро и в полной мере использовать Windows Azure. Не смотря на
то, что с каждым новым обновлением платформы Azure – список
поддерживаемых технологий Open Source увеличивается, — большинство до
сих пор не знает, даже о том, что такие возможности существуют. С полным
списком Open Source технологий можно ознакомиться
здесь.
Рис. 1 – Поддерживаемые Open Source технологии в Windows Azure
Для любителей social coding’а есть приятная возможность разворачивать
свой сайт прямо из репозиториев: CodePlex, Github, Bitbucket, с помощью
Git.
Рис 2. – Git-публикация проекта
Миф 2: Разработка на Java в Windows Azure куда сложней, нежели на .Net.
Это то, что я слышал несколько раз от разработчиков на Java. В очередной
раз услышав такое мнение, я решил сам опробовать развернуть простое
приложение. То, что я слышал, — в корне отличается от того, что я
увидел, развертывание Java-приложения заняло у меня несколько минут
вместе с установкой Eclipse + SDK for WinAzure. Исходники SDK для
Windows Azure находятся в открытом виде, найти их можно на GitHub в
соответствующем разделе.
Да, если у вас уже есть готовый проект, необходимо пересматривать
архитектуру проекта, предусматривать стоимость, масштабируемость,
недостатки, преимущества, специфичные для Windows Azure настройки
(брандмауэры SQL Azure, балансировщики нагрузки и т.д.).
Рис.3 – Публикация проекта из Eclipse
Миф 3: Обеспечив возможность использования Open Source-технологий – Microsoft не выпускает постоянных обновлений.
Windows Azure преследует цель развития платформы в различных
направлениях тем самым не ограничивая разработчика в выборе используемых
технологий. Проанализировав хронологию обновления SDK и Windows Azure
Training Kit я не заметил каких-то особых предпочтений в пользу
конкретных технологий.
Таблица 1. – Последние обновления SDK для различных языков
Как видно из таблицы, с последнего большого обновления платформы Azure в июне, были также обновлены и SDK для разных языков.
Миф 4: В Windows Azure в качестве виртуальных машин можно использовать лишь Windows Server 2008 R2/2012.
Как я уже писал ранее, Azure поддерживает Open Source, и поддерживает
Linux дистрибутивы для использования в качестве виртуальной машины. Не
только поддерживает, но и предлагает такой же простой процесс создания
VM’s на различных ОС, в том числе и под управлением Linux, из галереи
Windows Azure Management Portal. Вы можете создать виртуальную машину
под управлением Linux и получить доступ с помощью клиента SSH, того же
OpenSSH. Для этого потребуется лишь информация с портала управления: имя
хоста и порт.
Рис 4. – Галерея предлагаемых образов для создания VM’s
Миф 5: Недостаток материалов о развертывании и миграции Open Source приложений в облако.
Я сталкивался с этим каждый раз когда читал форумы, и недоумевал. Есть
куча ресурсов и блогов, посвященных созданию приложений в облаке. Вот
лишь некоторые из них:
Миф 6: Трудности с публикацией сайтов в облако.
Публикация приложений из Visual Studio и других IDE (Eclipse, WebMatrix)
сводится лишь к вопросу создания профиля для публикации в котором
необходимо ввести лишь настройки подписки которую вы используете.
Существует также возможность опубликоваться с помощью Git, интересно
будет в особенности тем, кто ведет непрерывную разработку на GitHub,
CodePlex или Bitbucket. Windows Azure позволяет вручную загружать пакет
обновлений для сайта через портал управления, в то время развертывание с
GitHub, CodePlex или Bitbucket проходит в непрерывном процессе, где
Windows Azure будет подтягивать самые последние обновления для вашего
проекта.
Рис. 5 – История публикаций проекта с помощью Git
Развернуться можно и с помощью WebMatrix, достаточно загрузить лишь
профиль настроек — .publishsettings и загрузить его в WebMatrix.
Рис. 6 – Публикация сайта из WebMatrix
Для особо брутальных можно развертывать свои проекты с помощью FTP ;)
Миф 7: В Windows Azure, Microsoft поддерживает лишь SQL Database.
Один из самых забавных мифов которые я встречал. Windows Azure
предоставляет множество служб, помогающих управлять данными в облаке:
- база данных SQL, которую раньше называли базой данных SQL Azure,
позволяет быстро создавать, масштабировать и расширять приложения в
облаке с помощью знакомых средств и технологий Microsoft SQL Server;
- таблицы предоставляют возможности NoSQL по низкой цене для приложений с простыми потребностями к доступу к данным;
- BLOB-объекты обеспечивают недорогое хранилище для таких данных, как видео, аудио и изображения.
Данные, также можно хранить в MySQL (
tutorial), CouchDB, MongoDB (
tutorial) и т.д.
Миф 8: Windows Azure – дорогостоящее облачное решение, где платишь не понятно за что.
Странное утверждение, возможно связанное с тем, что большинство привыкло
платить некоторую фиксированную сумму не затрачивая при этом то
количество ресурсов за которое оплатили. Во-первых, перед тем как
мигрировать на Windows Azure можно посмотреть то, сколько будет стоить
ваш проект – рассчитав полную стоимость проекта, или же каждый сервис в
отдельности.
Рис. 7 – Калькулятор потребляемых ресурсов Windows Azure
Сайты для которых не требуются большие ресурсы можно публиковать
бесплатно (до 10 сайтов), сюда же относятся мобильные сервисы. Если вы
используете несколько платных сервисов, то все затраты можно отследить в
соответствующем меню — управление подпиской. К тому же, если вы только
планируете размещать сервис, — его стоимость можно рассчитать
здесь.
Кроме того, желающие попробовать Windows Azure могут оформить бесплатный
триал на 90 дней. Разработчики имеющие MSDN-подписку могут начать
использовать Windows Azure бесплатно, участники программы BizSpark, также, могут получить
бесплатный доступ к подписке. Для компаний, которые хотят сэкономить предлагается гибкая
система скидок до 32%.
Миф 9: Большинство из популярных протоколов и языков недоступны на Windows Azure.
Windows Azure поддерживает популярные стандарты, протоколы и языки,
включая SOAP, REST, XML, Java, PHP и Ruby. Кроме того, изначально, сама
платформа поддерживает несколько языков, как VB.net, C #, C + + и T-SQL
как часть SQL Azure. Разработчики имеют возможность выбора нескольких
языков для создания своих приложений, в том числе:
- . NET (C # и Visual Basic), C + +
- PHP, Ruby, Python
- Java
Также поддерживается AMQP (Advanced Message Queueing Protocol) –
открытый протокол для передачи сообщений между компонентами системы с
низкой задержкой и на высокой скорости. Поддержка такого протокола
позволяет создавать кросс-платформенные гибридные приложения используя
Service Bus. Приложения могут быть построены из компонентов на различных
языках и работать на различных операционных системах, при этом
беспрепятственно обмениваться структурированными сообщениями.
Все это говорит о том, что разработчики не ограничены в том какие технологии и языки выбирать для своих приложений.
Миф 10: Создание VM’s ограничено лишь теми VHD которые представлены в галереи образов.
В корне не правильное предположение, как я уже говорил, для создания
виртуальной машины в Windows Azure можно выбрать VHD-файл, который
предлагается в галерее, но также можно создать собственный образ и
загрузить его на Windows Azure в виде VHD-файла для этого можно
воспользоваться CSUpload — инструмент командной строки.
Например, летом этого года появилась возможность использовать ALT Linux,
в галерее образов его пока нет, но именно для этого и существует
возможность загрузки собственных VHD-образов.
После создания виртуальной машины можно подключиться – по ssh, vnc или с
использованием putty (Windows). Для подключения потребуются некоторые
сведения перейдите на панель управления виртуальной машиной и в панели
QuickGlance будут все данные для подключения.
Рис. 8 — Настройка подключения к виртуальной машине Linux
О том как подготовить VHD-образ Linux для загрузки в Windows Azure есть отличный
tutorial.