Граничные вычисления (англ.edge computing, периферийные вычисления) — это парадигма распределенных вычислений, осуществляемых в пределах досягаемости конечных устройств. Данный тип вычислений используется для сокращения времени сетевого отклика, а также более эффективного использования пропускной способности сети.[1]
История периферийных вычислений начинается с момента активного развития сетей доставки контента, которые были созданы в конце 1990-х годов для распространения веб- и видео-контента с помощью граничных серверов, развернутых рядом с пользователями.[2] В начале 2000-х эти сети развивались для размещения приложений и компонентов приложений на граничных серверах[3], что привело к появлению первых коммерческих периферийных вычислительных сервисов[4], на которых размещались такие приложения, как поиск поставщиков, корзины покупок, агрегаторы данных в реальном времени, и рекламные движки.[3] Современные граничные вычисления значительно расширяют этот подход за счет виртуализации, упрощающей развертывание и запуск более широкого спектра приложений на граничных серверах.
Концепция
На данный момент существует несколько подходов к описанию концепции граничных вычислений. Например, периферийные вычисления могут осуществляться в пределах компьютерной программы любого типа, обеспечивающей более низкую задержку сети в рамках использования конечных устройств. Карим Араби, на своем выступлении на IEEE DAC 2014 Keynote[5], а затем и на выступлении в рамках семинара MTL в 2015 году[6] охарактеризовал периферийные вычисления как все вычисления вне облака, происходящие в границах сети, и более конкретно — в приложениях, где требуется обработка данных в режиме реального времени. Согласно определению Араби, облачные вычисления работают с большими данными, в то время как граничные вычисления работают с «мгновенными данными», то есть данными в реальном времени, генерируемыми датчиками устройств или пользователями.
Согласно отчету State of the Edge, граничные вычисления концентрируются на серверах «в непосредственной близости от сети последней мили».[7] Алекс Резник, председатель комитета ETSI MEC по стандартам ISG, определил данный термин более свободно: «все вычисления, не относящиеся к работе традиционных центров обработки данных, могут считаться “граничными"».[8]
Периферийные узлы, используемые для потоковой передачи данных в играх, называются геймлетами (gamelets)[9], которые обычно находятся на расстоянии одного или двух узлов от клиента.[10] По мнению исследователей Б. Ананда и О Цзя Хао Эдвина, в контексте облачных игр, «периферийный узел обычно находится на расстоянии одного-двух узлов от мобильного клиента, что позволяет соответствовать ограничениям времени отклика для игр в реальном времени».[10]
Важным отличием граничных вычислений от облачных вычислений является то, что, в случае первых сбор и анализ данных осуществляется в месте генерации потоков данных, в то время как использование централизованных систем предполагает дальнейшую передачу таких данных и их последующую обработку в ЦОД.[11]
Безопасность и приватность
Распределенная природа описываемой парадигмы вычислений вносит дополнительные особенности безопасности построения систем данных в уже сложившихся практиках создания облачных сетей. Транслируемые данные в сети, осуществляющей периферийные вычисления, не только должны быть зашифрованы, но также должны быть защищены совершенно другими механизмами шифрования, обеспечивающими сохранность передаваемой информации. Это обусловлено тем, что данные в такой экосистеме могут проходить между различными распределенными узлами, подключенными через Интернет, прежде чем в конечном итоге попасть в облако. Периферийные узлы также могут быть представлены устройствами с ограниченными ресурсами, ограничивая выбор конкретного способа защиты с точки зрения методов безопасности. Более того, должен быть обеспечен переход от централизованной нисходящей инфраструктуры сети к децентрализованной модели доверия.[12] С другой стороны, сохраняя данные на периферии, можно передать право владения собранными данными от поставщиков соответствующих услуг конечным пользователям.
Масштабируемость
Масштабируемость распределенной сети должна представлять собой устойчивую модель. Во-первых, при построении масштабируемой сети периферийных вычислений должна учитывать неоднородность состава включенных в нее устройств, имеющих различные характеристики и энергетические ограничения. Далее, необходима поддержка высокодинамичного состояния сети, а также стабильность соединений, не уступающая более надежной инфраструктуре облачных дата-центров. Кроме того, следует учитывать, что требования безопасности могут спровоцировать дополнительную задержку в обмене данными между узлами распределенной сети, что может замедлить процесс масштабирования граничной инфраструктуры в целом.
Надежность (отказоустойчивость)
Хорошая отказоустойчивость имеет решающее значение для поддержания работоспособности сети граничных вычислений. Если один узел выходит из строя и оказывается недоступен, пользователи по-прежнему должны иметь доступ к сервису без длительного ожидания. Кроме того, периферийные вычислительные системы должны осуществлять действия по восстановлению сети и сервисов после сбоя, а также оповещать пользователей об инциденте. С этой целью каждое устройство должно поддерживать топологию сети всей распределенной системы, чтобы идентификация отказа и восстановление сети были более быстрыми и эффективными. Другими факторами, которые могут повлиять на отказоустойчивость периферийной инфраструктуры, являются:
используемая технология соединения, которая может обеспечить различные уровни надежности;
точность данных, полученных на граничном узле, которые могут быть ненадежными из-за определенных условий окружающей среды.
Применение
Сервисы приложений, использующих граничные вычисления, сокращают объемы данных, которые должны быть переданы, последующий трафик и расстояние, которое должны пройти данные. Данная архитектура вычислений обеспечивает меньшую задержку отклика внутри сети и снижает затраты на обмен данными. Разгрузка вычислений, используемых в приложениях, работающих в реальном времени (алгоритмы распознавания лиц) с помощью данной технологии, показала значительную эффективность в области улучшения времени отклика сети, что было продемонстрировано в ранних исследованиях.[13] Дальнейшие исследования показали, что использование облачков (cloudlets) в сети пользователей мобильных приложений, предлагающие сервисы, обычно находящиеся в облаке, обеспечивает сокращение времени выполнения операций, когда некоторые задачи выгружаются на граничный узел.[14] С другой стороны, разгрузка каждой обрабатываемой задачи может привести к замедлению обмена данными из-за увеличения времени передачи данных между конечными устройством и узлами.
Другое перспективное применение описываемой архитектуры вычисления можно обнаружить в области облачных игр, где некоторые компоненты игрового приложения могут выполняться в облаке, в то время как видеопоток передается легковесным клиентам, таким как мобильные устройства, очки виртуальной реальности и т. д. Такой тип потоковой передачи также известен как пиксельная потоковая передача (pixel streaming).[9]
Другие возможные применения технологии включают в себя управление «умными» системами автомобилей,[15] создание «умных» городов с развитой сетевой инфраструктурой[16], проекты Индустрии 4.0, а также использование граничных вычислений в системах домашней автоматизации.[17]