Несмотря на свои различия, периферийные и облачные вычисления должны работать вместе, чтобы удовлетворить потребности современных приложений, пишет на портале InformationWeek Роберт Блюмоф, исполнительный вице-президент и технический директор компании Akamai.
Несколько лет назад я наткнулся в блоге Gartner на пост с красочным (и, возможно, неоднозначным метафорическим) названием «Периферия съест облако». Это название подразумевает, что облачные и периферийные вычисления являются конкурирующими моделями, причем периферийные вычисления превосходят облачные.
Действительно, заманчиво думать, что периферийные вычисления — это то же самое, что и облачные вычисления, но в гораздо большем количестве мест. На самом деле облачные и периферийные вычисления — это принципиально разные, но в то же время дополняющие друг друга модели, которые решают разные задачи. Они не только нуждаются друг в друге, но и должны быть связаны друг с другом.
Помимо разницы в плотности и распределении площадок, облачные и периферийные вычисления существенно отличаются по способу размещения вычислений. Облачные вычисления «привязаны к месту», в то время как периферийные вычисления «не привязаны» и «вездесущи». Чтобы современные приложения, которые мы с вами используем каждый день, работали исправно, необходимо, чтобы облачные и периферийные вычисления работали вместе.
Облако и периферия
Если вы относитесь к 94% организаций, использующих, по данным Forrester, облачные вычисления, то вы знаете, что при предоставлении ресурсов (обычно это виртуальные машины или кластеры Kubernetes) одним из самых первых действий является выбор одного из доступных регионов — обычно они определяются по крупным городам, таким как Даллас, Франкфурт или Токио. Дело в том, что после выбора и выделения ресурсов в регионе эти ресурсы не выходят за его пределы. Любые вычисления, которые вы выполняете на этих ресурсах, привязаны к этому месту.
В отличие от этого, периферийные вычисления не требуют от пользователей выбора регионов или предоставления ресурсов. Вместо этого вы развертываете свой код на любом языке, который принимает служба периферийных вычислений. На основе запросов пользователей и устройств служба будет выполнять этот код в соответствующих регионах, автоматически инстанцируя вычисления в нужном месте. При использовании периферийных вычислений ваши вычисления не привязаны к какому-либо одному месту.
Итак, что же лучше — облачные вычисления с привязкой к месту или периферийные вычисления без привязки? В действительности, одно из них не является объективно лучше другого. Скорее, существуют определенные сценарии использования, в которых имеет смысл использовать облачные или периферийные вычисления, в зависимости от того, находятся ли обрабатываемые данные в состоянии покоя или в движении.
Следуйте за данными
Как выбрать между облаком и периферией? Следуйте за данными. Как правило, лучше перенести вычисления к данным, а не наоборот.
Рассмотрим сценарий вычислений на основе данных, хранящихся в базе данных, хранилище данных или озере данных. Для электронной коммерции это может быть поиск товаров, рекомендации или отслеживание и обновление заказов. В этих случаях данные находятся в одном месте или реплицируются в небольшое количество фиксированных мест. Данные не перемещаются. Поэтому имеет смысл привязать вычисления к тем же местам, и облачные вычисления с привязкой к месту — это то, что нужно.
В противоположность этому рассмотрим сценарий вычислений на данных, которые находятся в потоке трафика. Чаще всего мы имеем дело с потоками веб-трафика, поэтому речь идет о данных, которые содержатся в строках запросов URL, в заголовках HTTP и в теле HTTP. В кибербезопасности примеры включают выполнение правил брандмауэра веб-приложений (WAF) для блокирования атак и классификацию запросов на основе того, исходят ли они от ботов и, если да, то от каких типов ботов.
В этих случаях, вместо того чтобы передавать трафик в какое-то фиксированное, удаленное место, лучше выполнять вычисления прямо у источника трафика, то есть как можно ближе к пользователям и устройствам. Здесь мы имеем дело с данными в движении, поступающими из любого места и отовсюду, что требует периферийных вычислений без привязки к месту.
Таким образом, у нас есть два взаимодополняющих вычислительных сервиса для различных сценариев использования: облачные вычисления с привязкой к местоположению для данных в состоянии покоя и периферийные вычисления без привязки к местоположению для данных в движении. Облачные вычисления соединяют ваши вычисления с вашими данными и другими ресурсами, расположенными в фиксированном месте. Периферийные вычисления соединяют ваши вычисления с вашими пользователями и устройствами, которые могут быть расположены где угодно и как угодно.
Создание взаимосвязанности
Как я уже отмечал выше, облачные и периферийные вычисления не просто дополняют друг друга, они должны быть связаны друг с другом. Речь идет не об одном или другом, а об обоих. Это связано с тем, что современные приложения не являются монолитными. Скорее, они все чаще создаются как наборы сервисов или микросервисов. Именно в отношении этих сервисов необходимо принимать решения о выборе облака или периферии.
Современное приложение, скорее всего, будет работать как в облаке, так и на периферии, причем некоторые сервисы будут работать в ядре облака, а другие — на распределенной периферии. Более того, сервисы приложения должны взаимодействовать друг с другом, поэтому очень важно, чтобы ядро облака и периферия были тесно связаны друг с другом с высокой масштабируемостью, высокой надежностью, высокой пропускной способностью и низкой задержкой.
Чтобы действительно обеспечить инновации, облака уже недостаточно. Периферии уже недостаточно. Будущее во взаимосвязанности: единая платформа приложений, сочетающая традиционные облачные вычисления с высокораспределенной периферией и высокопроизводительной коммуникационной сетью для соединения всего этого.