Со времен первых компьютеров и до настоящего времени сохраняется твердое убеждение в том, что этот прибор может и должен быть универсальным инструментом. Универсальность компьютеров всегда представлялась их достоинством. За редким исключением (высокопроизводительные компьютерные системы, встроенные системы управления, карманные компьютеры) вычислительные системы всегда строились универсальными. Современные компьютеры могут быть «большими» или «маленькими», более или менее мощными, но все они остаются универсальными— в том смысле, что на них можно устанавливать универсальные операционные системы и использовать самые разные приложения. Поначалу компьютеры с логической точки зрения были простыми, поэтому до некоторых пор даже относительно небольшие компании могли построить собственную машину первого, второго и даже третьего поколения. Но со временем сохранять универсализацию становилось все сложнее, и в конце концов эта задача оказалась по силам только самым крупным игрокам ИТ-рынка, поэтому их число сократилось до минимума. Отсюда чудовищный монополизм поставщиков платформ. Одновременно универсализм компьютеров породил соответствующую стратегию разработки приложений. В частности, появились «независимые производители программных продуктов» (Independent Software Vendor, ISV), которых назвали так потому, что они вынуждены создавать приложения, не зависящие от платформ, на которых они исполняются. До определенного момента платформенная независимость программ тоже выглядела весьма привлекательно, позволяя собирать вместе лучшее из аппаратных и программных решений и используя в качестве связующего между платформами и приложениями программные средства промежуточного слоя.
Однако очевидно, что любая универсализация, независимо от технологической области, чревата обратным эффектом— избыточностью. В подавляющем большинстве случаев для выполнения ограниченного набора функций специализированные средства окажутся эффективнее универсальных. Достаточно посмотреть на современную улицу и оценить разнообразие транспортных средств, на этом фоне структура ИТ вызывает ностальгические воспоминания о советском прошлом, когда существовало только два типа грузовиков— ЗиЛ и ГАЗ, и еще немного остального. И в том, и в другом случае обнаруживаются очевидные издержки в виде колоссального перерасхода средств. Трудоемкость создания любых универсальных технологий, в том числе и программных технологий, очень велика. Какой процент возможностей операционных систем использует рядовой пользователь? Сколько он переплачивает, в том числе и за современные приложения, которые получаются слишком дорогими? Но еще дороже оказывается стоимость эксплуатации универсальных средств. Купил бы кто-нибудь автомобиль, годичная эксплуатация которого была бы равна его стоимости? Скорее всего, нет— а программы покупают, пока нет альтернативы.
Выходом из создавшегося положения могут стать специализированные устройства, по-английски их называют appliance. В словарях это слово переводят еще и как «бытовой прибор». До тех пор, пока речь шла о простом оборудовании, терминологических сложностей не возникало, часто использовали слово «приставка», но когда появилось выражение computer appliance, оказалось, что подобрать прямой русскоязычный аналог невозможно. Поэтому давайте будем использовать словосочетание «специализированное вычислительное устройство». Появление этого класса оборудования можно считать знаковым. До какого-то времени все, что было связано с компьютерами офисно-делового назначения, за редким исключением ограничивалось использованием универсальных серверов и рабочих станций и столь же универсальных операционных систем. Классическая схема предполагает установку специализированных приложений поверх универсального базиса. Но постепенно выяснилось, что и для деловых применений имеют право на жизнь специализированные устройства, как это происходит в технологических системах. Насчитывают несколько типов специализированных вычислительных устройств:
-
устройства, построенные на специализированных микросхемах (Application-Specific Integrated Circuit, ASIC), и имеющие ограниченную функциональность и интерфейс;
-
универсальные компьютеры, на которые устанавливается специализированная операционная система, принудительно ограничивающая функциональность, используемые в качестве межсетевых экранов, шифрования, при построении VPN;
-
специализированные узкофункциональные устройства, например, файловые серверы или специализированные компьютеры для работы с хранилищами данных;
-
виртуальные специализированные устройства, в которых используется технология виртуальных машин.
В основном специализированные вычислительные устройства работают под управлением операционных систем с ограниченной функциональностью, для обозначения которых даже сложился особый термин JeOS (Just Enough Operating System). Чаще всего это словечко ассоциируется с дистрибутивом Ubuntu Linux, но в общем случае речь идет об операционной системе, ограниченной по функциональности «по месту» и предназначенной для виртуальных специализированных устройств, в создании которой могут быть использованы усеченные версии Linux или Unix BSD. Нередко подход, основанный на специализированных вычислительных устройствах, рассматривают как конкурента SaaS. Однако с этой точкой зрения можно не согласиться: технологически это так, а по существу все же нет, вопрос в том, где и какими средствами осуществлять специализацию.
Показательный пример аппаратной специализации— продукция компании KACE, созданная Марти Качином. Именно он противопоставляет SaaS и специализированные вычислительные устройства, считая, что в его решениях реализован оригинальный способ распространения и внедрения программ, для которого он предложил собственное название Appliance-based Software Delivery (AbSD). Устройство AbSD имеет в своей основе специализированную платформу, на нее устанавливается специализированная же операционная система и соответствующее приложение. На самом деле разумнее противопоставить AbSD универсальному серверу с универсальными операционными системами и приложениями. Такие устройства сконфигурированы, а в некоторых случаях и спроектированы специально под одну задачу; они поддерживают одну встроенную операционную систему и заданное количество приложений. Наибольшую известность приобрели специализированные устройства, предназначенные для обеспечения информационной безопасности по периметру (межсетевые экраны, средства для обнаружения вторжений и т.д.) и маршрутизаторы. Все эти приборы работают, пользуясь сетевой терминологией, в режиме in-band, то есть через них проходят все контролируемые ими процессы. Но с не меньшим успехом специализированные устройства можно использовать в режиме out-of-band,— параллельно контролируемым процессам; их можно использовать для поддержки систем хранения, мониторинга сетей.
Устройства типа Data Warehouse Appliance представляют собой интегрированный набор, состоящий из серверов, операционных систем, СУБД и специального предустановленного программного обеспечения для работы с хранилищами данных. В большинстве случаев такие устройства строятся в архитектуре с массовым параллелизмом (Massive Parallel Processing, MPP), где каждый из серверов общается со своим собственным пространством памяти и дисками. Когда-то специализированные серверы с архитектурой MPP, предназначенные для работы с базами данных, строили компании Teradata, Tandem и Sequent, но потом развитие этого направления временно приостановилось— и возродилось с появлением соответствующих программных средств и возможности строить серверы из тиражируемых широкодоступных компонентов. Первой на обновленный рынок вышла Teradata. Современные решения рождаются в процессе интеграции продуктов разных вендоров. В рамках Oracle Information Appliance Initiative сочетается Oracle Database 10g с продуктами NetApp, EMC, HP, IBM и Sun Microsystems. Преимущества таких специализированных вычислительных устройств— в меньшей общей стоимости владения, большей производительности, меньшем объеме администрирования, природных высоких показателях готовности и масштабирования.
Самые большие изменения сулит появление виртуальных специализированных устройств (virtual appliance), являющихся разновидностью решений категории software appliance. Не случайно одним из самых популярных слов второй половины 2007 года стало слово «гипервизор»— программное обеспечение, реализующее механизм виртуализации и отделяющее серверную платформу от операционной системы и остального программного стека. Появление гипервизоров может способствовать, казалось бы, невозможному: они в состоянии ослабить современную роль операционных систем. Когда на конференции LinuxWorld основателя и главного ученого компании VMWare Менделя Розенблюма спросили, угрожают ли виртуальные специализированные вычислительные устройства производителям ОC, он ответил: «Если бы я был на их месте, то воспринял бы это именно так».
Основное отличие виртуального специализированного вычислительного устройства от обычной виртуальной машины заключается в следующем: оно поставляется с предварительно инсталлированными и сконфигурированными приложениями и операционной системой. Обычно его используют для выполнения одного приложения, а потому их можно рассматривать как еще один возможный способ доставки приложений. Поэтому такие виртуальные устройства следует рассматривать не как альтернативу SaaS, а как способ предоставления приложений в виде сервисов, используя для этой цели не коммунальные приложения, а обычные, но помещенные в виртуальную среду. Пример такого сценария— проект Amazon Elastic Compute Cloud (EC2), где с использованием гипервизора Xen предоставляются готовые виртуальные специализированные вычислительные устройства в особом формате Amazon Machine Image.
Еще одна многообещающая сильная сторона виртуальных специализированных вычислительных устройств состоит в том, что их появление обещает решить многие проблемы grid-вычислений, поскольку возможно использование для обмена приложениями в гетерогенной аппаратно-программной среде. Действительно на их основе можно строить узлы grid, разделяя поставщика и потребителя, так как все необходимые сведения закладываются внутрь подобного устройства.