вторник, 30 ноября 2010 г.

SaaS, IaaS, PaaS. Облачно с объяснениями.

Мне с детства нравится вопрос, который задавал про любой незнакомый предмет маленький полярный медведь Умка. Вопрос звучал так: "А что это такое и с чем его едят?". Коротко и по существу. Жаль, что многие люди, не будучи знакомы с каким-либо явлением, подобных вопросов не задают, а лишь важно кивают головами, когда начинаешь им о явлении рассказывать. Наверное, боятся показать свою неосведомленность про "известные слова". В последнее время стало очень модным слово SaaS. Его поминают к месту и не к месту, по делу и просто так. И, к сожалению, не всегда поминающие его, особенно далекие от IT люди, действительно понимают о чем говорят. Равно как не понимают они в чем суть и почему это лучше/хуже или применимо/неприменимо в конкретной ситуации. Слово модное, потому и говорим про Cloud Compuing и SaaS. Конечно, так тоже можно, но мы-то люди умные и хотим точно знать кто есть who.

Я беру на себя смелость представить вашему вниманию небольшую обзорную статью про "облака", что это такое, какие они бывают и с чем их едят.

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

Ну что ж, пожалуй, приступим.
Прежде чем говорить об облачных вычислениях, позволю себе сделать небольшой экскурс в устройство современных информационных систем. В самом нижнем по уровню абстракции слое лежит "железо". Холодное и мертвое, пока не включишь ток. Когда же мы с помощью рубильника вдыхаем в него жизнь, оно оживает и начинает слать во все стороны электрические импульсы, частью из которых мы вполне можем управлять. Остальными не можем. Но нам оно обычно и не надо. Чтобы железо стало вести осмысленное существование и позволило нам получать какой-нибудь (возможно даже общественно-полезный) эффект, нам нужна операционная система. Следующий уровень. На уровне ОС мы можем уже выполнять простые действия и, что самое существенное, она позволяет нам запускать наши родные приложения: сапера, пасьянс косынку и прочие безусловно полезные в хозяйстве программы. Вот собственно, программы и дают нам возможность бесцельно убивать время выполнять полезную работу. Но это еще не все. Чтобы убивать время работать не в гордом одиночестве, а в окружении коллег и друзей, нам понадобится связь между компьютерами. Не вдаваясь в лишние подробности, можно сказать, что за связь на базовом уровне отвечает ОС, а осмысленные данные уже передают наши приложения.

Вот здесь и находится краеугольный камень нашей, как ее любили одно время называть, информационной эры. Когда мы смогли обмениваться информацией быстро, просто и дешево, у нас стали появляться различные интересные социальные явления. В самом деле, перенос общественных макроструктур в сеть произошел настолько естественно и в то же время стремительно, что мы даже как-то не заметили процесс перехода, а сразу оказались в новой реальности. Но изменения в общественном сознании не смогли бы произойти без принципиального изменения сетей передачи данных. В самом деле, многие ли из вас сидели в Интернете с модема? А многие ли участвовали в социальных сетях во времена модемов? Так что изменения в технологиях идут рука об руку с изменением общественного сознания. Равно как и коллективного бессознательного, не к ночи будь помянуто.

О чем это я? Да, собственно, о том, что с развитием сетей изменились наши отношения с Сетью. Мы стали много времени проводить в Интернете. Мы зачастую храним данные "в облаке", не особо задумываясь о том что такое то самое облако и где же на самом деле находятся фотографии любимой кошечки. У большинства людей, далеких от IT даже не возникает вопроса где живет из почта. Оно работает, доступ всегда есть. Зачем вопросы задавать? Для обычных обывателей современные сервисы - не чудеса инженерной мысли, а лишь реальность, данная нам в ощущениях. Такая же как небо над головой. И о природе облаков в этом небе они задумываются так же часто как и о природе облаков для SaaS.

На фоне таких драматических изменений постепенно стали рождаться новые концепции подходов к хранению и обработке данных, к доступности и защите информации, к возможности работать из любого наперед заданного места, лишь бы Интернет был. А всю инфраструктуру можно разместить там, где есть специально обученные люди. Вот пусть эти люди и занимаются  вопросами какие сервера где ставить, как их соединять, как ими управлять, и даже сколько этих физических серверов на самом деле нужно... Вот так мы и приходим к концепции "Инфраструктура как сервис", оно же IaaS. Википедия говорит нам следующее:


Infrastructure as a Service (IaaS) — это предоставление компьютерной инфраструктуры (как правило в форме виртуализации) как услуги на основе концепции облачных вычислений.
IaaS состоит из трех основных компонентов:
  • Аппаратные средства (серверы, системы хранения данных, клиентские системы, сетевое оборудование)
  • Операционные системы и системное ПО (средства виртуализации, автоматизации, основные средства управления ресурсами)
  • Связующее ПО (например, для управления системами)

На самом деле, главное принципиальное отличие от размещения в ЦОДе собственной инфраструктуры для модели IaaS заключается в том, что Вы арендуете у провайдера некоторые абстрактные вычислительные мощности, обычно масштабируемые "на лету". То есть у Вас столько мощности, сколько вам нужно в данный момент. Естественно, физические серверы и сети никуда не делись. Просто теперь они стали проблемой провайдера, а не вашей. Вы же получаете в свое распоряжение всегда работающие виртуальные машины потребной вам мощности. А уж дальше можете делать с ними что Вашей душе угодно. То есть Вы занимаетесь всем от выбора операционной системы до работы Вашего приложения.

Давайте теперь подумаем, какой шаг был бы логичным дальше. 10 секунд на размышление и разглядывание картинки. Время пошло... 3, 2, 1 - продано!

Следующий логичный шаг - отдать тем же людям, которые занимаются инфраструктурой, не только базовую инфраструктуру, но дать им рулить и операционнми системами, и, возможно, даже какими-то частями приложений (обычно очереди передачи данных и прочие транспорты). Таким образом мы приходим к концепции "Платформа как сервис", оно же PaaS. Здесь мы уже не сможем контролировать операционную систему. Зато сможем заливать в платформу свои приложения. Для Вас это выглядит как несколько масштабируемо мощных компьютеров, на которые Вы ставите компоненты своей программы. А за все остальное отвечает невидимая рука администраторов. Вам же регулярно приходят отчеты и счета за ресурсы, которые потребило Ваше приложение.

И на закуску осталась концепция "Приложение как сервис", также известное как модный SaaS Здесь у Вас еще меньше контроля. Контроль за всем вместе с ответственностью за все лежит уже на администраторах приложения. А Вы управляете только и исключительно собственным аккаунтом (ну или группой аккаунтов). Что бы ни случилось, приложение должно работать. И Вы должны иметь возможность им пользоваться. Для этого разработчики создают специальную архитектуру приложений, размещают компоненты на разных виртуальных машинах и т.д. Но это - не ваша головная боль. Вы просто заходите в свой Gmail или в свою "Эльбу" или еще в какое приложение и получаете ни много, ни мало, а свой родной и привычный сервис...

Собственно, все эти концепции представляют собой частные случаи так называемых "Облачных вычислений", также известных под термином Cloud Computing. Это важное понятие, с которым путаются наиболее часто. Давайте посмотрим, что же такое облака, чем облачный подход принципиально отличается от традиционного и в чем преимущества облаков для клиента. Отличие облачного хостинга от обычного (по мнению NIST) заключается в 5 пунктах:
Облачный хостинг (по мнению NIST) соответствует следующим 5 ключевым характеристикам:

·         “On-demand self service” — Пользователю доступен любой объем услуг. Причем для "дозакупки" услуг пользователю не нужно прилагать усилий (он делает все из панели управления) и все происходит "мгновенно".

·         “Broad network access” — принцип сетевой доступности. Облачное решение должно быть доступно с любого компьютера, с которого есть доступ в Интернет. Про Китай с его "Великим Китайским Фаерволом" не говорим.

·         “Metered use” — принцип оплаты по факту. Как работал, так и заработал. Вернее, сколько потребил услуг, столько и заплатил.

·         “Elasticity” — принцип гибкости закупки. Возможность потребления мощности небольшими квантами и произвольное время использования именно того объема услуг в течение того времени, которое хочет пользователь. То есть можно год пользовать маленький серверочек, потом пару дней половину датацентра, а потом - снова родной маленький серверок.

·         “Resource pooling” — принцип независимости от «железа». Пользователю неизвестно и неважно, на каком аппаратном узле облака и даже на каком континенте сейчас работают его виртуальные машины. Пользователь не должен ни при каких условиях зависеть от работоспособности какого-либо конкретного узла.

Если эти пять пунктов выполнены, будем называть это облаком. Если нет - не будем. Вот и все.

Пожалуй, больше мне в обзорной статье сказать нечего. Будут вопросы - задавайте.

Надеюсь, я смог сколь-нибудь внятным языком описать отличия разных "облаков" друг от друга и отличия облаков от всего остального.

Удачи Вам и поменьше путаницы в голове!

9 комментариев:

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

    ОтветитьУдалить
  2. Neo, спасибо! В теории Вы правы, особенно в контексте сетевой нейтральности. Но есть определенные нюансы. Например, падения каких-то провайдеров, падение каналов связи, падения дата-центров.

    Нормальные облака все же располагаются
    не в одном датацентре, а в нескольких. А здесь уже начинается интересное. Вспомните, например, пожар в Hosting.ua. Сколько сайтов стало недоступно? И это не единичный случай. Облако (по идее) "эвакуировало" бы сайты в другие датацентры.

    Кроме того, облако не должно зависеть не только от конкретной железки, на которой крутится приложение, но и от провайдеров (множественные пути доступа) и датацентров (несколько).

    То есть в теории это скорее характеристика, но на практике - скорее отличие.

    PS. Текст подправил.

    ОтветитьУдалить
  3. Согласен с вам в теории. В реальности "облако" чаще всего модный брендовый термин, чем реально система способная "эвакуировать сайты в другие датацентры".

    Но в любом случае, очень познавательная статься. Еще раз спасибо.

    ОтветитьУдалить
  4. На самом деле, у облаков есть важный бонус - архитектура облачного приложения. По этому поводу советую посмотреть выступление Дэвида Чеппела на Платформе 2011. Он хорошо рассказывал про то как умные люди строят облачные приложения и как они должны быть устроены.

    Если все делать так и размещать части системы в разных ДЦ, "эвакуация" произойдет на ура.

    ОтветитьУдалить
  5. Владимир, поднимаю старую тему ))
    Чем можно дополнить статью:
    - до IaaS ещё была аренда в ЦОД стойко-места, так сказать, Room as a Service;
    - в Москве сейчас находится 98 ЦОД - 60% от общероссийского количества ЦОД, но на текущий момент ни один из них не сертифицирован организацией uptimeinstitute.com.

    ОтветитьУдалить
  6. Да, все правда.

    По первому пункту - да, было такое, да и сейчас есть. И, сдается мне, будет еще довольно долго.

    По второму - не считал ЦОДы, но, что-то мне подсказывает, что цифра не совсем верная. Как минимум, я довольно много слышал про ЦОДы в других городах. Но, поскольку точных данных у меня нет, оставлю утверждение на твоей совести.

    А вот что касается сертификации, то это действительно так. Разговоров ходит много, но результатов у них как-то не наблюдается. Ну и плюс ко всему, сертификация у uptime institut - дорогое и сложное удовольствие, которое клиенты особенно не оценят. По крайней мере, так говорит большинство знакомых мне людей из этой сферы.

    ОтветитьУдалить
  7. Владимир, можно ли как-то связаться с Вами напрямую? (по эл.почте например). Хотела бы посоветоваться с Вами как со специалистом. В данный момент пишу диссертацию на тему внедрения CC на российском рынке, было бы здорово, если бы Вы смогли ответить на пару вопросов, если Вас не затруднит.

    ОтветитьУдалить
  8. Юлия, добрый день!

    Конечно можно: vk@vkuzmin.com. Посмотрим, чем я могу быть Вам полезен.

    ОтветитьУдалить
  9. Понравилась статья! Приглашаю публиковаться в http://12news.ru/blogs/

    ОтветитьУдалить

Примечание. Отправлять комментарии могут только участники этого блога.

Related Posts Plugin for WordPress, Blogger...