Как управлять облачными ресурсами с помощью Python? Поднимаем кластеры по запросу через несколько строк кода
Библиотека Simple Azure позволяет управлять облачными ресурсами, в том числе созданием, управлением и удалением виртуальных машин в облачном окружении. Вы можете использовать данную библиотеку для любых целей: от развертывания песочницы для целей Dev&Test до размещения и управления решениями в промышленной эксплуатации.
С помощью Simple Azure вы можете легко поднять ipython notebook и кластеры ipython в облачном окружении, развернуть готовые виртуальные машины на выбор из сотен представленных в каталоге VMDepot.
Ниже представлено краткое введение и примеры использования Simple Azure для простых задач и задачи развертывания кластера IPython в облаке.
Установка
$ pip install simpleazure
$ simpleazure-cluster start mycluster
Развертывание виртуальных машин
from simpleazure.simpleazure import SimpleAzure as saz
azure = saz()
azure.get_config()
azure.create_vm()
Видео:
Смена виртуальной машины на выбор:
azure.set_image(label="Ubuntu Server 12.04.2 LTS")
Размещение нескольких машин
azure = saz()
azure.get_config()
azure.create_cluster(num=5)
my-cluster-vm-0-87412
{'request_id': '88c94c00288d42acaf877783f09c4558'}
my-cluster-vm-1-61293
{'request_id': 'abfd563c2c4f4926872b6b1dba27a93b'}
my-cluster-vm-2-96085
{'request_id': '29b55f6cb5e94cfdbf244a7c848c854d'}
my-cluster-vm-3-46927
{'request_id': 'b1a3446ebafe47a295df4c9d1b7d743c'}
Размещение машин из каталога сообщества VMDepot
В этом примере кода из каталога сообщества VMDepot выбирается виртуальная машина Azure Data Science Core на базе OpenSUSE с настроенным окружением для работы с большими данными, HPC и следующими пакетами: cython, ipython, matplotlib, networkx, nltk, nodejs, numpy, pandas, pytables, redis, scikit-image, scikit-learn, scipy, statsmodels, sympy.
azure = saz()
azure.get_config()
q = azure.get_registered_image(name="Azure-Data-Science-Core")
azure.set_image(image=q)
azure.create_vm()
Поддержка командной строки
Simple Azure поддерживает команды в шелле Linux. Например, вы можете создать кластеры виртуальных машин типа StarCluster следующей командой:
$ simpleazure-cluster start mycluster
Включение кластера IPython
В этом руководстве описывается как за несколько шагов развернуть в облаке кластер IPython.
Шаг первый:
from simpleazure.simpleazure import SimpleAzure as saz
azure = saz()
azure.get_config()
Шаг второй – создание трех узлов для кластера с ADSC:
adsc = azure.get_registered_image(name="Azure-Data-Science-Core")
azure.set_image(image=adsc)
azure.set_location("West Europe")
azure.create_cluster(3)
Шаг третий – импорт плагина IPython:
from simpleazure.plugin import ipython
ipy = ipython.IPython()
Настройка SSH:
ipy.set_username(azure.get_username())
ipy.set_private_key(azure.get_pkey())
Шаг четвертый – настройка узлов master и engine:
from simpleazure import config
master = config.get_azure_domain(azure.results['master'])
engines = [ config.get_azure_domain(x) for x in azure.results.keys()]
Привязка имен в плагине IPython:
ipy.set_master(master)
ipy.set_engines(engines)
Установка SSH-подключения к узлам:
ipy.init_ssh()
ipy.connect_nodes()
Создания профиля IPython:
ipy.create_profile()
Запуск IPController на master:
ipy.run_ipcontroller()
Натсройка узлов engine:
ipy.copy_pkey_to_nodes() # <- Temporary function to distribute id_rsa private key to node(s)
ipy.copy_json2engines()
Последний шаг – исполнение ipengine на каждом узле engine, чтобы они начали взаимодействие с master:
ipy.run_ipengine()
ipy.apply_ipcluster(azure)
Дополнительная информация
Еще больше руководств вы можете найти по следующей ссылке. Тонкости установки и настройки библиотеки описаны тут. Вы можете получить исходные коды библиотеки и присоединиться к разработке проекта на GitHub. Свежие новости и информацию о проекте вы всегда может найти на официальном сайте Simple Azure.
Дополнительные ссылки
Попробовать Azure бесплатно на 30 дней
Пройти обучающие курсы на виртуальной академии Microsoft (MVA)
- Разработка приложений на платформе Microsoft
- Обзор безопасности Microsoft Azure и SQL Azure Databases
- Программное управление сервисами Azure
- Погружение в Azure для разработки приложений и инфраструктурных сервисов
- Введение в разработку современных приложений с Azure для начинающих
- или курсы по разработке в облаке Azure
- или многие другие бесплатные курсы MVA!