PACI: Облачный Infobox

Ещё в 2005ом году Cloud computing начал набирать обороты с появлением Amazon Elastic Compute Cloud. Это была настоящая инновация, полное переосмысление того, как мы используем ресурсы вычислительных систем.

Облака обещали нам экономию денег на неиспользуемых ресурсах, необычайную стабильность систем, автоматизированное скалирование, лёгкий деплоймент и лишение стольких головных болей, что преследовали многих веб-разработчиков и не только!

И что же мы имеем? Сервисы облачных вычислений это:

  • Дорого. Смысл платить 100$ в месяц, если я могу за 10$ арендовать сервер в 3 раза лучше в плане ресурсов? – скажет любой человек.
  • Нестабильно. Отечественные поставщики облачных систем пользуются не просто плохой, а очень плохой репутацией. Сервера недоступны, сервера падают, сервера не поднимаются, оборудование ломается, люди извиняются, но ситуация повторяется из месяца в месяц!
  • Неудобно. Мы хотели платить только за то, что используем. Мы хотели в любой момент добавить виртуальную машину, чтобы, например, горизонтально масштабировать веб-приложение. Мы хотели чтобы всё работало моментально и позволило нам забыть о том, что такое “железо”, но мы только натыкаемся на проблемы с ним.

В конце 2011ого года, компания Parallels пришла на помощь к провайдерам облачных решений, Parallels выпустила продукт, призванный решить многие проблемы облачных вычислительных систем - Parallels Automation for Cloud Infrastructure (PACI).

И сейчас, компания Infobox, при сотрудничестве с Parallels, готовит к запуску сервис облачных вычислений на базе PACI. Более того, уже сейчас это можно потрогать!

Судя по всему, готовится что-то, способное затмить многие “российские облака”. А может быть и не только российские?

Так давайте пощупаем этот PACI!

В данный момент компания, в которой я работаю, уже использует Infobox PACI для автоматизированного, удобного создания виртуальных машин для наших клиентов. И я веду разработку программной части данного вопроса. Более того, я не редко общаюсь с сотрудниками Infobox и, через них, с сотрудниками Parallels - это даёт мне возможность получить максимум информации “из первых рук”, что так необходимо для адекватной оценки сервиса и его возможностей.

PACI и провайдер услуг

В первую очередь, давайте осветим возможности PACI. Что конкретно он должен изменить? Что он даёт самому провайдеру?

Этот вопрос крайне важен, так как многие сегодняшние российские и не только провайдеры услуг облачных вычислений сами, чуть не с нуля, разрабатывали многие и многие средства и сервисы для того, чтобы они соответствовали статусу “облачные”.

Parallels даёт готовое решение, которое имеет не просто уже разработанные, готовые к употреблению компоненты, код этих компонентов написан настоящими профессионалами – эти люди не просто начитались умных книжек, они лошадь съели на виртуализации, код что они пишут, пропитан опытом и знаниями. Кому-кому, но Parallels доверять в вопросах виртуализации и облачных вычислений определённо стоит.

Согласно списку предлагаемых возможностей PACI, провайдер услуг получает:

  • Эластичное масштабирование, биллинг только используемых ресурсов. Можно сказать, что это один пункт, который и даёт возможность назвать “груду железа” настоящим “облаком”.
  • Контейнеры виртуализации. PACI позволяет провайдеру сразу перешагнуть на куда более высокий абстрактный слой управления виртуализацией - на использование самих контейнеров. Стоит добавить что в наше время любые средства виртуализации предлагают такие абстракции.
  • Простой пользовательский интерфейс и API. PACI “из коробки” предлагает не только API для разработчиков приложений, что будут взаимодействовать с облаком, но ещё и довольно удобный пользовательский интерфейс. В век FOSS, Веб2.0, HTML5, культа usability, провайдеру придётся заботиться о том, чтобы их сервис предоставлял удобный и красивый интерфейс для управления контейнерами, а кроме того, и API для автоматизированного управления. Трудно описать словами на сколько приятен тот факт, что это всё уже готово и сделано относительно хорошо.
  • Возможность размещать контейнеры нескольких клиентов на одной физической машине. Иногда провайдеры вычислительных систем выделяют полностью один сервер под одного клиента, дабы упростить масштабирование и “удобно” разместить его контейнеры. Иногда провайдеры так запаковывают разные контейнеры, что их масштабирование крайне сложно. PACI предлагает готовое решение автоматизированного распределения контейнеров на физических машинах.
  • PACI не имеет строгих требований к оборудованию - работает везде. Чтобы использовать Mac OS, нужно купить Mac. Чтобы поиграть в Halo 4, нужно купить XBox 360. Да сколько можно?! PACI не требует определённого оборудования и позволяет заниматься предоставлением сервиса, а не проблемами железа. Да что там, PACI хоть и является только ПО для предоставления “облачных” услуг, но и тут старается помочь даже самому провайдеру забыть о проблемах с железом!
  • Лёгкое решение сложных задач администрирования, сам пользователь может всё сделать сам с помощью нескольких кликов мыши! Управление, создание, удаление, балансировка нагрузки, управление фаерволлом, бекапы - всё это делается через удобную панель управления! Никаких консолей и чтения man. Действительно полезно и удобно, а главное - это действительно не редко бывает необходимо.
  • Балансировка нагрузки и безопасность(фаерволл). Стоит отдельного пункта, вот ей богу. За такие вещи действительно стоит уважать Parallels.
  • Модульная архитектура. PACI устроен так, что поставщик услуг сможет легко интегрировать любые свои решения, использовать любые современные сервисы – да что угодно сделать из PACI! Например, интегрировать собственную систему биллинга, свой магазин, но можно и использовать модули, что идут в комплекте.

Такие вещи действительно движут прогресс вперёд, избавляя компании тратить время, деньги и силы программистов на бесполезные велосипеды. А сколько нервов будет сэкономлено клиентам!

До PACI, после PACI

Вот только как дело обстоит на практике? Стоит ли использовать PACI сейчас?

PACI и конечные пользователи “облаков”

Давайте рассмотрим сервис со стороны рядовых пользователей виртуальных серверов – программистов, веб-дизайнеров, администраторов, фрилансеров.

Облака это хорошо. Звучит наивно? Вполне. Давайте представим ситуацию, когда вам необходимо арендовать виртуальный сервер для реального проекта. Одним из самых доверенных провайдеров выделенных серверов является Linode.

Почему сравниваем не с “настоящим облаком”? Потому что многие читающие данную статью сейчас только думают переходить на облачные системы и имеют текущие проекты на VPS, предоставленных Linode. Стартовые сервера Linode хорошо подходят для сравнения, чтобы ответить на вопрос “а стоит ли переходить?”

Так давайте сравним стоимость, сервис и производительность!

Сравнение тестируемого контейнера с аналогом Linode

В качестве примера будет использзоваться конфигурация “Linode 512” и идентичный ей контейнер в облаке Infobox PACI.

Linode 512 Infobox аналог
RAM 512 Mb 512 Mb
CPU 4 CPU (1x priority) 2 CPU 1500 MHz
HDD 24 GB 24 GB
Сеть 200 GB Transfer, 50Mbps outbound 50Mbps
IP 1 1

Производительность

Для тестирования производительности контейнера, использовался специализированный сервис для тестирования Linux-серверов - ServerBear. Стоит выразить отдельное спасибо его авторам за автоматизацию такого процесса.

Сам процесс тестирования состоит из скачивания группы скриптов, нужных, стабильных версий необходимых утилит для тестирования(UnixBench, ioping, etc), с последующим запуском последний с нужными параметрами. Ничего самописного, всё - проверенные годами средства и методы анализа производительности серверов.

Полный отчёт о тестировании Infobox сервера можно исследовать тут - Benchmark Report. Честно, не знаю почему там написано “DEV2 @ HostV Benchmark Report”, но по конфигурации и показателям теста можно убедиться, что это сервер Infobox.

Для сравнения, будет использоваться свежий отчёт Linode 512.

CPU

В первую очередь стоит отметить что оборудование в общем смысле куда лучше, чем предлагаемое Linode. Если Linode предлагает Intel(R) Xeon(R) CPU L5520 @ 2.27GHz, то Infobox даёт нам Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz.

Чтобы понять разницу, достаточно глянуть на показатели CPU Mark от PassMark:

L5520 (Linode) E5-2670 (Infobox)
Cores 4 2
Speed 2266 MHz 1499 MHz
Cache 8192 KB 20480 KB
UnixBench (w/ all processors) 1371.7 1172.0
UnixBench (w/ one processor) 488.4 1117.4

Чего стоит один кеш: 8Мб против 20Мб! Конечно, частота ядер процессора на серверах Infobox немного печалит, как и число ядер, что даёт результаты близкие к Linode, но не такие, чтобы о них умолчать. Однако, при использовании одного ядра, Infobox просто смеётся и со свистом улетает вперёд! Да и что там, на двух ядрах результат близок к 4 ядрам! Нельзя сказать однозначно что Infobox получает плюсик, так как в реальных системах все ядра будут использоваться полностью и вероятно что разница не будет заметна.

Скорость работы с системой ввода/вывода

Стоит отметить, что для Windows-контейнеров, данный элемент является наиболее важным из-за многих подсистем, софта и принципов работы. По данному пункту можно судить о производительности Windows-контейнеров.

Linode Infobox
I/O Pings 9405.9 ms, 25 iops, 0.1 mb/s 9002.8 ms, 4978 iops, 19.4 mb/s
I/O Seek Test (No Cache) 7658 iops, 29.9 mb/s 0.1/0.1/7.0/0.2 ms 9146 iops, 35.7 mb/s 0.0/0.1/6.2/0.1 ms
I/O Reads - Sequential 1348 iops, 337.1 mb/s 0.2/0.7/444.4/8.4 ms 2716 iops, 679.0 mb/s 0.3/0.4/77.1/1.0 ms
I/O Reads - Cached 216496 iops, 845.7 mb/s 0.0/0.0/0.0/0.0 ms 588202 iops, 2297.7 mb/s 0.0/0.0/0.0/0.0 ms

Вам не кажется что цифры просто разные?

В I/O Ping Linode-сервер вообще пару раз запнулся, из-за чего результат оказался печальным. Однако остальные… Скорость работы с кешированными областями у Infobox почти в 3 раза больше!

Число возможных I/O запросов при тестировании последовательной записи/чтения – более чем в два раза больше. При доступе к случайным участкам системы хранения данных, без кешинга, выигрыш Infobox не так велик, как в предыдущих тестах, но и тут – без комментариев, цифры говорят сами за себя.

Сеть

В действительности, это очень индивидуальный параметр. Сервера Infobox располагаются в России, что гарантирует хорошую доступность в России и СНГ. Тест доступа к Cachefly показывает одинаковые показатели и у Infobox, и у Linode – ~9.80 MB/s

Всё зависит от публики сайтов. У вас больше посетителей из России? Infobox будет идеален.

Стоимость

Но сколько всё это удовольствие стоит?!

  • Linode 512 – $19.95
  • Infobox аналог – 690 рублей высчитал калькулятор в панели управления

Подробности расценок на облачные контейнеры Infobox можно узнать тут.

Разница в стоимости минимальна. В первую очередь, любопытным смотрится тот факт, что Windows-контейнер и его содержание будет стоить дополнительно 20 копеек в час, когда Linux-контейнер не имеет такой “наценки”.

Но постойте! Это же облако! Оно бесплатно пока вы не будете его использовать! БЕСПЛАТНО! Это значит что вы можете просто не использовать всех тех ресурсов, что выделяете, при этом платить только за то, что используете. За Linode вы платите даже если сервер не используете, а вот с Infobox всё приятно и просто. Вам главное задать планку, выше которой вы “не хотите прыгнуть” – конфигурация сервера. Безусловно, здесь выигрывает не Infobox, а сами облака с Parallels.

Сервис

Linode предлагает огромное число услуг: бекапы, хитрые балансеры, скрипты деплоймента LAMP-сервера, API.

PACI, а соответственно и Infobox, предлагает всё это(кроме разве что скриптов деплоймента), но ещё и:

  1. Управление отдельным брендмауером, что стоит перед доступом к серверу
  2. Горячее изменение конфигурации(за исключением носителя информации, разве что)
  3. Реактивное клонирование серверов
  4. Дико удобное управление всем функционалом, что даёт сам PACI, с возможностью мгновенно и легко совершить любые действия с любым объёмом машин. За это стоит отдельно сказать спасибо Infobox. Ребята постарались, хотя и были проблемы, но всё уже решено.

S.O.S. – Техподдерка и все-все-все

К информации о качестве сервиса, стоит добавить и немного опыта работа с техподдержкой. Тут сложно сказать хорошо о хелпдеске Infobox. Меня называли то Максимом, то Дмитрием. Однако после тонкого намёка, когда я назвал Павла – Иваном, ребята из техподдержки исправились, хотя не на долго. Но это не главная проблема, да и спустим это на загруженность специалистов, так как всё-таки сервис только запускается – работы много.

Так получилось, что основные проблемы были с технической частью Parallels – то HTTPS не был доступен, то оказалось что RDP имеет особенность, из-за которой, при создании сервера через API, необходимо указывать определённые условия. Но об этом будет другая статья.

Ребята из техподдержки стабильно, каждый день, отвечали 1-2 раза, что похвально. Стоит отдельно выразить благодарность Ярославу Лихачеву и группе специалистов Parallels за то, что работали даже 1 января, в праздники, и добились решения проблем.

Спасибо стоит сказать и Юрию Корельскому за действительно быстрое решение вопросов и человеческое отношение к проблемам – это всегда приятно.

И конечно, спасибо Марии Годына за сотрудничество, ведение переговоров и содействие в ускорении решения проблем.

Доступ к контейнеру

После создания контейнера в облаке Infobox PACI, если он на базе Linux, сразу настроится ssh-сервер и будет пускать по необходимым идентификационным данным. В случае с Windows, будет доступен “Удалённый рабочий стол” – RDP, что позволяет удобно работать с машиной. Работает, кстати, на удивление шустро даже на минимальных конфигурациях.

Доступные операционные системы

Infobox уже предлагает Fedora 17, Ubuntu 12.10 или 12.04, CentOS 6.3, Debian 6 и Windows Server 2008r2 SP1.

PACI REST API и интеграция

Мы используем Python, Django и Celery для нашего веб-приложения и работы со сторонними сервисами. Для работы с PACI, Parallels предоставляет REST XML API.

Пример типичного запроса на создание сервера:

<?xml version="1.0" encoding="UTF-8"?> 
<ve> 
 <name>HabrExample1</name> 
 <description>VE Linux 40</description> 
 <subscription-id>1000001</subscription-id> 
 <cpu number="1" power="1500"/> 
 <ram-size>256</ram-size> 
 <bandwidth>100</bandwidth> 
 <no-of-public-ip>1</no-of-public-ip>  
 <no-of-public-ipv6>0</no-of-public-ipv6>  
 <ve-disk local="true" size="20"/>  
 <platform> 
   <template-info name="centos-6-x86_64"/> 
   <os-info technology="CT" type="linux-free"/> 
 </platform> 
 <backup-schedule name="daily"/> 
 <admin login="root" password="152eyyBHO"/> 
</ve> 

Всё довольно просто, хотя крайне жаль что нет поддержки JSON – в Python всё было бы куда приятнее и проще. Однако небольшой враппер над pycurl и мы легко и просто используем PACI API! Cам API построен достаточно грамотно и минималистично. Например, для получения списка серверов, достаточно отослать запрос GET на https://.../paci/v1.0/ve/, а для получения информации о нужном сервере – на https://.../paci/v1.0/ve/my-server-01. Жаль документация по API только крайне слаба и все тонкости работы буквально размазаны по всему PDF-файлу. Тем не менее, что крайне похвально, в случае ошибки, API-сервер возвращает довольно информативную информацию об ошибке, которая уже несколько раз сильно помогала в понимании некоторых тонкостей и решении проблем.

Стоит отметить ещё и строгость API-сервера при обработке запроса: каждое поле должно отвечать определённому типу, что подразумевает определённый спектр возможных значений. Например, для передачи bool-значения ve-disk.local, поддерживаются только значения true и false. Кроме того, сервер требует чтобы в запросе были нужные заголовки: Accept, Content-Type. Иначе – отвечает ошибкой 406 Not Acceptable.

Сам API работает нереально быстро - любой запрос обрабатывается менее чем за секунду. При этом предположительно долгие операции работают через отложенные операции, возвращая статус и обновляя статус машины в процессе прогресса выполнения задачи. Например, если требуется запустить сервер, то достаточно послать запрос:

PUT baseURL/ve/{ve-name}/start

На что мгновенно придёт ответ:

VE START initiated 

При этом статус сервера обновится на значение START_IN_PROGRESS. Да, нам даже не пришлось делать отложенные задачи через Celery! Всё работает быстро и легко, не блокируя выполнение наших процессов.

Так что не смотря на некоторые огрехи, PACI REST API действительно приятен и хорош.

Вывод

В России можно по пальцам пересчитать провайдеров “облаков”, но они все имеют массу проблем и только разочаровывают. Российское IT-коммьюнити уже почти окончательно разочаровалось в “облаках”. Будет ли Parallels спасителем? Супер-героем? Будет ли Infobox шансом вернуть доверие к “российским облакам”? Кто будет Бэтменом, а кто будет Робином? :)

Безусловно, Infobox, имея в союзниках Parallels, имеют все шансы завоевать доверие людей. Мы с Infobox уже прошли многие проблемы и протоптали дорожку для смелых духом.

  • Хотите попробовать? Это ваш шанс.
  • Стоит ли переходить на облака? Сейчас – самое время.
  • Когда? Уже 1 февраля официально запланирован запуск.

У вас ещё не чешутся ручки попробовать это в деле? Тогда мы идём к вам!

Что почитать?

Written on January 30, 2013