На рис. 1 изображена диаграмма относительного распределения вычислительных ресурсов, определяемых концепциями краевых, туманных и облачных вычислений. В соответствии с ней, облачные вычисления представляют собой отдельный центр обработки данных (ЦДО) или же сеть ЦОД, расположенных далеко от пользователя, но обеспечивающих высокие вычислительные возможности. С другой стороны, краевые вычисления расположены непосредственно на краю вычислительной системы и обеспечивают небольшие вычислительные возможности, но в непосредственной близости к потребителю этих ресурсов. Туманные вычисления располагаются между краем сети и облачным ЦОД, обеспечивая существенные вычислительные ресурсы близко к конечному пользователю, которые, с другой стороны, не сопоставимы с общим объемом облачных вычислений, но могут быть настраиваемы и масштабируемы в зависимости от задач конечного пользователя. В данной статье будут рассматриваться туманные вычисления как отправная точка для появления остальных парадигм. Также будут рассмотрены отличительные особенности краевых вычислений, с которыми часто объединяют туманные.
2.Туманные и краевые вычисления
2.1 История и определение
Первым из вариантов технологии для устранения проблем с временными задержками стала технология туманных вычислений. Термин «Туманные вычисления» впервые был предложен компанией CISCO в 2002 году и был описан как «расширение для облачных вычислений, обеспечивающее предоставление вычислительных и сетевых ресурсов, а также ресурсов для хранения информации, расположенных между конечными устройствами и облачными вычислительными центрами». В 2015 году был основан консорциум OpenFog -- группа компаний и академических организаций, таких как Cisco, Dell, Intel и Microsoft Corp, а также Принстонского университета, ориентированная на стандартизацию туманных вычислений (18 декабря 2018 консорциум OpenFog стал частью The Industrial Internet Consortium).
В 2018 году Национальный институт стандартов и технологий США сформулировал официальное определение термина туманные вычисления:
«Туманные вычисления (ТВ) -- это многоуровневая модель, обеспечивающая повсеместный доступ к общей совокупности масштабируемых вычислительных ресурсов. Модель ТВ облегчает развертывание распределенных приложений и услуг, учитывающих сетевые задержки, и состоит из туманных узлов (англ. fog nodes) (физических или виртуальных), располагающихся между умными конечными устройствами и централизованными (облачными) сервисами. Туманные узлы являются контекстно-зависимыми и поддерживают единую систему управления данными и организации связи. Они могут быть организованы в кластеры вертикально (для поддержки изоляции), горизонтально (для поддержки федераций сервисов) или в привязке к сетевой близости от конечных умных устройств. Туманные вычисления минимизируют время сетевого отклика поддерживаемых приложений, а также обеспечивают конечные устройства локальными вычислительными ресурсами и, при необходимости, сетевым подключением к централизованным сервисам».
Устранение разрыва между облаком и конечными устройствами за счет вычисления, хранения и управления данными не только в облаке, но и на промежуточных узлах расширило область применения туманных вычислений, что позволило применять их в новых задачах: IoT, транспортные средства, «умный» город, здравоохранение, «умная» доставка (в том числе с использование использованием беспилотников), подземная съемка в реальном времени, видеонаблюдение и др.
2.2 Ключевые характеристики туманных вычислений
Из-за позднего отделения понятий туманных и краевых вычислений многие компании вводили собственные характеристики и определения для туманных и краевых вычислений, зачастую объединяя их в одно. В 2017 году консорциум OpenFog выпустил эталонную архитектуру туманных вычислений, которая построена на восьми основных принципах: программируемость, иерархия, гибкость, удобство обслуживания (Reliability, availability and serviceability -- RAS), доступность, надежность, автономность, открытость и безопасность.
2.3 Понятия туманных и краевых вычислений
В некоторых источниках туманные вычисления называют краевыми или граничными вычислениями, основываясь на ключевом описании технологии, что сбор и анализ данных организован не в централизированном облаке, а как можно ближе к конечному устройству, «на краю сети». Однако в указано, что хотя туманные и краевые вычисления перемещают вычисления и хранение данных на край сети, ближе к конечным узлам, эти парадигмы не идентичны.
В парадигме туманных вычислений туманные узлы размещаются на границе локальной сети, зачастую они разворачиваются на базе роутеров, беспроводных точек доступа (если данные устройства поддерживают требуемые технологии для разворачивания туманного узла). В отличие от туманных вычислений, краевые вычисления размещаются еще «ближе» к конечным устройствам, уже внутри самой локальной сети на промежуточных точках доступа, а иногда и сами конечные устройства могут выступать краевыми вычислительными узлами: смартфоны, планшеты, другие вычислительные устройства с достаточными вычислительными возможностями и поддержкой развертывания вычислительных узлов. Однако это в то же самое время ограничивает их вычислительные мощности, и поэтому имеются некоторые ограничения в области их применения. На данный момент краевые вычисления применяются для решения таких задач как видеонаблюдение, кеширование видео и контроль трафика
Консорциум OpenFog заявляет, что граничные вычисления часто ошибочно называют туманными вычислениями, и определят, что основным их отличием является то, что туманные вычисления являются иерархическими и обеспечивают вычисления, создание сетей, хранение, управление и ускорение в любом месте -- от облака до конечных узлов интернета вещей; в то время как краевые вычисления имеют тенденцию ограничиваться вычислениями на узлах конечных пользователей. Кроме того, в о туманных и краевых вычислениях авторы отмечают, что «туман включает облако, ядро, транспорт, край, клиентов и все остальное» и «туман стремится реализовать непрерывность вычислительных услуг от облака до устройств, а не рассматривать границы сети как изолированные вычислительные платформы».
Таким образом, термин «краевые вычисления» преимущественно используется в телекоммуникационной отрасли и обычно относится к базовым станциям 4G/5G, RAN (Radio Access Network) и ISP (Internet Service Provider). Тем не менее, данный термин стал с недавних пор использоваться в предметной области IoT по отношению к локальной сети, где расположены датчики и устройства IoT. Другими словами, «краевые вычисления» расположены в пределах первого от самого IoT устройства транзитного участка сети, например, на точках доступа WiFi или шлюзах.
3.Технологии, обеспечивающие поддержку туманных и краевых вычислений
3.1 Виртуализация
Облака размещаются в ЦОД, где оборудование рассчитано на сверхбольшие нагрузки. Однако не всегда серверное оборудование загружено в полной мере, что не позволяет использовать его эффективно. Ключевой технологией, которая обеспечила поддержку облачных, а затем и туманных вычислений стала технология виртуализации, которая позволяет использовать ресурсы одной физической машины несколькими логическими виртуальными машинами (ВМ) на уровне слоя аппаратных абстракций (англ. Hardware Abstraction Layer -- HAL). Технология виртуализации использует гипервизор -- программный слой, обеспечивающий работу виртуальных машин на базе аппаратных ресурсов. Машина с гипервизором называется хост-машиной. Виртуальная машина, выполняемая на хост-машине, называется гостевой машиной, на которой в свою очередь могу быть установлены гостевые операционные системы (ОС). Данный вид виртуализации называют виртуализацией на основе гипервизора.
Также существует виртуализация на основе контейнеров, которые представляют собой упакованный, автономный, развертываемый набор прикладных компонентов, которые могут также включать промежуточное программное обеспечение и бизнес-логику в виде бинарных файлов и библиотек для запуска приложений.
В работе представлен сравнительный анализ обоих типов виртуализации, на основе которого можно выделить некоторые преимущества виртуализации на основе контейнеров.
? Аппаратные ресурсы. Виртуализация на основе контейнеров снижает затраты на оборудование за счет возможности консолидации. Это позволяет параллельному программному обеспечению воспользоваться преимуществами истинного параллелизма, обеспечиваемого многоядерной аппаратной архитектурой.
? Масштабируемость. Система управления контейнерами может эффективно управлять большим количеством контейнеров, позволяя создавать дополнительные контейнеры по мере необходимости. ? Пространственная изоляция. Контейнеры поддерживают легкую пространственную изоляцию, предоставляя каждому контейнеру свои собственные ресурсы (например, ядро процессора, память и доступ к сети) и специфические для контейнера пространства имен.
? Хранение. Контейнеры имеют малый вес по сравнению с виртуальными машинами. Приложения внутри контейнеров имеют общие двоичные файлы и библиотеки. ? Производительность. По сравнению с виртуальными машинами, контейнеры имеют более высокую производительность (сквозную), т.к. они не эмулируют оборудование.
? Портативность. Контейнеры поддерживают легкую переносимость из среды разработки в производственную среду, особенно для облачных приложений. Таким образом, существуют две основные технологии виртуализации, которые применяются в данный момент для обеспечения поддержки туманных вычислений.
Причем виртуализация на основе контейнеров получает все большое распространение, благодаря меньшим требованиям к производительности аппаратного обеспечения, чтобы обеспечить развертывание вычислительных узлов на промежуточных устройствах, которые могут не обладать высокими вычислительными мощностями, что особенно актуально для краевых вычислений, т.к. они запускаются даже не на самих IoT устройствах, а на промежуточных точках доступа, наиболее близких к устройствам.
3.2 Обзор платформ туманных вычислений
При обзоре существующих платформ для развертывания туманных вычислений были рассмотрены коммерческие платформы, а также платформы с открытым исходным кодом. Сложность анализа коммерческих платформ заключается в отсутствии информации об их архитектуре и применяемых технических решениях, которые составляют коммерческую тайну. Однако анализ коммерческих решений показал, что среди коммерческих туманных платформ встречаются как платформы с полным обеспечением поддержки туманных вычислений (собственно вычисления, аналитика и организация транспортного уровня туманной сети), так и платформы, которые обеспечивают лишь транспортный уровень туманной сети и не обеспечивают управления вычислительными узлами и собственно туманными вычислениями на них. Платформы, обеспечивающие лишь транспортный уровень туманных вычислений, не будут рассматриваться в данной работе.
Можно выделить следующие ключевые характеристики частных и публичных коммерческих туманных платформ.
1. Поддерживаемые аппаратные платформы -- платформа может работать с любым устройством, поддерживающим виртуализацию или контейнеризацию, или только с ограниченным списком устройств -- через драйвера или фирменные устройства. Smartiply Fog, ThingWorx и Cisco IOx работают только с собственным аппаратным обеспечением.
2. Базовая технология разработки -- на базе какой исполняемой среды создаются и запускаются приложения.
3. Открытость коммуникационных протоколов и SDK -- есть ли ограничения на приложения, которые могут использоваться в тумане: требуется ли портирование приложений, или в принципе могут исполняться только приложения, написанные с использованием специальных поставляемых SDK, как, например, в случае с ThingWorx, чьи туманные приложения должны быть написаны с использованием фирменного SDK для запуска в тумане.
4. Технология развертывания -- какая из технологий развертывания туманных узлов используется, если известно.
5. Возможности интеграции -- имеется ли возможность интеграции с другими платформами, например, корпоративными решениями или публичными облаками.
6. Подключение внешних источников данных -- возможность платформы подключаться к сторонним базам и хранилищам данных, физически расположенных вне центрального облака для хранения и обработки данных.
7. Доступность дополнительных сервисов (Machine Learning, Analytics и т.п.) -- возможность подключения и использования дополнительно поставляемых сервисов, которые предоставляют дополнительный функционал по анализу и работе с данными в тумане.
8. Поддержка Edge -- возможность подключения и использования краевых устройств и краевых вычислений, и дальнейшего сбора и обработка информации от них.
3.2 Частные туманные платформы
Частные туманные платформы обеспечивают создание частных туманных решений на базе вычислительной инфраструктуры, развернутой непосредственно на ресурсах заказчика.
Платформа Cisco IOx была представлена компанией Cisco в 2014 году как развитие сетевой инфраструктуры в связи с ожидаемым ростом IoT. Основной упор в платформе сделан на уменьшение трудозатрат по портированию приложений на туманные узлы, что достигается за счет использования технологий контейнеризации и базирования собственной ОС на основе Linux системы.
Cisco IOx -- это среда приложений, которая объединяет в себе Cisco IOS (мини операционная система, устанавливаемая на всю аппаратуру Cisco) и Linux. Для разработки приложений применяются утилиты Linux с открытым исходным кодом. Используется единый протокол взаимодействия туманных приложений во всей сети, организованной с использованием технологий Cisco IoT. Туманные приложения, которые можно запускать на инфраструктуре IOx, поставляются как Cisco, так и партнерами компании. Разработку приложений можно вести на множестве языков программирования общего назначения.
Для разработки и развертывания приложений используется Docker. Поддерживаются разнообразные типы приложений, включая Docker-контейнеры и виртуальные машины (если такая возможность есть у сетевого оборудования). Также возможно использовать собственную исполняемую среду IOx для написания приложений на высокоуровневых языках программирования (например, Python).