Edge Computing обещает миллионы долларов дохода. Однако у нас пока нет определения, что это такое.

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

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

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

Согласно этому определению, ваш мобильный телефон и все ваши носимые устройства являются преимуществом.

все, что не является традиционным центром обработки данных, может быть "преимуществом" для кого-то
ETSI

Сюда могут входить такие элементы, как прокси-серверы.

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

В этом случае край не является конечным пользовательским устройством. Это что-то среднее между облаком и пользователем.

вычисления, которые выполняются в источнике данных или рядом с ним, вместо того, чтобы полагаться на облако в одном из десятка центров обработки данных, которое сделает всю работу
Пол Миллер

Это определение указывает на идею близости данных.

Что ж, я должен сказать, что все эти определения верны. Почему? Потому что край настолько абстрактен, что допускает практически любое определение. Край настолько расплывчато очерчен, что становится чем-то размытым и трудноразличимым в любом архитектурном проекте. Также у нас есть облако и туман. Какое отношение имеет край к облаку? А туман?

Зачем нам нужны периферийные вычисления?

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

YouTube появился еще в 2005 году, предлагая потоковое видео, было прорывом по сравнению с предыдущим решением «скачать и потом смотреть». Данные передаются с серверов пользователям для их потребления. Среди множества технических проблем, связанных с этим подходом, есть проблема с задержкой. Чем больше переходов должны пройти данные, тем выше задержка. Лучшее решение - реплицировать данные на серверы, расположенные рядом с конечным пунктом назначения. Akamai занимается этим с 1998 года, и это глобальная компания с 7000 сотрудников.

В настоящее время данные продолжают поступать от серверов к потребителям. Однако конечный пользователь больше не является пассивным потребителем. Каждую минуту создается 350 000 твитов, каждую минуту на YouTube загружается 300 часов видео и в Instagram загружается 100 миллионов картинок и фотографий в день. Пользователи генерируют огромные объемы информации для распространения и обмена. Цифры будут еще больше, если мы включим информацию, полученную с помощью мобильных телефонов, датчиков и других устройств. Кроме того, обещанный 5G еще больше расширит пределы существующей инфраструктуры.

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

Граничные вычисления имеют какое-то отношение к этому заключительному этапу потока потребления / производства данных. Однако являются ли периферийные вычисления набором правил, парадигмой программирования, архитектурой или библиотекой? Это то, что нам нужно определить.

Туман заканчивается там, где начинается край

Мы не можем говорить о граничных вычислениях, не сравнивая их с туманными вычислениями. В отличие от граничных вычислений, туман имеет четкое определение. Крупные компании, в том числе Intel, Cisco или Microsoft, объединили свои усилия и создали Консорциум Open Fog Consortium еще в 2015 году. Они определяют туманные вычисления как:

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

Ознакомиться с эталонной архитектурой можно здесь.

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

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

Тогда что такое пограничные вычисления?

Если мы предположим, что туман - это архитектура, состоящая из различных взаимосвязанных элементов, расположенных между облаком и краем. Тогда в чем же преимущество?

Край - это архитектура? Это означало бы, что ребро, вероятно, организовано в иерархии, уровни и т. Д., А это, похоже, не так.

Edge - это протокол? Если да, то какой?

Edge - это парадигма программирования? Я так не думаю. Если бы это было так, то уже должен был существовать язык программирования, поддерживающий эту новую парадигму.

Является ли край набором рекомендаций / опыта / вариантов использования? Может быть.

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

Резюме

Как видите, периферийные вычисления - это открытая концепция, которая еще четко не определена. Вы можете извлечь из моих слов, что есть определенное согласие по поводу того, в чем состоит преимущество. Однако я думаю, что пора четко определить, о чем мы говорим, когда говорим о периферийных вычислениях. Есть место для новых проектов, которые могут стать эталоном в мире периферийных вычислений. Поскольку Google является ориентиром в поисковых системах, я думаю, что Edge Computing станет определяющим, когда у нас появятся выдающиеся проекты.

Надеюсь, этот пост станет спусковым крючком для начала обсуждения. Хотелось бы услышать ваше мнение по этой теме.

Спасибо за прочтение!