Ваше местоположение в сети:
Рубрика:

Применение облачных технологий

Разделы сайта:

Эта статья посвящена двум понятиям - облачным технологиям и распределенным вычислениям.. Почему я решил объединить рассказы про эти понятия в одну статью? Наверное, потому, что и в том, и в другом случае речь идет о вашем очень тесном взаимодействии с сетью. Только в первом случае сеть работает на вас, а во втором - вы на сеть.

Чтобы сразу стало понятнее, приведу простой пример. Многие из вас, наверняка, имеют электронную почту от gmail и читают свои письма прямо на сайте gmail.com. То есть хранятся они где-то в интернете. Вот это и есть простейший пример облачных технологий.

Итак, продолжим...

Облачные технологии.

Откуда вообще возник этот термин? А просто когда рисуется какая-нибудь схема про компьютеры и сети, неподконтрольный нам интернет рисуется в виде облака. Так, например, было и у меня нарисовано в статье про VPN.

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

Каково может быть применение облачных технологий? Как и было сказано выше, для конечного пользователя облако - что-то вроде черного ящика. Введя в браузере gmail.com вы соединитесь с одним компьютером, а в следующий раз - с другим. Потому что имеется целая система серверов, которые занимаются распределением нагрузки. Ведь запросы пользователей могут происходить чрезвычайно неравномерно! Нагрузка из конкретного региона может зависеть как от времени суток, так и, скажем, от политической обстановки или только что совершенного террористического акта.

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

Наиболее активно развивает сейчас облачные технологии Google. Мы же уже обсуждали Google Chrome OS. Идея подобных систем состоит в том, чтобы все ваши данные перенести "на облако" и обрабатывать там. Это существенно снижает требования к мощности персонального компьютера, но при этом существенно повышает требования к качеству интернет-соединения.

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

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

Распределенные вычисления.

Если при применении облачных технологий вы храните ваши данные в интернете, но при распределенных вычислениях вы даете возможность вашему компьютеру участвовать в каком-то общем проекте, работать "на благо мира". Зачем это вам нужно? В общем-то не нужно совсем. Можно просто попробовать, что называется, "поиграться", а можно действительно поучаствовать в каком-то полезном проекте, например в поиске лекарства от рака.

Как устроены подобные вычисления? Очень просто и очень сложно одновременно. Очень просто - потому, что основаны они на элементарной идее - большую часть времени ресурсы вашего компьютера простаивают. Так почему бы их не использовать для чего-то хорошего?

И вот тут наступает момент сложный. Если вы уже читали мою статью про параллельное программирование, то понимаете, что даже в рамках одного компьютера или суперкомпьютера очень сложно распределить выполнение задачи. А тут нужно "раскидать" ее по всему миру.

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

Я не буду детально описывать существующие программы распределенных вычислений. К вашему вниманию статья из журнала хакер и сайт distributed.ru - там вы сможете почитать про существующие программы и, возможно, присоединиться к ним.

← Выбор хостингаКомандная строка Ubuntu →
comments powered by Disqus