Что-то в моем окружении стало все больше и больше слов про то, какие “облачные технологии” крутые, какие “облака” дешевые и как станет всем хорошо, как только вы переведете свои сервера в “облака”.
Для начала немного о том, что же такое облака.
Давным-давно VMWare выпустила свой первый продукт для виртуализации одного компьютера на другом. Вы запускали программу, а в ее окошке – еще одну операционную систему. А если ресурсов у компьютера хватало, то и две. И при этом все системы могли быть разными.
Данный подход на “ура” восприняли разработчики, администраторы и прочий компьютерный люд. Ведь теперь можно было без боязни нарушить что-то в работе поразбираться с новыми продуктами. Что-то пошло не так – восстанавливаем предидущий образ и продолжаем работу с прерванной точки.
Через некоторое время продукт эволюционировал в серверную версию и стало возможно запускать много операционных систем не на локальном компьютере, а на сервере, который обычно гораздо мощнее, хоть и стоит в запертой комнате и без монитора.
Ну дальше начался взрывной рост виртуализированных систем всех возможных направлений. Xen, VirtualBox, Parallels на слуху у всех, поэтому повторяться не буду.
Первоначально все эти системы использовались под лозунгами экономии ресурсов (а в некоторых странах еще и экологии). В самом деле, большинство серверов большую часть времени не загружают процессор на 100% и попросту расходуют электроэнергию. А размещением нескольких виртуальных машин на одной физической мы более грамотно расходуем как физические ресурсы (место, электроэнергию), так и время обслуживающего персонала (то же резервное копирование делается гораздо проще, да и управлять одной железкой проще).
Системы росли по возможностям, у них стала появляться “живая миграция” (это когда одна виртуальная машина без остановки перемещается с одного физического сервера на другой) и “динамические ресурсы” (к примеру выделенную память для одной виртуальной машины можно было передать другой).
Все радовались возросшим возможностям, пока какому-то гениальному идиоту не пришла в голову идея, как еще можно заработать на этом. Придумали название “облачные вычисления”, дескать вы отдаете свое в некое безразмерное облако, а там выделяется сколько надо ресурсов … В общем, коммунизм, только в области ИТ.
И тут, как обычно, пришли маркетологи и совершенно не разбираясь в том, что они маркетят, начали обвешивать лозунгами всё, до чего они могут дотянуться. Я встречал утверждения в духе “теперь 99,999% надежности не предел”, “сервера сами адаптируются под нагрузку и вы платите только за то, что реально надо”, “сервера в облаке стоят гораздо дешевле” и прочий бред.
Почему бред? Ну давайте буду разбирать по пунктам. Начну с последнего. “Облачные сервера дешевле”. Для примера могу дать документ по TCO от самого Амазона:
Там одна из первых картинок:
Казалось бы, ура! Даже в самом плохом случае выигрыш аж 68%! Срочно надо заводить аккаунт и платить деньги.
Однако я предлагаю вам взять любую электронную таблицу и подсчитать самим, для себя. Итак, возьмем левую колонку. Сервера, которые всегда работают и готовы к обслуживанию посетителей.
Что бы не быть голословным, возьму сразу живой пример: сервер, который обслуживает мою компанию-работодателя. На нем размещена почта, веб-сайт и несколько других виртуальных машин. Но я для драматизма возьму только почту и веб-сайт.
Итак, почта. 200 ящиков, кучка списков рассылки и так далее. Никаких лимитов не ставится принципиально. Сначала диски:
root@mail:~# LANG=C df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 7.9G 3.4G 4.2G 45% /
tmpfs 2.0G 0 2.0G 0% /lib/init/rw
udev 2.0G 128K 2.0G 1% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
/dev/vdb2 194G 182G 2.4G 99% /opt
Как видим, 8Гб под систему и 200Гб под почту. Теперь память.
root@mail:~# free -go
total used free shared buffers cached
Mem: 3 3 0 0 0 0
Swap: 3 1 2
4Гб и еще один в свопе.
Про процы – там 4 ядра от ксеончика на 2,2ГГц откушено.
В общем-то ничего такого.
Теперь идем на амазоновский калькулятор и считаем, во сколько нам обойдется такая виртуалка. Немного подыграем амазону и выберем m1.medium:
M1 Medium Instance
3.75 GiB memory
2 EC2 Compute Unit (1 virtual core with 2 EC2 Compute Unit)
410 GB instance storage
32-bit or 64-bit platform
I/O Performance: Moderate
EBS-Optimized Available: No
API name: m1.medium
Как видим, почти один-в-один. Считаем:
Как видим, амазон предположил, что при данных условиях нам наш почтовый сервер обойдется в 300 долларов за месяц. Э-э-э-э …
Ну у нас вообще-то не одна машина, а много (поглядел – порядка десятка крутятся на хосте) … Но все равно, давайте попробуем сравнить.
С демосом (закроем глаза на то, что там больше диска, процессоров и памяти, просто меньше не было).
Ну … можем сказать, что примерно тоже самое. А теперь возьмем самого дорогого буржуйского провайдера – RackSpace.
Ура! Цена-то офигеть какая! Ну и пофиг, что опять проца, памяти и диска больше. Но цифры-то практически приближаются к тем, о которых говорит амазон!
Сделаем шаг в сторону iWeb.
Упс … Как-то не вяжется, да? 100 баксов супротив 300 … Но это для дохлых машинок, они изначально дороже в эксплуатации …
Ладно, давайте поглядим, сколько будет стоить машинка с теми же характеристиками, которые используются хост-машиной. 2 ксеона, 16Гб памяти, 1Тб в рейде …
Амазоновский m1.extralarge – $654 в месяц
Демос: 11677 рублей в месяц.
RackSpace: $1089 в месяц
iWeb: $559 в месяц
И что бы закопать, Hetzner EX-4 – 49 евро в месяц
При этом необходимо учитывать, что у виртуальных машин амазона есть два больших недостатка: Во-первых, в них невозможно сделать никакой другой виртуализации, кроме пара-. То есть максимум OpenVZ. И во-вторых, скорость работы с амазоновскими дисками на порядок (тестировал с год назад) меньше работы с локальными в серверах.
Итак, время подводить итоги. Во всех случаях, кроме RackSpace, амазон оказался дороже. И ни о каких “на 68% дешевле” даже речь идти не может.
Почему же так получилось с RackSpace? Просто это хостер так называемого “премиум”-сегмента. Когда я с ними работал, они присылали мне счета на офигенно приятной бумаге и шоколадку на новый год. Конечно, приятно, но я вполне удовлетворюсь счетом в окне почтового клиента, а шоколада за такие цены я смогу купить гораздо больше.
Но ведь не могут же быть люди настолько тупыми, что бы платить больше за меньшее? Да еще и в 2-3 раза больше … Могут, ибо велика сила маркетолухов! Но к счастью такие не все.
“облака” совершенно шикарно перебивают по всем параметрам обычные сервера в одном типе задач: класс “прибежал-посчитал-убежал”. То есть 100% работы сервера совершенно не нужно. Яркие примеры: системы видеоконференций (нужно поговорить – поднял. поговорили – опустил), системы для обсчета чего-либо громоздкого (скажем, спер образ блюрейного диска – включил, задавил в нужные форматы и выключил). Так что в той самой картинке уровень “правдивости” повышается к правой стороне 🙂
Перейдем к следующему лозунгу: “сервера могут размножиться для обработки большого потока обращений и потом лишние выключатся”.
Да, все так: создание нового сервера в амазоне занимает минуты две-три. У самых “быстрых” провайдеров – минут 30 минимум. И у амазона сервер можно создать из заранее созданного образа, а у обычного провайдера придется еще настраивать голуйю операционку …
Где засада? Засада в приложениях. Они как-то крайне фигово относятся к тому, что внезапно где-то появляется еще одна их копия, которая обрабатывает те же данные, что и они. А ведь эта копия практически точно так же может и внезапно пропасть … Почитайте, сколько волос админы вырвали себе из разных мест, когда пытались заставить что-либо работать в кластере …
В итоге опять почти правда – “саморазмножение” серверов удобно использовать, когда поток информации следует в одном направлении: сервера закачек к примеру. Вышел новый релиз, сервера размножились, что бы всех обработать, а потом самоуничтожились. Правда, в связи с развитием торрентов пример несколько натянутый, но тем не менее.
Или небольшой и несложный веб-сайт. Там тоже довольно легко размножить сервера. Но проблема в том, что на небольшие сайты не ходит столько народу, а на больших сайтах такие технологии не нужны ….
Опять провал.
Теперь про надежность. Я открою страшную тайну: сами по себе виртуалки падают точно так же, как и физические сервера. Абсолютно точно так же. И про надежность может идти речь только в области инфраструктуры: числе каналов наружу, числе резервного оборудования и так далее. И тут опять же разницы нет между обычными и “облачными” провайдерами. И я точно получу гораздо большую надежность у тоже же hetzner’а, попросту купив несколько серверов в разных датацентрах …
Вывод? Не ведитесь на модные слова и все новое – это хорошо забытое старое …
есть хорошее “приложение” – mongodb. Авторы сделали достаточно, что бы новый сервер добавлялся в кластер без напряга. Плюс, весь этот хайп вокруг облаков очень стимулирует сраз уписать приложения так, что бы они могли работать на кластере. И что бы понима, что вот – добавился еще один хост, его можно загрузить работой. Вот, он простаивает, его смогут прибить.
есть хорошее “приложение” – mongodb. Авторы сделали достаточно, что бы новый сервер добавлялся в кластер без напряга. Плюс, весь этот хайп вокруг облаков очень стимулирует сраз уписать приложения так, что бы они могли работать на кластере. И что бы понима, что вот – добавился еще один хост, его можно загрузить работой. Вот, он простаивает, его смогут прибить.