- PVSM.RU - https://www.pvsm.ru -

Как управлять облачными ресурсами с помощью Python? Поднимаем кластеры по запросу через несколько строк кода

Библиотека Simple Azure [1] позволяет управлять облачными ресурсами, в том числе созданием, управлением и удалением виртуальных машин в облачном окружении. Вы можете использовать данную библиотеку для любых целей: от развертывания песочницы для целей Dev&Test до размещения и управления решениями в промышленной эксплуатации.

С помощью Simple Azure вы можете легко поднять ipython notebook и кластеры ipython в облачном окружении, развернуть готовые виртуальные машины на выбор из сотен представленных в каталоге VMDepot [2].

Ниже представлено краткое введение и примеры использования 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 [3] на базе 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

В этом руководстве [4] описывается как за несколько шагов развернуть в облаке кластер 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)

Дополнительная информация

Еще больше руководств вы можете найти по следующей ссылке [5]. Тонкости установки и настройки библиотеки описаны тут [6]. Вы можете получить исходные коды библиотеки и присоединиться к разработке проекта на GitHub [7]. Свежие новости и информацию о проекте вы всегда может найти на официальном сайте Simple Azure [1].

Дополнительные ссылки

Автор: XaocCPS

Источник [17]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/python/64380

Ссылки в тексте:

[1] Simple Azure: http://simple-azure.readthedocs.org/en/latest/index.html#

[2] каталоге VMDepot: http://vmdepot.msopentech.com/

[3] Azure Data Science Core: http://vmdepot.msopentech.com/Vhd/Show?vhdId=2440&amp;version=8730

[4] руководстве: http://nbviewer.ipython.org/github/lee212/simpleazure/blob/master/ipynb/Tutorial%20-%20Enabling%20IPython%20cluster%20with%20Simple%20Azure.ipynb

[5] следующей ссылке: http://simple-azure.readthedocs.org/en/latest/tutorial.html

[6] описаны тут: http://simple-azure.readthedocs.org/en/latest/installation.html

[7] на GitHub: https://github.com/lee212/simpleazure/blob/master/docs/index.rst

[8] Попробовать Azure: http://aka.ms/azure_trial_free_rus?id=1

[9] виртуальной академии Microsoft: http://aka.ms/gomvarus?id=1

[10] Разработка приложений на платформе Microsoft: http://www.microsoftvirtualacademy.com/training-courses/app-development-on-microsoft-platform-rus

[11] Обзор безопасности Microsoft Azure и SQL Azure Databases: http://www.microsoftvirtualacademy.com/training-courses/microsoft-azure-security-overview-and-sql-azure-databases-rus

[12] Программное управление сервисами Azure: http://www.microsoftvirtualacademy.com/training-courses/service-management-windows-azure-rus

[13] Погружение в Azure для разработки приложений и инфраструктурных сервисов: http://www.microsoftvirtualacademy.com/training-courses/windows-azure-for-app-development-and-infrastructure-services

[14] Введение в разработку современных приложений с Azure для начинающих: http://www.microsoftvirtualacademy.com/training-courses/introducing-to-app-development-for-windows-azure-rus

[15] курсы по разработке в облаке Azure: http://www.microsoftvirtualacademy.com/product-training/product-windows-azure-ru

[16] бесплатные курсы MVA: http://aka.ms/gomvarus

[17] Источник: http://habrahabr.ru/post/229083/