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

Каким будет следующий метеорит на IT-рынке? К каким изменениям придётся приспосабливаться в ближайшие годы? Может быть, это будут туманные и периферийные вычисления (fog & edge computing) — две связанные концепции развития облачной архитектуры, которые «разлочивают» облако для новых отраслей и классов задач.


Ограничения облака

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

Ограничения облака

Второй момент: задержка в сотни миллисекунд — вроде, немного. Я включаю видео, приложение обращается к облаку. Перед загрузкой происходит незначительная задержка, но для человека полсекунды — это практически «в реальном времени».


Новым технологиям не подходит старое облако

Облачные ограничения фатально не сочетаются с тем, куда движется IT-рынок.

Технологии интеллектуальной обработки данных создают огромный поток информации в облако. С одной стороны, машинное обучение, нейросети и весь этот умный rocket science требуют мощных вычислительных ресурсов и глубокой экспертизы. Их дорого заводить in-house. С другой стороны, данные генерируются максимально далеко от облака — на конечных устройствах: сенсорах, смартфонах, камерах. В итоге прогресс аналитических технологий приводит к лавинообразному росту данных с периферии и к постоянному дефициту мощности полосы пропускания.

Интернет вещей (IoT) уже здесь. По улицам ездит автопилотируемый транспорт, в небе летают умные дроны. Не верите — посмотрите в окно, не сегодня — так завтра. Вопрос: с какой скоростью два беспилотных автомобиля должны передать навигационную информацию и получить ответ от аналитической системы, чтобы избежать столкновения? У них просто нет времени на отправку и получение данных из облака с задержкой в 100 миллисекунд. Для умных вещей нужна другая скорость.

А ещё «вещь» может потерять связь с облаком. Неужели во имя безопасности каждый робомобиль нужно оснащать полноценным искусственным интеллектом? И сколько будет стоить поездка на таком такси?


Что придумали

Итак, узкое место — это полоса связи между периферией и облаком. Чтобы разгрузить этот канал, надо снизить количество данных, передаваемых в облако. А для поддержки время-чувствительной machine-to-machine коммуникации надо «просто» снизить временную задержку транзакций между конечными устройствами и аналитическим аппаратом.

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

Туманные вычисления — это подход к построению приложений, в котором серверные компоненты для обслуживания время-чувствительных транзакций размещаются не в централизованном облаке, а ближе к периферии — рядом с конечными устройствами. Большое облако в такой архитектуре тоже остаётся, но между ним и слоем периферии добавляются дополнительные туманные слои — облачка (cloudlets), эдакие мини-ЦОДы. Туманные облачка умеют делать основные время-критические операции без обращения к большому облаку и обслуживают конечные устройства, которые находятся рядом. Облачками придётся покрывать географические территории так же, как телефонные провайдеры покрывают территории сотовыми вышками: чтобы около любого телефона всегда оказывалась вышка.

Что придумали
В парадигме туманных вычислений между облаком и конечными устройствами добавляется уровень облачков (cloudlets), который обеспечивает обработку данных с устройств в реальном времени.

Между большим облаком и туманом происходит разделение обязанностей:

  • Большое облако собирает от периферии журналы событий — это уже не время-критичный процесс. Кроме того, большое облако может выполнять виды анализа данных, которые невозможно или дорого выполнять на периферии.
  • Туманные устройства производят локальные вычисления в реальном времени. Ещё они отправляют в большое облако данные и отчёты. Перед отправкой туман может агрегировать и рафинировать данные, чтобы сократить поток информации в большое облако и снять нагрузку на канал связи.

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

Fog computing vs edge computing

Строго говоря, туманные (fog) и периферийные (edge) вычисления — не одно и то же, хотя многие употребляют их как синонимы. Термин «туманные вычисления» возник в Cisco, и в их видении разница выглядит так:

  • Периферийные вычисления — это идея переноса вычислений максимально близко к конечным устройствам.
  • Туманные вычисления — это реализация идеи периферийных вычислений за счёт создания слоя облачков.

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

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

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