Сейчас в области хостинга, особенно если дело касается высоконагруженных и требующих масштабирование систем, не так и много вариантов. Одним из решений, альтернативных обычным кластерам или просто многосервернным решениям, является использование системы Elastic Clouds - по-сути, виртуального облака вычислительных ресурсов, которое исполняется на распределённом кластере, а внутри предоставляет ресурсы процессора и хранения данных, а также ввод-вывод, при этом масштабирование вашей системы может быть практически неограниченным и незаметным. Это и есть значение слова Elastic в определении - мы можем в любой момент гибко масштабировать систему, исходя из наших потребностей, при этом не зависим от конкретного железа или других ресурсов.
На рынке хостинга сейчас основными игроками являются, без сомнения, Amazon с его сервисами (в данном контексте мы имеем ввиду
его платформу EC2), недавно вышедший
Google App Engine и анонсированный, но ещё закрытый для участия Aptana Cloud (впрочем, первые обзоры уже есть и
мы о них писали). Каждый проект по своему подходит к реализации концепции "облачности", но вероятно самым универсальным и полным решением пока является именно Amazon EC2. Кстати, на русском уже есть несколько обзоров-введений в тему, поэтому я только дам ссылки (например,
эта или
эта). Если поверхностно и кратко - то Amazon предоставляет полную виртуализацию для исполнения пользовательских задач, то есть вы развёртываете в облаке не свои скрипты (как предлагает Google App Engine, кстати и про его
плюсы и минусы обзор краткий есть), а специальным образом собранные образы виртуальных машин, которые вы можете подготовить у себя, а потом развернуть для исполнения на серверах Amazon. Такой подход очень гибкий и никак не ограничивает пользователей в применяемых наборах приложений и библиотек, позволят сосредоточится на том ЧТО делать, а не бороться с ограничениями и пасть в попытках решить КАК.
Однако. Вы думаете, что Amazon и только есть? Нет, оказалось, что теперь появилось и решение, позволяющие самостоятельно развернуть у себя не только виртуализацию такого уровня, но и построить свою собственную полностью открытую платформу Elastic Cloud.
Проект
EUCALYPTUS - Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems предоставляет открытую реализацию платформы облака, которая, кстати, совместима с форматом образов для Amazon EC2, таким образом сравнить обе системы можно очень просто, как и переносить приложения, если вы вдруг заведёте собственный хостинг.
Технологически EUCALYPTUS работает поверх кластера под управлением системы
Rock Cluster (он требуется для установки системы, в будущем выйдет релиз не требующий дополнительных инструментов) и требует для развёртывания платформы виртуализации Xen 3.0.2. Сейчас система распространяется в виде двух образов для развёртывания через Rock на всех узлах кластера (интересно, можно ли развернуть эту систему на одном физическом сервере, например, в двух виртуальных машинах VirtualBox, для тестирования). Для управления нашим облаком доступен веб-интерфейс, в котором мы можем раздавать права другим пользователям, которые и будут размещать свои виртуальные машины для исполнения в среде облака. Кстати, мы уже упоминали, что образы совместимы с теми, что используются в Amazon-е, и создавать их можно с помощью тех же инструментов, и такой ход выглядит самым разумным - создатели EUCALYPTUS-а убили, как говорится, сразу двух зайцев. Они сэкономили и своё время, на создание собственного формата образов и поддержки его, сэкономили время пользователей, им не нужно создавать различные образы одного и того же, а также получили сразу всю развитую инфраструктуру для создания образов, которую подготовила Amazon для себя. И тестировать такое решение теперь гораздо легче, хотя, конечно, на данном этапе
не вся функциональность поддерживается.
Пока исходные коды проекта недоступны, хотя он полностью открыт (под BSD-лицензией) и декларируется как open source. В частности, в документации сказано, что развёртывание такой системы из исходных кодов сейчас является очень сложным и "неправильным" делом, поэтому пока доступны только уже собранные образы (
в оригинале это звучит следующим образом:
We have not released the code of version 1.0 because building and deploying this distributed system from source is too error-prone in its current state).
Несмотря на молодость проекта (29 мая первая версия, правда, сразу под номером 1.0) и не весь функционал, система уже представляет собой и исследовательский интерес, и даже коммерческий - вполне реально её развернуть на небольшом кластере и предоставлять услуги хостинга для тестовых проектов, например, в процессе разработки тестировать системы, которые в production потом будут развёрнуты на сервисах Amazon EC2. Будем ждать появления доступных платформ и на нашем рынке!
P.S. Материал с моего блога,
оригинальный пост здесь.