Добрый день.
Субъективное мнение о будущем облачных технологий по опыту работы с Eucalyptus, VMware vSphere и Microsoft Windows Azure.
Краткое вступление
В настоящий момент сервисы, предоставляемые по запросу (on demand), можно условно разбить на три группы:
1. Infrastructure-as-a-Service (IaaS)
Провайдер выделяет виртуальные машины с уникальными IP-адресами, хранилище данных и дополнительные сервисы (например, балансировщик нагрузки), облегчающие развертывание информационных систем. Самый яркий пример: Amazon EC2. В распоряжение пользователя предоставляются виртуальные машины с предустановленным программным обеспечением и требуемыми ресурсами, а также сервисы для работы с данными (SimpleDB, MapReduce, RDS), с помощью которых можно построить свою инфраструктуру. Подобную функциональность предлагает Eucalyptus, но при этом облако реализуется на вычислительных мощностях его владельца.
Еще один пример: решения VMware. Компоненты vSphere/vCenter позволяют динамически управлять нагрузкой на хосты и обеспечивать бесперебойную работу виртуальных машин (перенос и рестарт виртуальных машин на другом хосте в случае сбоя и даже создание “теневых” копий виртуальных машин, чтобы избежать простоев). Партнеры VMware предлагают технопарки, которые можно арендовать под свои нужды.
2. Platform-as-a-Service (PaaS)
Провайдер выделяет место для размещения пользовательских приложений + свой API. Типичный пример: Windows Azure, облачная OS от Microsoft. Разработчик получает интерфейсы и библиотеки Azure, на основе которых создает свою систему и размещает ее в датацентре Microsoft.
3. Software-as-a-Service (SaaS)
Провайдер предоставляет свое приложение. К примеру, Google Docs или Twitter. Пользователь приходит “на все готовое”, у сторонних разработчиков есть возможность создавать плагины.
Сильные и слабые стороны облачных вычислений
Главное достоинство облачных технологий: отличные возможности для масштабирования. Система растет, набирает популярность? Нужно больше “виртуальных сил”? Больше места для данных? Все просто. Новые ресурсы (workers в Azure, instances в EC2 и Eucalyptus, дисковое пространство) выделяются по запросу либо автоматически по достижении порога допустимой нагрузки или заполнения выделенного хранилища.
Другие достоинства облаков соседствуют с неочевидными тонкими звеньями. Вот несколько примеров:
1. У пользователя отпадает необходимость заботиться о размещении/сохранности приложений и данных. Можно забыть про резервное копирование? В какой-то степени, да. Провайдер заботится о регулярном архивировании и восстановлении в случае аварий. Но насколько надежна защита персональной информации? Можем ли мы быть уверены, что к нашим данным не будет несанкционированного доступа со стороны персонала провайдера и особо ретивых хакеров? Любое программное обеспечение подвержено взлому (снаружи или изнутри), в любом программном продукте есть баги (и в локальных приложениях, и в облачных сервисах). Но, в отличие от локальных систем, удаленные облачные сервисы не находятся в круге нашего влияния: мы получим только тот уровень безопасности, который может предоставить провайдер. И еще один нюанс: если в случае взлома банковского аккаунта хороший банк компенсирует потери, то в случае уничтожения или раскрытия секретных данных возможности для компенсации не столь очевидны.
2. Доступ к системе из любой точки, в которой есть Интернет. Да, так оно и есть. Но бывает, что Интернет есть, а сервисы провайдера недоступны. Скажем, ведутся регламентные работы, идет миграция приложений из одного датацентра в другой или же аккаунт пользователя просто заблокирован (”за дело” или по ошибке – это другая история).
3. Снижение расходов на инфраструктуру. Безусловно. К примеру, в случае EC2 и Azure пользователю не нужно держать технопарк на своей территории и заботиться о его обслуживании и обновлении. Но другая сторона медали – плата за ресурсы облака (количество instances/workers, трафик, объем хранилища, время работы - у каждого провайдера своя кухня).
4. API. Это здорово. Не надо изобретать велосипед. Но тем не менее, Azure – это не конструктор Lego. Это платформа, на которой надо отлаживать свои приложения. Удаленная отладка – дело непростое. В настоящий момент возможности “горячей” отладки в облаке ограничены, поэтому приходится воспроизводить баг на локальной девелоперской фабрике. На первый взгляд, это кажется достаточно удобным, но частенько возникают баги, которые на ура повторяются в “живом” облаке, но не воспроизводятся в локальной среде. И еще один нюанс – зависимость от API. Провайдер меняет SDK – будь любезен вносить изменения в свою систему, даже если ее текущее состояние тебя (и твоих клиентов) полностью устраивает.
Что можно ожидать в ближайшем будущем
Пользователей облачных систем можно условно поделить на две больших группы: корпоративные и простые.
Корпоративные пользователи с радостью ухватятся за Windows Azure: “Какие слабые места? Это технология от Microsoft, это прорыв!”. Такие пользователи давно сидят на игле Microsoft и не будут с нее слезать. Есть IT-бюджет, который нужно распилить, и Azure видится модным, перспективным вариантом вне зависимости от качества предоставляемых услуг. Такая позиция будет устраивать очень многих: и Microsoft, и фирмы-разработчики ПО, и корпорации-клиенты, и страховые компании (как же без них - новые риски). Безусловно, часть PaaS-пирога отъест Google App Engine, но старая кобыла Microsoft с борозды не сойдет. Что касается IAAS, то будущее просматривается в настоящем: решения Amazon надежны и эффективны – только плати.
У простых пользователей нет большого бюджета, и деньги они не выложат просто так. Им нужна технология, но не хочется зависеть от провайдера. Поэтому все более популярным будет развертывание облачных систем на своих площадках. Хороший пример – Eucalyptus. Открытый код, слегка сыроват, но можно заточить под свои нужды. Более того, Eucalyptus получил большую поддержку со стороны Ubuntu. Последняя версия Ubuntu Server позволяет развернуть Enterprise Cloud на базе Eucalyptus. И вот еще две интересных возможности Eucalyptus: 1) связка Eucalyptus + VMware: в качестве гипервизора использовать не KVM или Xen, а VMware ESX, тем самым объединив в одной системе “эластичность” выделения ресурсов в Eucalyptus и богатые возможности мониторинга/автоматизации/графического интерфейса, которые есть в ESX; 2) интеграция с Amazon EC2: при нехватке внутренних ресурсов можно временно арендовать виртуальные машины на Amazon, нарастив мощность своей “домашней” системы – благо Eucalyptus многое вобрал из EC2, включая клиентские инструменты для управления облаком. Дальше – больше: если облако находится в круге влияния его хозяина, то следующим шагом будет “домашний” API, домашний framework (либо самописный, либо созданный на основе существующих) и, в конечном итоге, информационная система, которая вбирает в себя возможности IaaS/PaaS/SaaS и при этом находится под полным контролем ее владельца.
Интересные времена настают. Оставайтесь с нами.
17.01.2010
Капитан Аляска |
Приложения |
Комментарии (3)
Добрый день.
Все новое, что создается в нашем мире, базируется на уже существующих достижениях. В одних случаях мы принимаем результаты предшественников как фундамент для наших творений, в других – не оставляем от них камня на камне и тщательно анализируем осколки. Специальная теория относительности Эйнштейна была построена на стыке классической кинематики и электродинамики. Язык программирования Perl вобрал в себя не только плоды лингвистических наклонностей Ларри Уолла, но и достоинства awk, grep и sed. Алгоритм ранжирования страниц, а затем и поисковый гигант Google увидели свет благодаря тому, что Сергея Брина и Ларри Пейджа не устраивали характеристики систем, существовавших к моменту их знакомства. Мы живем в мире, насыщенном информацией. Как сохранить то, что мы признали полезным и заслуживающим нашего внимания?
Прежде всего, а что именно заслуживает сохранения? Нам могут пригодиться системы Canonical или Apple, но нет никакого смысла хранить в загашнике технические характеристики Ubuntu или Snow Leopard. Хранить нужно ту информацию, которая является результатом наших умственных усилий. К примеру, результаты поиска в Google, когда из пары десятков страниц о сериализации в C# мы остановились на двух из них. Или те мысли, идеи, которые возникли у нас после прочтения книги, статьи. Или мимолетные инсайты, которые промелькнули в голове и уже готовы исчезнуть, если мы их не сохраним. Итак, есть смысл сохранить наши наработки и тайные знания, чтобы при необходимости к ним можно было легко вернуться.
Как хранить ссылки на web-страницы?
Вариант “в лоб” – в закладках браузера. Но такой выбор был оптимален в 90-х годах прошлого века, когда среди браузеров властвовал Netscape Navigator, а иметь ноутбук считалось роскошью. Сейчас пальцы среднестатического IT-профессионала бьют по клавишам рабочего ПК, домашнего ПК, ноутбука да еще и нетбука (гики добавят айфон, смартфон и КПК). Более того, на отдельно взятом компьютере зачастую удобно пользоваться несколькими браузерами, благо выбор есть. Как упорядочить закладки таким образом, чтобы не искать их по всем браузерам и машинам? Доступны несколько базовых вариантов:
1. Синхронизация закладок в браузерах.
Самый яркий представитель - Xmarks.
Первоначально это был аддон для FireFox, но в настоящее время помимо Firefox поддерживаются Internet Explorer и Safari. Плагин нужно поставить на каждый браузер, синхронизация осуществляется через синхронизирующий сервер в Интернете.
2. Сервис Delicious и иже с ним.
Закладки можно экспортировать из всех браузеров и присвоить им теги. После этого все новые закладки размещать напрямую в Delicious. Таким образом, закладки будут доступны с любого компьютера, подключенного к Интернету.
3. Собственные системы хранения.
Наиболее яркий представитель – Online Bookmarks.
Система написана на php/javascript, в качестве хранилища используется MySQL. Ставится легко и просто, настройки напильником почти не требует, но нужен хостинг – площадка в Интернете, где вы сможете свою систему разместить.
У каждого из представленных решений есть свои преимущества и недостатки. Пожалуй, наиболее удобна система Delicious (в сторону: пока они не ограничили количество закладок, не просят денег, не травят рекламой, не отваливаются от перегрузок). Синхронизация закладок подходит при более-менее устоявшемся составе компьютеров-браузеров. Система Online Bookmarks удобна при часто меняющихся компьютерах-браузерах и приверженности к структурированию закладок по папкам (как в браузерах), а не по тегам (как в Delicious).
И еще одна возможность, о которой стоит упомянуть: временное хранение закладок.
Вот пример: вы потратили полчаса на поиск информации о модульных тестах в Python, у вас открыто 30 вкладок в браузере, которые надо разгрести. И тут выясняется, что нужно срочно бежать по делу или же всплывает еще более срочная задача. Эти тридцать вкладок вам мешают. Надо открывать новые страницы, но не хочется терять старые. Некоторые браузеры (Firefox, Opera) умеют открывать страницы, которые были загружены в прошлый раз. Но сохранять и восстанавливать последний “слепок” не всегда достаточно. Представим такую картину: надо сохранить 30 ссылок по Eucalyptus, а потом 20 ссылок по Selenium. В таких случаях на помощь приходят плагины, которые умеют сохранять сессии. Одно из наиболее популярных и удобных решений – аддон Session Manager для Firefox. C его помощью можно сохранять множество сессий, а затем восстанавливать их в любой момент. В Opera подобная функциональность (в более скромном исполнении) встроена по умолчанию (меню File -> Sessions).
Хорошо, ссылки ссылками, но помимо ссылок хочется сохранять фрагменты текста, а также иллюстрации. Как?
Как сохранять материалы?
Самый раскрученный вариант: Evernote. Можно заносить не только ссылки, но и заметки, иллюстрации.
Можно работать непосредственно на сайте, а можно и в десктопном клиенте. На первый взгляд удобно, все в одном флаконе. Но есть несколько “но”: ограничения на бесплатный объем хранимой информации, ресурс не всегда доступен. И самое главное: это “куча-мала”. В эту кучу можно набросать заметок, картинок, ссылок и даже найти их при необходимости. Но с ними неудобно работать. Анализировать, вертеть-крутить, обрабатывать, перекраивать, применять. Подобными недостатками страдают и Google Docs.
C одной стороны это хорошая альтернатива Microsoft Office: 1) документы доступны онлайн (в том числе и для совместной работы) 2) тонкие фишки MS Word и Excel нужны не часто. И даже денег пока не просят и рекламы не видно. С другой стороны, в Google Docs все так же неудобно работать. Да, там можно написать реферат и совместно подготовить MRD. Но вот увидеть всю накопленную информацию “с высоты птичьего полета”, помозговать с ней – вряд ли. Следует также отметить, что даже с учетом растущей пропускной способности каналов связи онлайновые приложения значительно медленнее своих десктопных аналогов (по крайней мере, на текущий момент; причин много, но сегодня речь не о них).
Еще варианты? Специализированные системы. С ними есть одно маленькое “но” – зачастую они платные. Платить за софт абсолютно нормально, иначе софта было бы очень мало. Тем не менее, все изложенные выше варианты – бесплатные (даже Evernote в базовой конфигурации), поэтому категоричным противникам платного софта следующие несколько абзацев можно пропустить. Оставшиеся с нами поприсутствуют на своего рода бизнес-линче. Цель: поделиться собственными многолетними впечатлениями о продукте плюс сподвигнуть разработчиков его улучшить.
Итак, WinOrganizer, система управления информацией. 
Что удобно: древовидная структура документов и возможность перекраивать фрагменты “на лету”, переносить их из одной структурной единицы в другую, перемещаться между заметками, добавлять в Избранное. Встроенному текстовому редактору далеко до Vim, но тем не менее это не Notepad. Можно хранить не только текст, но и иллюстрации, пароли. Можно отслеживать события, вести учет задачам, хранить контакты в адресной книге - иными словами, делать с информацией все, что заблагорассудится. Хороший интерфейс, который можно настроить под себя. Все данные хранятся в базах (gso-файлы с хорошим сжатием). Программу и базы можно держать на флэшке и переносить с компьютера на компьютер.
Что не хватает:
1. теги. Да, куски текста можно легко перемещать из одного места в другое, но очень хочется иметь возможность назначать множественные теги разным абзацам с тем чтобы по клику на тот или иной тег получить эти абзацы в одном документе.
2. внутренний язык, открытый API – иными словами, возможность создавать свои собственные плагины. Например, для того, чтобы в среде WinOrganizer видеть информацию из других источников: Google Reader (Starred Items), Живой Журнал (Избранные записи), Online Bookmarks (закладки). Хороший пример: c помощью VimScript в редакторе Vim можно загружать документы по ftp/http и даже написать свою реализацию Тетрис.
3. поддержка Linux. Хочется получить такую поддержку хотя бы в Wine.
4. возможность синхронизировать содержимое из разных версий баз. Идеальный вариант: хранить базы удаленно, иметь к ним доступ по https и синхронизировать с локальной копией. Подобную функциональность предоставляет сервис DropBox.
Итоги
Рассмотренные выше инструменты могут служить отличным подспорьем для сохранения полезной информации. Каждый из них по своему уникален, удобен и эффективен. Выбор автора статьи: Online Bookmarks и Session Manager для постоянного и временного хранения закладок, WinOrganizer и Google Docs для долгосрочного и краткосрочного хранения записей. Заменить их каким-то одним инструментов без потери эффективности на данный момент не представляется возможным. И потому разрешите поделиться мечтой:
Хочется иметь единый пульт управления всем хозяйством и гибкие возможности его настройки. Вспомним Альберта Эйнштейна и Сергея Брина. Первый семь лет проработал в патентном бюро и собаку съел на упорядочивании документов. Областью интересов второго были технологии сбора данных из неструктурированных источников, больших массивов научных данных и текстов. Эйнштейн и Брин добились неплохих результатов, не правда ли? :) Если Эйнштейну хватало бумаги и чернил, то в наше время нужны более эффективные инструменты. А значит, есть большая ниша для продуктоводов, разработчиков ПО и, соответственно, варианты выбора для простых пользователей.
До встречи. Оставайтесь с нами.
03.12.2009
Капитан Аляска |
Приложения |
Комментарии (12)