Научная статья на тему 'Мониторинг виртуальной вычислительной системы'

Мониторинг виртуальной вычислительной системы Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
1053
277
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МОНИТОРИНГ / ВИРТУАЛЬНАЯ ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА / ВИРТУАЛЬНАЯ МАШИНА / MONITORING / VIRTUAL COMPUTING SYSTEM / VIRTUAL MACHINE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Горбачевская Елена Николаевна, Марфин Сергей Григорьевич

Статья посвящена вопросам мониторинга вычислительных систем, использующих виртуализацию, проектирования систем мониторинга виртуальных систем.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Горбачевская Елена Николаевна, Марфин Сергей Григорьевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The article deals with the monitoring of computing system using virtualization, designing systems for monitoring of virtual systems.

Текст научной работы на тему «Мониторинг виртуальной вычислительной системы»

ВЫЧИСЛИТЕЛЬНЫЕ МАШИНЫ, КОМПЛЕКСЫ И КОМПЬЮТЕРНЫЕ СЕТИ

Е.Н. Горбачевская, С.Г. Марфин

МОНИТОРИНГ ВИРТУАЛЬНОЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ

E.N. Gorbachevskaya, S. G. Marfin

MONITORING OF VIRTUAL COMPUTING SYSTEM

Ключевые слова: мониторинг, виртуальная вычислительная система, виртуальная машина.

Key words: monitoring, virtual computing system, virtual machine.

Аннотация

Статья посвящена вопросам мониторинга вычислительных систем, использующих виртуализацию, проектирования систем мониторинга виртуальных систем.

Abstract

The article deals with the monitoring of computing system using virtualization, designing systems for monitoring of virtual systems.

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

Мониторинг был еще в давние времена, когда люди, приходя на склад, брали определенные вещи и, уходя, записывали что забрали. В 21 веке все учитывается через сеть Интернет или локальные сети корпораций.

В данных больших сетях находиться очень много конфидициальной информации по фирмам, базам данных, складам и т.д.

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

Мониторинг - систематический сбор и обработка информации, которая может быть использована для улучшения процесса принятия решения, а также, косвенно, для информирования общественности или прямо, как инструмент обратной связи в целях осуществления проектов, оценки программ или выработки политики. Он несёт одну или более из трёх организационных функций:

- выявляет состояние критических или находящихся в состоянии изменения явлений окружающей среды, в отношении которых будет выработан курс действий на будущее;

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

- устанавливает соответствия правилам и контрактным обязательствам.

Персональные компьютеры и информационные технологии вызвали необходимость в

создании разных способов просмотра и контроля информации. Их применение позволило повысить эффективность просмотра информации.

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

Мониторинг сейчас используется в любой сфере бизнеса: транспортные, авиа перевозки и т.д.

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

Виртуальные сети в наше время очень важная структура.

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

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

При консолидации и виртуализации сотни серверов можно заменить десятками. Уровень загрузки серверов увеличивается с 10 % и менее до 60 % или выше. Повышаются скорость работы, надежность и эффективность IT-инфраструктуры.

Виртуализация путем разделения ресурсов сервера между несколькими виртуальными машинами (VM) позволяет различным приложениям - даже исполняемым в разных операционных системах (ОС) - работать совместно на одном и том же сервере корпоративного уровня. Каждая VM, действуя как отдельный автономный сервер, после виртуализации работает на одном физическом сервере.

Виртуальная машина (англ. virtual machine) - программная или аппаратная среда, исполняющая некоторый код (например, байт-код, шитый код, p-код или машинный код реального процессора), или спецификация такой системы (например: «виртуальная машина языка программирования Си»).

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

Как пример альтернативой многовариантной загрузки, система виртуальных машин является очень привлекательной. Системы виртуальных машин (СВМ) позволяют под управлением одной операционной системы (хостовой, базовой) создавать один или несколько виртуальных компьютеров (виртуальных машин - ВМ), на каждом из которых имеется своя операционная система (гостевая) со своим комплексом программного обеспечения. Создание нескольких виртуальных машин требует разделения ресурсов реального компьютера.

Виртуальная машина - это полностью изолированный программный контейнер, способный выполнять собственную операционную систему и приложения, как физический компьютер. Виртуальная машина работает абсолютно так же, как физический компьютер, и содержит собственные виртуальные (т.е. программные) ЦП, ОЗУ, жесткий диск и сетевую интерфейсную карту (МС).Операционная система, приложения и другие компьютеры в сети не способны отличить виртуальную машину от физического компьютера. Даже сама виртуальная машина считает себя материально существующим компьютером. Тем не менее, он состоит исключительно из программного обеспечения и абсолютно не содержит аппаратных компонентов. Поэтому виртуальные машины обладают рядом существенных преимуществ по сравнению с физическими серверами.

Система виртуальных машин удобно решает проблему переключения с работы приложений одной операционной системы на другую, достаточно только переключиться с одного окна (в котором запущена ОС MS Windows) на другое (в котором находится приложение Linux). При этом не требуется перезапуска компьютера.

Система виртуальных машин позволяет решить следующие задачи:

- запуск одновременно несколько различных операционных систем на одной машине;

- запуск виртуальных машин в полноэкранном режиме с рабочего стола ОС MS с одновременной работой в других окнах приложений в фоновом режиме;

- установка виртуальных машин без переразбиения дисков;

- запуск приложений Microsoft Windows на компьютере с ОС Linux, почти без потери производительности;

- создание и тестирование приложения одновременно для разных операционных систем;

- тестирование сомнительного программного обеспечения в режиме безопасного тестирования без риска нарушить устойчивую работу системы или потерять критичные данные;

- обеспечение совместного использования файлов и приложений разными виртуальными машинами за счет использования виртуальной сети;

- запуск клиент-серверных или Web-приложений на одном компьютере или в сети;

- моделирование работы локальной сети.

Гибкость в распределении ресурсов дает возможность динамической переброски ресурсов с менее приоритетных задач на более приоритетные, обеспечивая тем самым адекватный уровень производительности и утилизации ресурсов:

- консолидированная и виртуализированная вычислительная среда позволяет легко масштабировать инфраструктуру согласно растущим потребностям бизнеса;

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

- простота управления и обслуживания дает ощутимую экономию в эксплуатационных расходах.

Тем не менее, несмотря на все преимущества, виртуальные машины также имеют и свои недостатки:

- потребность в наличии достаточных аппаратных ресурсов для функционирования нескольких операционных систем одновременно;

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

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

- различные платформы виртуализации пока не поддерживают полную виртуализацию всего аппаратного обеспечения и интерфейсов. В последнее время количество поддерживаемого аппаратного обеспечения стремительно растет у всех производителей платформ виртуализации. Помимо основных устройств компьютера, уже поддерживаются сетевые адаптеры, аудиоконтроллеры, интерфейс USB 2.0, котроллеры портов COM и LPT и приводы CD-ROM. Но хуже всего обстоят дела с виртуализацией видеоадаптеров и поддержкой функций аппаратного ускорения трехмерной графики - в виртуальных машинах все ещё полноценно нельзя играть в 3D игры! В этом плане, впереди всех находится компания VMware с экспериментальной поддержкой функций Direct 3D (однако, некоторые важные функции, такие как Vertex-шейдеры все ещё не поддерживаются). Но в ближайшем будущем эта проблема, безусловно, будет решена.

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

Виртуальные машины обладают четырьмя основными преимуществами для пользователя:

1. Совместимость

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

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

2. Изолированность

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

3. Инкапсуляция

Виртуальная машина представляет собой программный контейнер, связывающий, или «инкапсулирующий» полный комплект виртуальных аппаратных ресурсов, а также ОС и все ее приложения в программном пакете. Благодаря инкапсуляции виртуальные машины становятся невероятно мобильными и удобными в управлении. Например, виртуальную машину можно переместить или скопировать из одного местоположения в другое так же, как любой другой программный файл. Кроме того, виртуальную машину можно сохранить на любом стандартном носителе данных: от компактной карты Flash-памяти USB до корпоративных сетей хранения данных (SAN).

4. Независимость оборудования

Виртуальные машины полностью независимы от базового физического оборудования, на котором они работают. Например, для виртуальной машины с виртуальными компонентами (ЦП, сетевой картой, контроллером SCSI) можно задать настройки, абсолютно не совпадающие с физическими характеристиками базового аппаратного обеспечения. Виртуальные машины могут даже выполнять разные операционные системы(Windows, Linux и др.) на одном и том же физическом сервере.

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

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

Потребности бизнеса меняют представления об организации рабочего процесса. Персональный компьютер (ПК), ставший за последние десятилетия неотъемлемым атрибутом офиса и средством выполнения большинства офисных задач, перестает успевать за растущими потребностями бизнеса. Реальными инструментами пользователя оказывается программное обеспечение, которое лишь привязано к ПК, делая его промежуточным звеном корпоративной информационной системы. В результате активное развитие получают облачные вычисления (doud computing), когда пользователи имеют доступ к собственным данным, но не управляют и не задумываются об инфраструктуре, операционной системе и собственно программном обеспечении, с которым они работают.

Вместе с тем, с ростом масштабов организаций, использование в ИТ-инфраструктуре пользовательских ПК вызывает ряд сложностей:

- большие операционные издержки на поддержку компьютерного парка;

- сложность, связанная с управлением настольными ПК;

- обеспечение пользователям безопасного и надежного доступа к ПО и приложениям необходимым для работы;

- техническое сопровождение пользователей;

- установка и обновление лицензий на ПО и техническое обслуживание;

- резервное копирование и т.д.

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

Существует несколько технологий управления системой данных на основе виртуализации.

1. Parallels VDI. Технология виртуализации рабочих мест сотрудников на базе инфраструктуры виртуальных ПК - Virtual Desktop Infrastructure (VDI). VDI позволяет отделить пользовательское ПО от аппаратной части - персонального компьютера, - и осуществлять доступ к клиентским приложениям через терминальные устройства.

Экономические преимущества от использования технологий Parallels VDI:

- снижение инвестиционных затрат на рабочие места сотрудников;

- снижение затрат на администрирование;

- снижение эксплуатационных затрат;

- защита данных;

- высокая доступность и совместимость.

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

2. Network Appliance (NetApp). Компания, занимающаяся разработкой и производством дисковых массивов, входящая в мире в «большую тройку» производителей вместе с EMC и HP. Компания выпускает полный спектр устройств дискового хранения, от самых младших систем, серии 200, системы уровня предприятия FAS3000, до самых высокопроизводительных систем класса датацентра FAS6000.

Основные преимущества дисковых систем NetApp:

- единая линейка с единым функционалом;

- встроенный функционал, который позволяет создавать множественные мгновенные копии активных данных, таких как файлы пользователей, базы данных, почтовые базы;

- богатый функционал интеграции с программными продуктами по защите данных. Пример: SnapManager for MS SQL позволяет создавать мгновенные копии активной базы данных MS SQL, которые можно использовать для мгновенного восстановления поврежденной базы;

- управление дисковым массивом через web-интерфейс или интерфейс командной строки упрощает администрирование, снижает вероятность ошибки;

- использование RATD-4 позволяет с легкостью расширять дисковый массив добавлением дисков, при этом, в отличие от RAID-5 это не приводит к катастрофическому падению производительности на время пересоздания массива;

- возможность использовать одновременно как SAN (устройство с блочным доступом) и как NAS (устройство с файловым доступом, как обычный файловый сервер), причем SAN одновременно как FC так и iSCSI, а NAS как CIFS (Windows) так и NFS (UNIX), все это в одном устройстве. Данные доступны независимо от того по какому протоколу к ним обращаются, как с Windows так и с UNIX;

- дисковые массивы NetApp имеют развитые функциональные возможности по репликации (как синхронной так и асинхронной) как внутри массива, так и между массивами, в том числе географически разнесенными, что позволяет легко строить защищенные, катастрофоустойчивые кластерные системы хранения;

- высокая производительность.

3. VMWARE. Одно из самых мощных, доступных и простых в использовании решений для виртуализации, применяемое на рабочих станциях. Позволяет запустить на одном компьютере множество изолированных, стабильных и производительных виртуальных машин.

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

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

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

Система виртуальных машин фирмы VMWARE обладает следующими возможностями:

- позволяет запускать одновременно несколько различных операционных систем на одном стационарном персональном компьютере;

- позволяет запускать виртуальные машины в окнах рабочего стола X Window (X Window desktop) или в полноэкранном режиме; другие виртуальные машины в это время будут продолжать работать в фоновом режиме; для переключения между виртуальными машинами используются «горячие» клавиши;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

- позволяет запускать операционные системы, уже установленные на компьютере с многовариантной загрузкой операционных систем (ОС), без их переустановки или перекон-фигурирования;

- устанавливать виртуальные машины без переразбиения дисков;

- запускать приложения Microsoft Windows на компьютере с ОС Linux, причем почти без потери производительности;

- создавать и тестировать приложения одновременно для разных систем;

- запускать новые и не протестированные операционные системы и/или приложения в режиме безопасного тестирования (in a secure sandbox), без риска нарушить устойчивую работу системы или потерять критичные данные;

- обеспечивает совместное использование файлов и приложений разными виртуальными машинами за счет использования виртуальной сети (даже в пределах одного компьютера);

- позволяет запускать клиент-серверные или Web-приложения на одном ПК, запуская серверную часть на одной вычислительной машине, а клиентскую - на другой;

- позволяет запускать на одном ПК несколько виртуальных компьютеров и моделировать работу локальной сети (например, в целях обучения).

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

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

пьютере так называемой виртуальной машины (что-то вроде виртуального компьютера), в которой устанавливается своя собственная операционная система. Таких виртуальных машин на одной физической платформе может быть несколько, при этом каждая виртуальная машина имеет свои собственные виртуальные аппаратные компоненты: память, процессор, жесткий диск, сетевые адаптеры. Эти ресурсы резервируются виртуальной машиной за счет физических ресурсов аппаратного обеспечения компьютера. Такая модель организации вычислительных систем впервые появилась еще в 70-х годах прошлого века в мэйнфреймах корпорации IBM System 360/370, когда требовалось сохранить предыдущие версии экземпляров операционных систем. Но лишь в 21 -м веке эта технология обрела новый смысл на серверных системах и настольных ПК.

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

VLAN (Virtual Local Area Network) - это группа устройств, имеющих возможность взаимодействовать между собой напрямую на канальном уровне, хотя физически при этом они могут быть подключены к разным сетевым коммутаторам. И наоборот, устройства, находящиеся в разных VLAN, невидимы друг для друга на канальном уровне, даже если они подключены к одному коммутатору, и связь между этими устройствами возможна на сетевом и более высоких уровнях.

Виртуальные сети VLAN обеспечивают группировку портов коммутаторов, изолируя группы друг от друга и позволяя включить подключенные к ним виртуальные машины в VLAN. Используя виртуальные сети VLAN можно разделить сеть по организационному (логическому) или физическому принципу. Использование организационного принципа является более предпочтительным, поскольку при перемещении компьютера в другое физическое расположение, реконфигурация сети не требуется.

Для задания виртуальной сети VLAN необходимо при создании группы портов (port group) на виртуальном коммутаторе задать идентификатор VLAN ID. Допускается также использовать теги физического коммутатора или маркировку кадров на уровне гостевой системы. Изолирование трафика на уровне портов виртуального коммутатора позволяет экономить ресурсы процессора и полосы пропускания сетевых адаптеров гостевых систем.

Для реализации виртуальных сетей VLAN в виртуальной сети VMware кадру Ethernet добавляется тег по стандарту 802.1Q.

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

Создавать систему мониторинга виртуальных машин можно различными способами, наиболее распространены варианты с web-интерфейсом и традиционные способы с использованием консольных сценариев.

Оболочка для мониторинга представляет собой программную оболочку, поддерживающую международные стандарты информационных продуктов информационного назначения для web-страниц.

Оболочка для системы мониторинга рассчитана на пользователей, у которых нет времени или возможности осваивать все премудрости профессии web-мастера, и предназначена для быстрого мониторинга и конфигурации системы, использующих Web-интерфейс.

Существует множество различных виртуальных машин для создания виртуальных серверов - VirtualBox, VmWare и т.д. Все они представляют кроссплатформенные приложе-

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

Ruby on Rails - объектно-ориентированный программный каркас для создания WEB-приложений, написанный на языке программирования Ruby. Ruby on Rails предоставляет архитектурный образец Model - View - Controller (модель-представление-контроллер) для WEB-приложений, а также обеспечивает их интеграцию с WEB-сервером и сервером базы данных. Динамичный AJAX-интерфейс, обработка запросов и выдача данных в контроллерах, предметная область, отраженная в базе данных, - для всего этого Rails предоставляет однородную среду разработки на Ruby. Все, что необходимо для начала - база данных и WEB - сервер.

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

В Ruby on Rails приложения конфигурируются на основе соглашений и стандартов, в отличие от Django и некоторых других фреймворков. Например, отображения URL на Ruby-функции задаются c помощью DSL синтаксиса.

Архитектура Ruby on Rails основывается на технологии ORM, то есть модель данных RoR-приложения описывается классами Ruby, и по ней генерируется схема базы данных.

ORM - технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных». Существуют как коммерческие, так и свободные реализации этой технологии.

Первоначальная разработка Ruby on Rails, как средства для работы интернет приложений, достаточно сильно отразилась на его архитектуре: он предоставляет ряд средств, которые помогают в быстрой разработке WEB-приложений различного характера. Так, например, разработчику не требуется создавать контроллеры и страницы для административной части сайта, в RoR есть встроенное приложение для управления содержимым, которое можно включить в любой сайт, сделанный на Ruby on Rails, и которое может управлять сразу несколькими сайтами на одном сервере. Административное приложение позволяет создавать, изменять и удалять любые объекты наполнения сайта, протоколируя все совершенные действия, и предоставляет интерфейс для управления пользователями и группам (с пообъектным назначением прав).

В дистрибутив RoR также включены приложения для системы комментариев, синдикации RSS и Atom, «статических страниц» (которыми можно управлять без необходимости писать контроллеры и представления), перенаправления URL и другое.

Rails работает со многими WEB-серверами и СУБД. В качестве WEB-сервера рекомендуется Apache, mongrel, lighttpd или nginx, с FastCGI, SCGI. В качестве СУБД можно использовать MySQL, PostgreSQL, SQLite, Oracle, SQL Server, DB2 или Firebird. Использовать Rails можно на практически любой операционной системе, однако для развертывания рекомендуется использовать системы семейства *nix.

В составе Ruby on Rails присутствует собственный WEB-сервер для разработки. Сервер автоматически определяет изменения в файлах исходного кода проекта и перезапускается, что очень ускоряет процесс разработки на Ruby. Но при этом он работает в однопотоковом режиме и пригоден только для процесса разработки и отладки приложения.

Сейчас на рынке технологий создания WEB-приложений появилась многообещающая новая технология под названием Ruby on Rails, которая начинает завоевывать все больше и больше людей.

В настоящие время большинство программистов используют для создания систем мониторинга языки HTML, PHP, JAVA, C, Bash, Python и т.д.

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

Преимущества языка:

- универсальность формата;

- небольшой объем;

- возможность использования под любой операционной системой.

Недостатки языка:

- функциональная ограниченность;

- отсутствие средств защиты информации от кражи и копирования.

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

Объект представляет некую совокупность данных и способов работы с ними. Данные можно рассматривать как поля записи. Это характеристики объекта. Пользователь и объекты должны, конечно, иметь возможность читать эти данные объекта, как-то их обрабатывать и записывать в объект новые значения.

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

- для надежного функционирования объекта надо поддерживать целостность и непротиворечивость его данных;

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

Чтобы выдержать принцип сокрытия данных, в объекте обычно определяются процедуры и функции, обеспечивающие все необходимые операции с данными: их чтение, преобразование, запись. Эти функции и процедуры называются методами, и через них происходит общение с данными объекта. Помимо методов, работающих с отдельными данными, в объекте имеются методы, работающие со всей их совокупностью, меняющие их структуру. Средой взаимодействия объектов являются сообщения, генерируемые в результате различных событий.

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

В процессе работы объекты могут создаваться и уничтожаться. Таким образом, структура программы является динамическим образованием, меняющимся в процессе выполнения. С целью организации динамического распределения памяти во все объекты заложены методы их создания - конструкторы, и уничтожения - деструкторы.

Благодаря визуальному объектно-ориентированному программированию была создана технология, получившая название «быстрая разработка приложений» (RAD - Rapid Application Development).

Из вышесказанного, можно сделать вывод, что использование Ruby для создания системы мониторинга виртуальных машин будет оптимальным выбором, т.к. технология RoR позволяет легко разрабатывать подобные приложения, модифицировать их при необходимости.

i Надоели баннеры? Вы всегда можете отключить рекламу.