Облачные вычисления на пальцах

    Облачные вычисления – вычисления проводимые в готовой инфраструктуре к которой есть доступ через сеть. Инфраструктура может состоять из тысяч, сотен тысяч вычислительных узлов, дисковых массивов. Все это соединено в единую сеть и функционирует как одна большая вычислительная машина. Все настроено и доступно из «коробки».







    Развитие облачных вычислений ведет к созданию больших абстрактных компьютеров, в которых:
    • Все составные части используются на полную мощность – утилизация простаивающих ресурсов. При количестве серверов тысячи, десятки и тем более сотни тысяч, затраты на простаивающие сервера вырастут прилично и станет не рационально использование облачных вычислений. Поэтому развивается виртуализация, когда на одну машину ставится несколько операционных систем. Виртуализацией управляют гипервизоры, специальное ПО обеспечивающее работу и распределение ресурсов нескольких операционных систем.
    • Высокая степень параллелизма
      Вычисления. Если на локальной машине ваши потоки могут выполняться параллельно, при наличии 2 и более ядер или процессоров. То в облаке вы сможете запускать 100, 1000 и более потоков, они смогут выполняться на отдельных серверах (если это конечно реализовал провайдер облачных услуг). Что это даст? Скорость выполнения скриптов перестанет иметь значение, там где задачу можно распараллелить, используйте несколько потоков, их можно использовать даже при рендеринге веб страниц.
      Данные. Распределенное хранение значительно надежнее хранения в одной точке. Такие хранилища могут сберечь данные и после ядерной войны или гибели континента, за счет географического разнесения.
    • Единая инфраструктура для разработки приложений под облако. Вы используете высокоуровневый API, где операционная система под покрывалом новой программной прослойки и передает привет BIOS. Вы используете ресурсы «бесконечной» машины вот и все.
    Хорошую аналогию привел Дмитрий Сотников:
    «Я бы сравнил облачные вычисления с натуральным хозяйством и супермаркетом. Есть люди, которые сами выращивают фрукты и овощи, сами себе шьют ботинки, одежду и т.д. – наверняка делают это с удовольствием и точно уверены в качестве своей продукции. А есть вариант как у нас с вами: люди где-то работают, получают зарплату, едут в супермаркет и покупают то, что им нужно. Так и с cloud computing. Зачастую при прочих равных экономически выгоднее получить услугу на стороне. Специализация, разделение труда и массовое производство – модели экономически более эффективные».

    Три кита


    Облачные вычисления включают три определения IaaS, PaaS и SaaS.

    Описание простыми словами

    IaaS – инфраструктура как сервис (аренда серверов, оплата по факту использованных ресурсов), настройка начинается с выбора операционной системы и заканчивается программированием необходимых сервисов. Это можно сравнить с покупкой недостроенного дома без внутренней отделки. До конечного решения вам придется вложить больше ресурсов, чем при использовании PaaS. Целевая аудитория разработчики ПО.

    PaaS – платформа как сервис (IaaS + специальная программная платформа), инфраструктура настроена, операционные системы уже стоят и работают, программная платформа стоит, работает, управляет балансировкой и шардингом данных, предоставляет удобный API. Аналогия — достроенный дом, окна и двери есть, газ, вода. Вам придется вешать свои люстры, клеить обои, покупать кухонную утварь, прочее. Целевая аудитория разработчики ПО. При наличии удобных визуальных сред это могут быть пользователи далекие от программирования.

    На самом деле PaaS это серьезный шаг вперед. Это можно сравнить с первым появлением операционных систем под персональные компьютеры.

    SaaS – приложение как сервис (оплата за время использования приложения). Целевая аудитория конечные потребители.

    Что говорят про облака


    Есть мнение что можно перетащить все существующее программное обеспечение в облако и запускать там. Представьте что ваши провода от монитора мышки и клавиатуры идут в какой то далекий дата центр, где крутится это ПО. А пользователь получает тонкий клиент (терминал) в свое использование. Нажимая на кнопку клавиатуры или мышки данные уходят сразу в ДЦ, а там выполняется само ПО и отдает клиенту готовую картинку. Лично я согласен только с тонким терминалом и не считаю этот путь верным потому что:
    • Это очень просто и можно было бы сделать уже давно (для софта где время отклика не так важно);
    • Существующий рынок программного обеспечения вырос на технологиях, развивающихся в изолированных средах персональных компьютеров. Перенос существующего ПО в облака только породит кучу «костылей»;
    • Гипервизоры врятли обеспечат высокую степень утилизации простаивающих ресурсов при таком подходе.
      «Если вы хотите использовать все пространство банки не загружайте ее камнями, раздробите их в песок».

    Влияние концепций на облачные решения




    По оси X основные направления облачных вычислений, размер блоков = потенциальному числу целевой аудитории. Горизонтальное перекрывание блоков показывает как сильно на решение повлияла та или иная концепция.

    По оси Y слева порог вхождения – совокупный фактор, учитывающий готовые сервисы, стандартизацию обращения к сервисам из разных языков программирования, целостность архитектуры, простоту использования модулей третьих лиц (3rd party), инструменты разработки созданные на базе PaaS.

    Решения на которые повлияла концепция IaaS
    Amazon WS, GoGrid, ElasticHosts, FlexiScale, RackspaceCloud, Joyent, Enomaly, ElasticGrid.

    Решения на которые повлияла концепция PaaS
    Hivext Platform, Google AppEngine, Microsoft Azure Platform, Aptana Cloud, Engine Yard, Grid Gain, CodeRun.

    Будущее облачных платформ


    Развитие облачных вычислений способно породить мощные программные платформы по типу платформ существующих операционных систем. Только вот потенциал развития облачных платформ намного больше платформ операционных систем для персональных компьютеров.

    Представьте что есть «бесконечная» в своих ресурсах машина с доступом из любой точки мира, и стабильностью, которая не снилась ни одному PC в мире. Для работы с ней вы используете тонкие клиенты (планшетные устройства, телефоны, терминалы в общественных местах). Стоимость портативных устройств стремительно падает, а возможности растут и обгоняют desktop системы за счет использования облачных платформ и роста скорости передачи данных по сети.

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

    А вы, согласны с этим?
    Поделиться публикацией

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

      +2
      Спасибо, очень понятно и доходчиво.
        +7
        Безусловно согласен с последним абзацем. Большинство народу (хотел написать про себя, а потом понял что таких много) много времени серфят интернет при этом имея быстрые компьютеры. При этом «вся мощь компьютера» простаивает 95% времени. Я уж не говорю о времени, которое компьютер выключен (нам-же надо спать). Будущее за облачными вычислениями. Для этого нужно минимизировать скорость связи с ними. А это решается расстановкой серверных во всех крупных городах.
          +2
          Не важно где будет находиться облако, главное время отклика вашего сервиса(сервера) на этом облаке.
            0
            Ррр. Долго не мог догнать предложение «Для этого нужно минимизировать скорость связи с ними». Минимизировать время, максимизировать скорость :)
            В остальном согласен. Грядут перемены в принципах использования ПК.
          • НЛО прилетело и опубликовало эту надпись здесь
            • НЛО прилетело и опубликовало эту надпись здесь
              • НЛО прилетело и опубликовало эту надпись здесь
                • НЛО прилетело и опубликовало эту надпись здесь
                  • НЛО прилетело и опубликовало эту надпись здесь
                      0
                      не сомневайтесь напишем, но в следующей статье. из этой статьи мы выкусили весь «маркетинговый-булшит», ссылка специально для освежения в памяти что есть такая постсоветская разработка и для тех кто хочет углубить свои знания.
                      не нравиться — проходите мимо.
                        0
                        Возможно, но статья не об этом. Там нигде нет ни единого призыва к использованию именно разработки автора и перечисления именно ее преимуществ.
                        Никакого маркетинга в статье нет, думаю, ваши претензии вообще не обоснованы.
                          0
                          Ну конечно же маркетинга там нет, совершенно. А у вас картинки часом не отключены? А то мне там примерещилось что то, явно превосходящее по легкости освоения и AppEngine и Azure.
                            0
                            вам не померещилось, только там не легкость усвоения — а легкость использования и уровень абстракции. все развивается, и облака тоже.
                              0
                              Видите ли — вы так поместили свое решение интересно, и по моему несколько нагло. Если хотите себя пропиарить, то опишите толком чем вы лучше, а не показывайте на доморощенном графике.
                      0
                      пока вы не сказали, я и не думал что это реклама… максимум — популяризация технологии. кстати, какую контору рекламируют то?)
                  • НЛО прилетело и опубликовало эту надпись здесь
                      0
                      Да ладно, нужна же мотивация для того, чтобы писать качественные авторские статьи. Не для кармы же их писать.
                      • НЛО прилетело и опубликовало эту надпись здесь
                          +1
                          В статье описываются общие понятия — тут особо нет смысла и возможности быть не объективным. А что вы подразумеваете под открытостью? Говорить сразу ради чего писалась статья, типа «я решил написать эту статью, чтобы пропиарить свой проект»? Ну это сомнительно. Я думаю большинство статей пишутся не для кармы и не изза массы глубокомысленных комментариев, которые автор получит после публикации на хабре. Но вот стоит ли авторам говорить в слух о том ради чего действительно писался материал для хабра? Я думаю это делать совсем не обязательно…
                          • НЛО прилетело и опубликовало эту надпись здесь
                              +2
                              Я не говорю для кого, я говорю о том зачем — зачем автору писать статью и публиковать её на хабре, что его мотивирует на это…
                              • НЛО прилетело и опубликовало эту надпись здесь
                        0
                        тоже заметил, но все же текст правильный. Идея правильная подача рекламы не хорошая, уж слишком палитесь. Но по сути вы только дали более подробную расшифрофку IaaS, PaaS, SaaS, забыли про S+S, и саму суть не обьяснили.
                        +3
                        очень нужная тематика. Написано довольно понятно. Только картинка неясная. Может стоило нарисовать оси?
                          0
                          Спасибо автору за доходчивое объяснение. Теперь я до конца понял что из себя представляют облачные вычисления и услуги на основе этой технологии.
                            0
                            Объясните, пожалуйста, чем «облако» отличается от «кластера»?
                              +1
                              Насколько я понимаю, то облако по отношению к кластеру — это немного другое измерение. То есть, про облако можно сказать так — возможности масштабирования облака предоставляют приложениям кластеры переменного размера.

                              С точки зрения использования «совместных мощностей» облако можно, по сути, назвать и кластером.

                              С другой (более простой) стороны — со стороны пользователя ресурсами — облако — это нечто «бесконечное», с неопределенными границами ресурсов и «свободно» масштабируемое, в то время как кластер — обычно имеет заданные «границы», обусловленные формирующими его ресурсами (например, сложенными мощностями составляющих его компьютеров).

                              Ну и также облако (насколько я понимаю) обычно использует виртуализацию, обеспечивая тем самым возможности по автоматическому масштабированию.

                              Как то так :)
                                +1
                                По-моему, кластер создается для себя, ради решения конкретной задачи, облака же строят ради максимально удобной перепродажи вычислительных рессурсов незнакомым людям, для того чтобы они выполняли свои конкретные задачи не строя своих кластеров.
                                  0
                                  По моему «облако» это обычный grid кластер состоящий не из пользовательских машин, а из других мощных кластеров, географически разнесенных по миру. Ну и соответствующее ПО.
                                  +1
                                  Гениально. В такой маленькой статье объяснение сразу всех этих концепций. Для тех, кто далек от этого — самое оно.

                                  Я помню еще в свое время, когда сам был далек, спрашивал вас, для чего нужна эта платформа Hivext и в чем ее отличие. Теперь, в общем-то, понятно. Тогда, в разъяснениях отсутствовало слово «облако» :)
                                    0
                                    Спасибо, статья понравилась, расфорвардил знакомым, как отличное стартовое пособие :)
                                      +4
                                      «Гладко было на бумаге...»

                                      1. Зачем «простому пользователю» распараллеливание на тьму серверов? Для форматирования в ворде или для пересчета в экселе?
                                      2. Допустим применение тыщщам серверов нашли (AI там, бомбы рассчитываем, бином вычисляем), узким местом будет не интегральная мощность облака, а то, что все полученные слабосвязанные результаты расчетов придется сливать в эктазе, когда их буду синхронизировать, интегрировать, консолидировать, конвертировать, анализировать и т.п.
                                      3. Уже сейчас мегаресурсы современных компов потребляются в основном играми. Людям нужны игры. Кто для игр облака применит (AI тот же), тот озолотится :)
                                        0
                                        уже применили для игр, onLive
                                        0
                                        Надеюсь, ваш Hivext таки выстрелит :)
                                          0
                                          Все это возвращает нас во время мейнфреймов и бездисковых терминалов, когда у пользователя были только устройства ввода (клавиатура, потом добавилась и мышь) и устройства вывода (принтер, а потом дисплей). Все данные имелись в мейнфрейме и там же выполнялись вычисления.
                                          Сейчас, по сути, происходит тот же самый процесс, с той только разницей, что вместо одной большой дуры на полздания у нас тьма маленьких дурочек, разделенных по функционалу (вычисления, хранения, передачи, проч). Т.е. развитие идет по спирали и мы оказались в той же точке, но на новом качественном уровне.
                                          Гораздо более интересно, что будет ПОСЛЕ облачных вычислений? К чему это приведет? Скорее опять вернется к персональным устройствам, но на новом уровне — процессор в часах, экран в очках с проецированием на сетчатку, постоянный доступ в сеть, проч.
                                          Будущее уже здесь?
                                            0
                                            Скорее всего будет какое-то очень продвинутое облако. Проецирование на сетчатку, жесты, голосовое управление, голограммы — само собой, но обрабатываться это будет где-то «очень-очень далеко в облаках». Разумеется, доступ в сеть будет настолько постоянным, насколько это вообще возможно.
                                              0
                                              я полагаю, что каждое клиентское устройство уже будет частью большого облака. И таких облак будет много, каждый будет сам решать, к какому подключиться и для каких целей (как аналогичный пример — закрытая сеть «perfect dark», недавно здесь рассмотренный — никто не знает, что именно он хранит, но может при этом пользоваться контентом из данной сети)
                                                0
                                                Тут смотря что значит «каждое устройство будет частью большого облака». Я думаю, что прежде всего это будут «тонкие клиенты». Все-таки, как ни крути, каждому устройству — своя роль и, например, с обработкой лучше всего будут справляться серверы, но вот «показать» что-то визуально они не могут — для этого и нужны всякие устройства-агенты (которые в определенном будущем скорее всего превратятся просто в устройства считывания/записи всех 5 органов чувств напрямую).
                                              0
                                              Хочу еще добавить.
                                              Каждый из уровней абстракции (IaaS, PaaS, SaaS) нужен для решения каких-то задач на каком-то уровне. Уровень SaaS нужен уже для решения практических задач отдельных людей для работы или для личных целей. Так что, вполне возможно ожидать появление новых уровней абстракции, таких как WaaS (Work as a Service) и LaaS (Life as a Service) :) Не слишком точно, но суть понятна — на нижнем уровне остается то, что уже есть (например, IaaS), но растет качественно, а на более высоких — накладываются новые слои абстракции.
                                              0
                                              Хотелось бы прояснить для себя кое что.

                                              Как я понял, облако — это тупо распределенная виртуальная машина, т.е. вмка, использующая все доступное железо в кластере как один комп?

                                              Т.е. теоретически: есть 4 компьютера по 2ггц с 2мя гигами оперативки в каждом. ОСь в облачной виртуалке будет воспринимать это как один компьютер с производительностью проца 4х2ггц и оперативкой в 4х2 Гб? Я правильно понял?
                                                0
                                                Единой ОСи для кластера насколько я знаю нету. Грубо говоря есть диспетчер задач на входе, который раскидывает на каждый узел входные задачи, в зависимости от нагрузки отдельных узлов, проводит миграцию задач и т.д.
                                                  0
                                                  Ну например — есть несколько компов. Можно ли сделать так, чтобы они работали как один?

                                                  Например, поставить в эту виртуалку венду/линух, и рендерить на ней с помощью максы/standalone mental ray?

                                                  Родной максовский дистрибутед рендер юзать не могу, т.к. на каждом из компов не хватает оперативки — рендер вылетает. Т.е. допустим, у меня есть 4 компа с 2 гигами на каждом, мне надо сделать вмку с 8 доступными гигами.

                                                  Такое возможно?
                                                    0
                                                    Естественно. Есть приложение для 3dmax, которое позволяет распаралеливать рендеринг на множество компов. Все что необходимо, это ставишь на все машины линух, и приложение которое принимает задачи от 3dmax. Названия приложения с ходу не скажу.
                                                      0
                                                      Нет, в таком виде нет.
                                                      Как сказали выше, можно на каждый поставить свой рендерер, которые будут работать параллельно. Это все индивидуально, для каждого конкретного случая нужно писать программу.
                                                        0
                                                        В идеале модуль занимающийся рендерингом надо реализовать на базе облака. Тогда вы сможете давать команды на рендеринг хоть с мобильного телефона. Ну а облако в свою очередь содержит ферму рендеринга и предоставляет API. Пакеты 3d моделирования смогут использовать облако для рендеринга.
                                                      0
                                                      внезапно слегка дополню вопрос:

                                                      глядя на eucaliptus и xencloud, распределение происходит не между задачами (процессами), а между конкретными цельными виртуалками, коротые раскидываются на разные физические узлы.
                                                      каждая виртуалка при этом располагает как максимум — ресурсами того узла на котором работает.

                                                      таким обрзом никакого объединения мощностей не происходит и никакого оптимального распределения ресурсов не происходит.
                                                      как минимум с точностью до виртуалки — если вдруг какому то серверу стало тесно на одном физическом узле, его перенесут на другой.

                                                      непонято, насколько характерно это для IaaS облаков?
                                                      или это особенности двух указанных реализаций?

                                                      в PaaS, понятное дело, создаётся что-то типа операционной системы, работающей с объединёнными ресурсами, доступ к которым обеспечивается уже библиотеками и API.
                                                      0
                                                      Расшифруйте пож. аббревиатуры на английском. Так будет легче запомнить.
                                                        +2
                                                        IaaS — Infrastructure as a Service
                                                        PaaS — Platform as a Service
                                                        SaaS — Software as a Service
                                                          0
                                                          Я то уже погуглил, но предпочел бы это увидеть сразу в топике.
                                                          Вот и высказал мысль :)
                                                      • НЛО прилетело и опубликовало эту надпись здесь

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

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