Правильно используем "облачные" технологии, или уверенный "шаг" в Clouding!:) Часть-I

Начало...:
Вы несомненно чувствуете современную тенденцию в области облачных технологий, упрятать в "небо" всё!:) - от электронной почты и....до приложений, хранить в Сети, т.е. в этих самых "ненужных" облаках:). Спрос, всегда рождает предложение, и в настоящее время за реализацию подобных решений взялись не только раскрученные коммерческие компании и мега-корпорации..., но и независимые разработчики свободного ПО (Ура...дождались, скупая слеза линуксоида упала на клаву...:) ). Его спектр в данной области сейчас широк (как - Днепр, Волга и Енисей, великие славянские реки:) ) — от PaaS-фреймворков и средств автоматизации развертывания групп систем и до средств приватности и "секурности" в сети. Я решил сделать небольшой обзор наиболее понравившихся проектов, так или иначе связанных с современными веяниями "облачной" моды в 2014 году.:)

И так, встречаем....(приятная музыка в зале, свет на рампу...!):

1. OpenDaylight

Ранее почти все сетевое оборудование управлялось нецентрализовано — все настройки прописывались индивидуально для каждого шлюза/свича. И это устраивало почти всех. Однако с появлением облачных технологий потребности изменились и понадобились новые идеи по организации управления сетями. Одной из таких идей стала SDN (Software Defined Networking). Заключается идея в том, что в сети, построенной на ее основе, управление сетью отделено от устройств передачи данных, что добавляет еще один уровень абстракции.

На базе этой идеи была разработана еще одна — NFV (Network Functions Virtualization), которая тесно пересекается с идеей SDN. NFV позволяет виртуализировать отдельные сетевые функции, которые ранее можно было реализовать только физически, — например, брандмауэр или IDS. То есть физически ты можешь находиться в Австралии, а брандмауэр — вообще за океаном, в самой "незалежной" стране в мире:).

И тут мы переходим к OpenDaylight:)). Он представляет собой платформу для организации работы этих технологий. Строго говоря, это не готовое решение, а фреймворк, на основе которого заинтересованные компании и разработчики могут строить свои продукты для SDN-сетей. Прежде чем описывать OpenDaylight дальше, нужно получить некоторое представление о структуре таких сетей. Условно можно разделить SDN-сеть на три уровня:

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

OpenDaylight концентрируется на втором уровне SDN-сети в виде набора RESTful API и OSGi-фреймворк для приложений верхнего уровня («северный интерфейс»), реализуя при этом C&C-протоколы для устройств передачи данных, такие как OpenFlow, BGP и SNMP («южный интерфейс»). В нем реализованы различные диспетчеры — от диспетчера топологии и до диспетчера переадресации трафика.

Ядро OpenDaylight написано на Java, следовательно, может работать на любой системе, где имеется JVM. Кроме того, фреймворк этот гибкий и модульный, что позволяет использовать только те возможности, которые необходимы для конкретной сети.

В целом это довольно перспективное направление, которое, однако, имеет смысл лишь для крупного Enterprise-сектора, например для магистральных провайдеров.

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

Архитектуру OpenIoT можно разделить на три уровня:

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

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

Если же говорить о технической стороне проекта, то используется опять же Java, есть возможность самим тестировать данную платформу, благо виртуальные датчики в наличии.

3. Cloud Foundry

Cloud Foundry — открытая облачная PaaS-платформа от VMware, по большей части написанная на Ruby. Для начала, кто забыл, напомню:), что такое PaaS. PaaS — своего рода фреймворк и инфраструктура для создания масштабируемых приложений любого уровня. Как правило, доступ к подобной инфраструктуре платный, и внутренности ее спрятаны где-то в глубинах дата-центров разработавшей ее компании. Соответственно, развертывание ее на собственных серверах невозможно, ...печалька:(((.

Однако недаром в первом предложении прозвучало слово «открытая». Да, VMware одной из первых открыла свою облачную платформу, опубликовав ее исходники под Apache License 2.0. Таким образом, развертывание своего PaaS-облака стало доступным и для простых смертных пользовтаелей, что очень приветствуется...:)

Перейду к описанию архитектуры.

Центральной частью Cloud Foundry является Cloud Controller, который управляет всеми модулями и хранит информацию о пользователях, сервисах и приложениях. Также он контролирует предоставляемые услуги. И да, он имеет как CLI, так и REST API.
Помимо Cloud Controller, существует еще Health Manager. Он регулярно сравнивает текущую информацию, получаемую от специальных агентов, с желаемым состоянием, предоставляемым Cloud Controller, и, если обнаруживает какое-либо некорректное состояние, уведомляет центральную часть о сбое, что очень позитивно...при наличии большого количества всяких любителей "халявки"!:)
Непосредственно за маршрутизацию запросов к приложениям отвечает Router.
За состояние той или иной службы (к примеру, СУБД) отвечает Service Gateway, а за запуск — Service Nodes.

Особенности данной облачной платформы — во-первых, не существует единственной точки, повреждение состояния которой могло бы привести к падению всей инфраструктуры - Ого:)
Во-вторых, поддерживается горизонтальное масштабирование.
В-третьих, VMware добилась от Rails, на базе которого в основном и построено ядро Cloud Foundry, асинхронности.
В-четвертых, несмотря на то что написана платформа на Ruby, в качестве средств для написания приложений могут использоваться самые разные языки и фреймворки — от Scala до Node.js. Это достигается путем создания языково-независимой системы коммуникаций.
Платформа, по современным меркам, относительно зрелая, то есть «болезнь роста» она уже прошла. Неоспоримым преимуществом ее является открытость — то есть возможно развертывание локального облака хоть у себя дома. Также платформа позволяет создавать решения, масштабируемые до 5 тысяч машин.
Но за все это удовольствие приходится платить излишней сложностью конфигурирования, так что в общем случае проще будет купить место в каком-нибудь платном облаке, а затем по необходимости создать свое.

4. OpenStack - является открытой облачной платформой.
Но в отличие от Cloud Foundry это IaaS, иными словами, является нижележащим слоем и предоставляет базовые ресурсы для работы с данными — то есть хранилища данных, виртуальные серверы и сетевую инфраструктуру. Делаться это должно динамически, поэтому неудивительно, что первые подобные решения были проприетарными и стоили больших денег.
OpenStack появился в результате объединения усилий NASA и Rackspace и в настоящее время имеет следующие возможности:

- возможность наличия более чем одного арендатора облака (Multi-Tenancy). Это, в свою очередь, предполагает развитые средства логирования, биллинга и удобный веб-интерфейс;
- масштабируемость — неотъемлемая часть любой облачной инфраструктуры;
- поддержка множества систем хранения данных — iSCSI, AOE, SAN...;
- в качестве бэкенда могут использоваться такие гипервизоры и технологии, как Xen, KVM, VMware/ESX и даже LXC.

OpenStack как IaaS не уступает, решению от той же Amazon. Отличается же он от последнего тем, что облако можно при желании развернуть и в своей фирме.

Пока...все:)

Спасибо за Ваше внимание!:)

В *nix-системах сетевые средства традиционно являются сильной стороной, и даже в эпоху облачных вычислений, разработчики сосредоточились на создании новых инструментов и фреймворков (или так заявляется...:))) ), способных облегчить жизнь как им самим, так и обычным пользователям, ну или почти облегчить:))).

Оценка: 
5
Средняя: 5 (1 оценка)

Комментарии

надо применить статью в деле!

Оценка: 
Пока без оценки

Комментировать

Filtered HTML

  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <strike> <code> <h2> <h3> <h4> <h5> <del> <img>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.