Возможности VMware по организации эластичного облака для интернет проектов (IaaS)

    На данный момент у компании VMware есть ряд специализированных продуктов для сервис провайдеров, которые в свою очередь на их базе и своем оборудовании предлагают облачную инфраструктуру в аренду (IaaS). Хочется немного рассказать про возможности, которые на данный момент существуют и описать ближайшие перспективы.

    Для построения инфраструктурного облака (по модели IaaS), VMware предлагает семейство продуктов объединенное общим брендом VMware vCloud (VMware vCloud Director и VMware vCloud Request Manager), вспомогательными продуктами идут такие вещи как VMware vShield (обеспечение сетевой безопасности) и VMware ChargeBack (биллинг). Разумеется, все это только обвязка для того, чтобы управлять виртуальными ресурсами, которые нарезаются и обеспечиваются силами основного продукта VMware vSphere.

    Что получает клиент? Виртуальные ресурсы для клиента представлены в виде так называемого виртуального Дата-Центра (далее vDC), который характеризуется такими параметрами как:
    • количество оперативной памяти,
    • дискового пространства,
    • вычислительной мощности, измеряемой в Ghz.

    Для vDC также выделяются сети, как внутренние (не имеющие собственной адресации), так и внешние (фактически пул публичных ip адресов сервис провайдера). Посредством vShield пользователь имеет возможность управлять маршрутизацией и фильтрацией трафика между сетями, что, впрочем, можно сделать просто используя собственный фаейрвол, реализованный из виртуальной машинки с FreeBSD.

    image

    Помимо простой возможности создания и конфигурирования виртуальных машин, интерфейс управления позволяет заливать, использовать и предоставлять другим пользователям, образы заранее сконфигурированных виртуальных машин. Мало того, оперировать можно не отдельными виртуальными машинами, а целыми наборами взаимоувязанных виртуальных машин, призванных решать одну задачу. Таким набором может быть заранее сконфигурированная инфраструктура разработки ПО, предоставляемое в трехзвенной архитектуре приложение и многое другое. Для многих разработчиков может оказаться интересным предоставлять свои решения не в виде устанавливаемого дистрибутива (в особенности если оно включает в себя несколько серверных ролей), а в виде vApp VMware, которая включает в себя предустановленные операционные системы, настроенные и готовые к работе приложения и другие необходимые для его работы компоненты (база данных, балансировщики нагрузки и т.п.). Использование готового преднастроенного vApp, позволяет потенциальному клиенту в течение минут начать использовать и тестировать интересующее его приложение.

    image

    Однако, т.к. темой нашего поста является все же эластичное облако для разработчиков, то мы пойдем далее. Допустим у нас есть проект, содержащий в себе три роли серверов: сервер приложений, сервер базы данных и что-то еще, например nginx. Добавим туда еще одну роль, призванную следить за ростом нагрузки и решать проблему нехватки ресурсов. Назовем ее — Capacity manager. Предположим, что нагрузка на проект пульсирует в течение суток, и, по мере продвижения проекта, постепенно растет в целом. Какие пути оптимизации использования ресурсов у нас есть?

    VMware vCloud Director предлагает ресурсы для vDC в трех моделях:
    • Available Pool – просто фиксированный размер ресурсов для vDC клиента
    • Pay-As-You-Go – столько сколько потребил
    • Reservation Pool – гарантированный размер ресурсов без возможности оверсела провайдером услуг


    image

    Для нас наилучшим образом подойдет модель Pay-As-You-Go, ее и выбираем. В начале мы создали два сервера приложений, один сервер базы данных и два сервера nginx. Конфигурация каждого из них была минимально возможной – (например, CPU 3GHz, RAM 1Gb, HDD 40Gb).
    Допустим, что все роли серверов кроме базы данных являются взаимозаменяемыми и их остановка не несет простоя оказываемому сервису, только к снижению производительности. На каждую серверную роль мы сделали готовый шаблон сервера, с целью минимизации времени развертывания новых серверов в будущем. В один прекрасный момент наш замечательный сервер в роли Capacity manager обнаружил, что оба сервера приложений не справляются с нагрузкой. У него два пути решения проблемы — увеличить число серверов приложений, либо увеличить количество ресурсов существующих серверов. Используя предоставляемый vCloud API, мы гасим сервер, добавляем ему процессор и включаем заново. Производительность нашего облачка немного выросла. Теперь наш Capacity manager видит, что дисковое пространство на сервере базы данных заканчивается. С этим проще, достаточно, правильно дернув vCloud API, увеличить в онлайне размер диска выданный серверу под БД и попросить операционную систему увидеть данные изменения. По мере роста нагрузки, мы подняли конфигурацию серверов приложений до неприличных размеров, например RAM 32Gb и CPU 32GHz. Самое время начать увеличивать наше облако горизонтально. Для этого дергаем тот же vCloud API и делаем копию одного из существующих серверов приложений. Кастомизируем его параметры (ip адреса, имя хоста) и запускаем в работу. Таким образом, мы получаем возможность динамически изменять размеры нашего облака и соответственно лучше обеспечивать соответствие между потребностью в ресурсах и их фактическим наличием. Возможности vCloud API хорошо представлены на сайте VMware.

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

    image

    Многие могут возразить, что увеличение ресурсов путем перезагрузки не самый изящный способ. Полностью соглашусь. Какие альтернативы тут могут быть? Самое интересное это конечно возможность добавления ресурсов внутрь виртуальной машины в режиме онлайн. И это работает! Однако, данный способ весьма ограничен типами поддерживаемых операционных систем. Хотя прогресс не стоит на месте и добавление оперативной памяти и процессора уже достаточно распространено и если у вас развязаны руки при выборе базовой ОС, то имеет смысл выбирать ее с оглядкой на такую поддержку. Уменьшение количества ресурсов в онлайне менее проработанная задача, и, к сожалению, я не слышал на данный момент о работоспособном решении – дело за разработчиками ОС.

    Послесловие

    Некоторые, ознакомившись с данным постом, могут подумать: сколько возни со всем этим, зачем мне это? Я же просто разработчик и не хочу заниматься управлением и оптимизацией инфраструктуры. Отвечу! Мы рассказываем про IaaS – Инфраструктура как услуга. Для данной аудитории будет интересна наша следующая статья на тему PaaS – Платформа как услуга от VMware — vFabric. Где мы попытаемся раскрыть, что стоит за этим термином и какие возможности данная платформа предоставляет.

    Протестировать VMware vCloud


    Логин: demo
    Пароль: 12345678

    image
    ИТ-ГРАД
    300,00
    vmware iaas provider
    Поделиться публикацией

    Комментарии 13

      0
      супер!
      я конечно все понимаю, но 2х машин для хабратеста это очень мало…
        0
        Увеличили до 10 — тестируйте на здоровье! ))))
        0
        Спрашивайте — отвечу на все вопросы
          0
          !!! Добавили еще пользователей demo2 и demo3. Пароль для всех один )))
            0
            Ох ты, админка на флеше. Скажите, это и есть тот самый долгожданный интерфейс управления VMware, совместимый с Linux (преемник vSphere).
              0
              Вообще-то у VMware vSphere есть интерфейс управления через web: vc.it-grad.ru (заходить под demo:12345678)

              vCloud director — это некая обертка; конечный юзерфрендли интерфейс для создания и управления виртуальными машинами, к которому можно прикрутить какие-нибудь свои модули. Подключение и работа осуществляется через vCloud API.
                0
                В почту пришел вопрос на этот комментарий, но мы все же публикуем его здесь.
                — А именно, каким образом к vCloud Director можно прикрутить свои модули? Конкретно интересует можно ли интегрировать туда cisco ace module (балансировка нагрузки между виртуальными машинами)?

                Как вопрос балансировки нагрузки решается у вас?
                  0
                  И тут же отвечаем:
                  — Есть VMware vCloud API: communities.vmware.com/community/developer/forums/vcloudapi?view=overview
                  Под модулями я имел ввиду что-нибудь типа биллинга или там свой интерфейс по созданию и управлению машинами.
                  Вопрос балансировки нагрузки зависит от того что именно хочет получить в конечном итоге пользователь. На сколько я помню Cisco ACE — железное решение. В таком случае ничто не мешает создать 2, 3....10 виртуальных машин, подключить их в один VLAN и в этот же VLAN подключить балансировщик.
                  Если же cisco разработали какое-то софтовое решение, то нужно смотреть. С ходу сказать сложно.
                  Если балансировка нужна на уровне приложения (например стоит web-proxy, за которым целая ферма с web-серверами), то на vCloud такое тоже можно организовать при помощи виртуальных машин (что заметно дешевле железного решения).
                  Мы никак не занимаемся балансировкой, т.к. никогда такой задачи не стояло. 90% успеха — правильная организация инфраструктуры самим заказчиком (где балансировщик в принципе может не понадобится вовсе). Однако если есть какой-то готовый конкретный проект — мы всегда можем вникнуть в суть, помочь, ну и организовать.
              0
              Получается с помощью VMware vCloud можно в любом датацентре развернуть облачную платформу типа Amazon EC2 или Rackspace Cloud?
              Интересно, какие хостинговые компании уже используют VMware vCloud для предоставления IaaS-облака?
                0
                Да, можно, только нужна самая малость – сертифицированное под VMware серверное оборудование с общей СХД стоимостью от $100к и технические специалисты.
                Ответ на второй вопрос: компания ИТ-ГРАД
                  0
                  Спасибо, понял, только качественные ДЦ :). Буду иметь в виду.
                    0
                    Не за что. Обращайтесь!
                0
                В почту пришел вопрос, но мы все же публикуем его здесь.
                — vCloud director — это некая обертка; конечный юзерфрендли интерфейс для создания и управления виртуальными машинами, к которому можно прикрутить какие-нибудь свои модули. Подключение и работа осуществляется через vCloud API.

                А именно, каким образом к vCloud Director можно прикрутить свои модули? Конкретно интересует можно ли интегрировать туда cisco ace module (балансировка нагрузки между виртуальными машинами)?

                Как вопрос балансировки нагрузки решается у вас?

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

                Самое читаемое