Вы уже знаете, что мы запустили новый проект, посвященный проектам с открытым исходным кодом — linuxloves.ms. Подробности про проект вы можете найти в нашей публикации на Хабре, которая уже вызвала ожесточенный флейм :-).


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

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

Рассмотрим, как любой пользователь Azure может развернуть стек Django за несколько минут.

Поиск Django в Azure Marketplace


Подразумевается, что у вас уже есть учетная запись Microsoft Azure. Если это не так, то воспользуйтесь бесплатным триал-предложением по этой ссылке.
Перейдите на портал Microsoft Azure по ссылке http://portal.azure.com, вы откроете панель управления облачными мощностями Microsoft Azure, предоставленными вам по запросу (рисунок 1).

image
Рис.1 – Портал Microsoft Azure

Нажмите на кнопку «Создать» для добавления нового компонента в свою учетную запись. В нашем случае мы намереваемся добавить виртуальную машину со стеком Django. Введите в строку поиска Django. Вы получите полный список доступных в Azure Marketplace конфигураций Django на выбор (рисунок 2).

image
Рис.2. – Список Django в Azure Marketplace

Выберите Django Stack и в новом информационном окне нажмите кнопку «Создать». Теперь вы перейдете к непосредственному созданию виртуальной машины, выбранной из Azure Marketplace (рисунок 3).

image
Рис.3. – Создание виртуальной машины

Создание VM с Django


Чтобы создать виртуальную машину, в нашем случае с Django на борту, необходимо указать ряд параметров. В первую очередь ввести название виртуальной машины. Затем имя пользователя (администратора) и пароль доступа. Выбрать подписку Azure, если у вас их несколько.

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

Последний параметр, который нужно указать на первом шаге – расположение виртуальной машины – по существу выбор одного из ЦОД Microsoft Azure, которые расположены по всему миру. Ближайшие к России ЦОД – это Северная или Западная Европа. Выберите один из них (рисунок 4).

image
Рис.4. – Параметры первого шага создания виртуальной машины

Нажмите «ОК» после ввода всех параметров. На втором шаге вам предложат выбрать размер виртуальный машины. По умолчанию будут представлены несколько типов машин, которые рекомендуются для данного типа решения. Но вы всегда можете выбрать другой размер нажав на «Просмотреть все» (рисунок 5).

image
Рис.5. – Выбор размера виртуальной машины

Я предлагаю выбрать вам размер «A1 Базовый» как подходящий для тестирования. После выбора нажмите кнопку «Выбрать», чтобы перейти к третьему шагу.

На третьем шаге производится тонкая настройка развертывания. Здесь все параметры можно оставить по умолчанию и вообще ничего не менять. Но если требуется, что вы можете выбрать SSD-хранилище для VM, настроить виртуальную сеть, безопасность, включить мониторинг, создать группу доступности для отказоустойчивой работы VM (рисунок 6).

image
Рис.6. – Тонкие настройки развертывания VM

Нажмите «ОК» после тонкой настройки для того, чтобы перейти к финальным шагам и запуску виртуальной машины.

Вы получите информационное окно с перечислением ваших настроек (рисунок 7).

image
Рис.7. – Информационное окно с настройками

Ознакомьтесь с информацией и нажмите «ОК» для того чтобы перейти к приобретению виртуальной машины для своей подписки.
Для информации. Приобретение в данном случае означает создание VM с бесплатным ПО на нем. В Azure Marketplace есть продукты, которые могут потребовать приобретения лицензии на них.
Прочитайте информацию о приобретении (рисунок 8). В нашем случае содержание виртуальной машины стоит 0 рублей. Стоимость выбранной нами самой VM, которую предоставить Microsoft Azure – около 3 р. в час.

image
Рис.8. – Приобретение виртуальной машины

Нажмите кнопку «Приобретение» для того чтобы запустить процесс развертывания вашей виртуальной машины с Django на борту.

Вы увидите информационное сообщение «Развертывание начато…» (рисунок 9).

image
Рис.9. – Развертывание начато

Как только VM будет готова вы получите еще одно информационное сообщение, а на портале откроется панель управления созданной VM (рисунок 10). В общем случае, создание виртуальной машины занимает несколько минут.

image
Рис.10. – Панель управления виртуальной машиной

Поздравляю! Вы развернули свою машину с готовым стеком Django.

Управление развернутой виртуальной машиной


Для того чтобы убедиться в работоспособности виртуальной машины первым делом мы можем перейти по ее общедоступному адресу.

Вы можете найти общедоступный адрес в заголовке панели администрирования. В моем случае это http://40.69.45.8/. Перейдя по этому адресу, мы увидим стандартное приветствие (рисунок 11).

image
Рис.11 – Стандартное приветствие от запущенной в Azure машины с Django

Данная виртуальная машина была подготовлена компанией Bitnami – известным сборщиком готовых окружений. Чтобы увидеть собственно Django-приложение вы можете нажать на «Access my application» (рисунок 12).

image
Рис.12. – Запущенное приложение Django

Вам может быть интересно то, как получить FQDN-адрес для своей машины в виде доменного имени. По умолчанию для VM адрес не сопоставляется, но его можно легко получить. Для этого перейдите в настройки VM (Все параметры) на панели конфигурации. Затем выберите пункт «Конфигурация» и в панели настройки укажите наименование для вашей VM, которое будет включено в FDQN-путь (рисунок 13).

После сохранения настроек вы сможете перейти по ссылке, которая будет представлена в виде (мой случай) http://vyudjango.northeurope.cloudapp.azure.com/.

image
Рис.13. – Добавление FDQN-пути для виртуальной машины

Этот же адрес вы теперь сможете использовать для доступа по SSH к вашей виртуальной машине (рисунок 14), например:

SSH vyunev@vyudjango.northeurope.cloudapp.azure.com

где vyunev – имя пользователя (администратора), которое вы указали при создании VM.

Или просто используя адрес в любимом инструменте (рисунок 13).

image
Рис.14. – Подключение к виртуальной машине по SSH

Теперь вы можете настроить вашу VM с Django так как душа пожелает!

Заключение


Мы рассмотрели простой пример того, как с помощью Azure и площадки Azure Marketplace за считанные минуты можно развернуть окружение Django и получить доступ к готовой рабочей виртуальной машине.

Azure и Azure Marketplace предлагают запустить любые решения построенные на любой технологии, в том числе для Linux и Windows. Вот лишь краткий список того, что вы можете найти: Red Hat Enterprise Linux, Oracle Linux, CentOS, CoreOS, Ubuntu, Suse, WordPress, Moodle, MEAN, Jboss, Redmine, SEO Panel, Parse, Git, GitLab, Django, ModX, Memcached, LAMP Stack, Jenkins, Node.js, SugarCRM, Ruby Stack, Ghost, Subversion, ActiveMQ, Nginx Stack, Solr, Tomcat, JRuby, OwnCloud, MySQL, Drupal, MongoDB, Piwik, Dolibarr, LAAP Stack, OpenProject, Plone, eXo, Mahara, Zurmo, RoundCube, Mautic, ThinkUp, Prestashop, Tracks, phpBB, eZ Publish, Joomla…

Продолжайте использовать Azure и размещать в облаке свои opensource-решения. Поможет вам в этом подробный раздел с документацией и ресурсами по этой ссылке.
Какие окружения вам наиболее интересны при развертывании в облаке?

Проголосовало 82 человека. Воздержалось 30 человек.

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

Комментарии (12)


  1. kolyaflash
    19.04.2016 20:45
    +1

    off topic: Надеюсь, эта волна экспансии Microsoft не зайдет слишком далеко…


  1. Terras
    20.04.2016 01:22

    Задам немного глупые вопросы:

    1) Это реализация для разработки или боевой машина, на которой можно вывести проект в сеть?
    2) Если это боевая реализация, то сколько стоит это чудо в месяц?

    Делается сейчас ряд проектов на Django, используются обычные VM-сервера от Reg.ru. Много времени уходит на настройку через консоль и прочее. Если тут все проще, то есть, конечно смысл.


    1. XaocCPS
      20.04.2016 11:30

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

      Цены представлены здесь, начинаются от 1 рубля в час. Тарификация в Azure — поминутная. Платите только за те минуты, когда VM работает.


  1. brooth
    20.04.2016 11:27
    -1

    В Microsoft-е можно пользоваться хромом? )


  1. ZaEzzz
    20.04.2016 11:27

    Использую Django на Azure, но даже в мысли не было заходить на маркет. Развертывание Debian и установка нужных мне компонентов и душе милее, и более надежно. К примеру, я не знаю какой веб-сервер был выбран и как он настроен.

    P.S. В блоге компании Microsoft скриншоты Chrome — это так мило))


    1. Terras
      20.04.2016 12:06

      Кажется, кого-то уволили =)


    1. ZaEzzz
      20.04.2016 21:59
      +1

      Любопытство одержало победу.
      Машинка на развертывание странная — выбрал самую слабую конфигурацию (750Mb RAM) и после старта система уже использует своп-раздел.
      Из самого стека установлены Django + PostgreSQL + Apache(mod-wsgi) — лично у меня вопрос вызывает Apache, так как мне по душе использовать Nginx(uWSGI).

      Ubuntu 14.04 с включенными опциями:
      CONFIG_RCU_NOCB_CPU
      CONFIG_RCU_NOCB_CPU_ALL
      CONFIG_RCU_STALL_COMMON
      CONFIG_RCU_USER_QS
      А это значит, что в топе у нас море процессов имеют имя вида rcuos/N

      Дополнительное ПО, которое меня смутило:
      MySQL — и он не для Django. Используется иными сервисами, запущен.
      Некий agent.bin — запускается по крону и отправляет какую-то статистику (metrics=osInfo glibcInfo uptime) на https://stats.bitnami.org/api/1_0
      Среди питоновских пакетов много мусора, который не факт, что будет использован, к примеру boto (Amazon Web Services Library).

      Сопровождать эту виртуальную машину будет затруднительно, по крайней мере на первый беглый взгляд. К примеру:
      1 — Конфиг-файл апача для джанги находится по адресу /opt/bitnami/apps/django/conf/django.conf и содержит следующую строку:
      <Directory '/opt/bitnami/apps/django/lib/python2.7/site-packages/Django-1.8.9-py2.7.egg/django/contrib'>
      Согласитесь, расположение немного неожиданное. Да, сам Apache находится по адресу /opt/bitnami/apache2
      2 — Все сервисы (apache, posgresql, mysql...) запускаются скриптом /etc/init.d/bitnami — нельзя просто так взять и сделать service mysql restart

      Есть так же лишние файлы конфигураций для Apache (для примера, стандартная index страница bitnami) — это значит, что все равно придется копаться в конфигах, которые к тому же находятся не в привычных местах. В общем придется не настраивать несколько пакетов, а избавляться от предустановленного мусора.

      Появилось-ли у меня желание посмотреть на еще что-то из Azure Marketplace? Скорее нет, наоборот утвердился во мнении, что это не надо. По крайней мере для такой простой задачи как настройка веб-сервера с Django.


      1. XaocCPS
        21.04.2016 23:59

        Любая VM сегодня ставится в итоге из Azure Marketplace :-) ну и ваше собственное решение может быть там же, продаваться на 80+ стран.


        1. ZaEzzz
          22.04.2016 05:51

          Заходим на Azure Marketplace, пытаемся найти FreeBSD и находим… KAV for Linux File Server.
          Скорее всего вы хотели сказать большинство машин ставится с маркета?

          Мне этот подход не нравится так же, как и подход запуска совсем сторонних Docker-контейнеров. В конкретном случае с «Django-stack» меня никто не спрашивал, хочу-ли я отсылать статистику, согласен-ли я это делать — она просто стартует по крону.


    1. atikhonov
      21.04.2016 18:19

      еще и в инкогнито;)


  1. ApeNN
    20.04.2016 11:27

    Пост ни о чём. Зачем описывать тривиальный сценарий: «Как следовать инструкциям и нажимать кнопку Далее»?


  1. borodenkov
    20.04.2016 19:00

    так круто, побольше таких статей!