Облака Облачные вычисления стали популярными среди масс примерно полтора-два года назад, и сервис сыграл в этом огромную роль.
Постепенно активность дискуссий по поводу этой технологии только возрастала, появлялись сторонники и противники, считающие, что это всего лишь очередной модный тренд и не более того; некоторые начали экспериментировать и использовать облачные вычисления для решения своих проблем.
Довольно долгое время у EC2 не было многих альтернатив, поэтому о проблемах миграции от одного облачного провайдера к другому мало кто задумывался.
Однако в последний год стало появляться все больше компаний, предоставляющих облачные услуги надлежащего качества по доступной цене.
На данный момент EC2, пожалуй, все еще остается лидером, но появилось еще несколько крупных игроков — думаю, такие имена, как Rackspace и GoGrid, на устах у всех, кто хотя бы поверхностно интересуется темой.
Помимо них, сейчас на рынке активно действуют еще как минимум десяток компаний, предлагающих аналогичные услуги.
Такое разнообразие уже заставляет нас более внимательно относиться к вопросу выбора провайдера и обдумывать возможный план миграции.
Зачем нужен libcloud?
Неотъемлемой частью облачных сервисов является наличие API, обычно RESTful или REST-подобного, который позволяет полностью контролировать облачную инфраструктуру.К сожалению, почти каждый провайдер создает свой API, несовместимый с существующими, что очень неудобно, если вы решите перейти с одного сервиса на другой, и создает дополнительную сложность, если вам приходится поддерживать несколько разных сервисов одновременно.
Когда libcloud зародился в компании Облачный удар (который, кстати, недавно купила компания Rackspace), целью было не только создать инструмент для работы с облаками на Python, но и сформулировать видение того, каким должен (может) быть обобщенный интерфейс для работы с облаками.
, как со стороны API сервисов, так и со стороны клиента при работе с разными платформами.
Например, параллельно с версией Python разрабатывается версия Java, принцип работы и концепции абсолютно такие же.
Однако я не буду углубляться в философские аспекты, а продемонстрирую, что позволяет делать libcloud.
Давайте начнем
Установка и настройка
Процесс установки вряд ли кому-то покажется новым:Второй подготовительный этап — активация API и получение ключа и пароля.easy_install apache-libcloud
Эта процедура различается у разных поставщиков облачных услуг и обычно описана в их документации.
Например, в случае с ракспейсом это выглядит так: заходим в Manage.rackspacecloud.com , затем в меню Ваша учетная запись -> Доступ к API .
Терминология и интерфейс
libcloud использует следующую терминологию:- Но да — экземпляр одного виртуального сервера.
Провайдеры обычно называют его просто сервером
- Размер узла — физический размер узла.
Характеристики различаются у разных провайдеров, обычно сюда входит размер оперативной памяти, количество ядер процессора, а иногда и размер дискового пространства.
- Изображение узла — образ операционной системы, который используется для загрузки узла
список — получить актуальный список объектов.
Для узлов поддерживается больше операций: их можно создавать ( создавать ), удалить ( разрушать ), и перегрузка ( перезагрузить ).
Просмотр доступных размеров и изображений узлов
Начнем с простого примера: подключаемся к сервису и получаем список всех образов CentOS, а также список всех возможных размеров узлов: #!/usr/bin/env python
from libcloud.types import Provider
from libcloud.providers import get_driver
from secret import access_id, secret_key
if __name__ == "__main__":
Driver = get_driver(Provider.GOGRID)
conn = Driver(access_id, secret_key)
print "images: "
for image in conn.list_images():
if "CentOS" in image.name:
print " %s %s" % (image.id, image.name)
print "sizes: "
for size in conn.list_sizes():
print size
Для начала вам нужно будет создать файл «secret.py» и объявить там переменные access_id и secret_key с необходимым пользователем и паролем для доступа к API вашего провайдера.
Обратите внимание на строку: Driver = get_driver(Provider.GOGRID)
Здесь мы говорим, что хотим использовать драйвер GoGrid. Чтобы получить список всех поддерживаемых провайдеров, вам необходимо запустить в оболочке следующую команду: pydoc libcloud.types.Provider
Создание и удаление узлов
Давайте рассмотрим пример создания и удаления узла.Для его создания нам необходимо определиться с основными параметрами узла, такими как имя, размер и изображение.
В качестве образа мы снова выберем первый образ, содержащий в названии CentOS, и возьмем первый попавшийся размер.
#!/usr/bin/env python
from libcloud.types import Provider
from libcloud.providers import get_driver
from secret import access_id, secret_key
if __name__ == "__main__":
Driver = get_driver(Provider.GOGRID)
conn = Driver(access_id, secret_key)
image = [image for image in conn.list_images() if
"CentOS" in image.name][0]
size = conn.list_sizes()[0]
new_node = conn.create_node(name='mynode', image=image,
size=size)
print "node created: ", new_node
new_node.destroy()
Заключение
Как видите, здесь тоже все достаточно просто и прозрачно; и двумя короткими скриптами нам удалось охватить почти весь общий интерфейс.Конечно, этим функционал libcloud не ограничивается, и я не ставлю перед собой задачу создать подробное руководство по использованию, а лишь заинтересовать тех, кто только начинает работать с облаками и, в частности, тех людей, которые использовать библиотеки, специфичные для прав.
Более опытным пользователям облака, вероятно, покажется, что описанного функционала недостаточно.
Да, в большинстве случаев действительно нужно использовать что-то большее, и, конечно, все провайдерские вещи не могут быть охвачены одним интерфейсом.
При этом libcloud поддерживает в драйверах провайдеров так называемые «дополнительные» методы, которые позволяют, например, создавать пары ssh-ключей, создавать собственные образы узлов и т. д. По моим наблюдениям, драйверы от популярных провайдеров достаточно хорошо покрывают весь функционал.
и оперативно обновляются.
Информацию о том, что поддерживает каждый драйвер, можно найти в документация API самого libcloud. Надеюсь, libcloud облегчит жизнь тем, кто работает с облаками, а моя статья поможет вам быстро сориентироваться в проекте.
Теги: #Облачные вычисления #облачные технологии #облачный хостинг #libcloud #python #python
-
Информация Об Аниме В Интернете
19 Oct, 24 -
Такая Непредсказуемая Поддержка Вконтакте
19 Oct, 24 -
Мы Живы - Что Пишут
19 Oct, 24