Как управлять ресурсами в мульти-облачной среде обслуживания?
Я пытаюсь настроить среду, которая позволит нашей команде разработчиков централизованно управлять всеми нашими облачными ресурсами / услугами.
Я уже рассмотрел различные инструменты, но мне интересна функция, которая позволит мне конкретно управлять настройками нескольких облаков.
Можно ли взаимодействовать с разными провайдерами, используя одну технологию?
Есть ли отраслевой стандарт?
3 ответа
Вау, это проблема, когда жаргон все еще создается. "Управление облачным портфелем" и "Управление несколькими облаками" кажутся довольно популярными в качестве категорий продуктов. И "Одиночное стекло" кажется мемом.
Погуглив, я нашел ostrato, неуправляемый и правозащитный. Многие из них, по-видимому, предназначены для предприятий, имеющих как частные, так и публичные облачные активы. Я думаю, что ваш вопрос касается только публичных облаков PaaS для разработчиков. Еще один интересный провайдер -Cloudify, который, похоже, ориентирован на разработчиков и оркестровку.
И последний вопрос: не уверен, что вы знали, что OpenStack пытается быть стандартом.
Я не совсем уверен, что это может удовлетворить ваши потребности, но посмотрите на coreos и докер.
CoreOS может управлять системными задачами в кластере (а системные задачи в coreos в основном являются оболочками для док-контейнеров). Каждый контейнер может быть запущен на машине с определенными метаданными, что дает вам возможность создавать довольно сложные решения.
Есть несколько проектов, которые нацелены на обеспечение требуемой функциональности, вам нужно будет на самом деле протестировать их, чтобы проверить, насколько они соответствуют вашим ожиданиям.
Я не знаю установленного стандарта, но проект libcloud, похоже, близок к этому.
Он основан на Python и в основном работает, обеспечивая уровень абстракции для взаимодействия с открытыми API различных поставщиков услуг.
Пример с их сайта показывает, как создать узел в Rackspace:
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver
cls = get_driver(Provider.RACKSPACE)
driver = cls('username', 'api key', region='iad')
sizes = driver.list_sizes()
images = driver.list_images()
size = [s for s in sizes if s.id == 'performance1-1'][0]
image = [i for i in images if 'Ubuntu 12.04' in i.name][0]
node = driver.create_node(name='libcloud', size=size, image=image)
print(node)
Вы не указываете, с какими поставщиками вам нужно взаимодействовать, но вы можете проверить этот список, чтобы увидеть, входят ли они в число поддерживаемых.
Вы можете найти больше информации в онлайн- документации.
Другой подобный проект, основанный на Java - это jclouds.