Вынесение вычислений на периферию решает только половину проблемы, особенно если вы обращаетесь к централизованной базе данных где-то в далеком кластере, пишет на портале The New Stack Глаубер Коста, основатель и генеральный директор компании ChiselStrike, создателя SQLite-совместимой периферийной базы данных, работающей на основе libSQL.
Давайте посмотрим правде в глаза: наша отрасль имеет склонность к модным словечкам. Пытаясь выделиться и утвердить свою значимость, люди часто пытаются сделать это, изобретая и заимствуя термины, которые могут что-то значить, а могут и не значить.
Не знаю как вы, а я помню, как люди пытались продвигать такие вещи, как grid computing и fog computing.
Так что вас можно простить за то, что вы думаете, что «edge» — это просто еще одно такое модное слово. Особенно потому, что путаница в этом термине усугубляется тем, что:
- два разных сегмента индустрии понимают под «периферией» две совершенно разные вещи;
- люди часто путают ее с бессерверной технологией, которая имеет свои собственные заблуждения.
В этой статье я объясню, что такое edge и почему она должна вас заинтересовать.
Определение
Википедия определяет edge сomputing как «парадигму распределенных вычислений, которая приближает вычисления и хранение данных к источникам данных. Ожидается, что это позволит улучшить время отклика и сэкономить пропускную способность».
Мы видим причину первой путаницы именно в этом определении: приближает к чему? Если это приближает вычисления и хранение данных к источникам данных, то вот вам вопрос. Если у меня есть база данных в east-1 и я реплицирую ее в west-1, это «периферия»?
«Дальняя периферия», или «офлайновая периферия»
Разработчики, работающие над Интернетом вещей (IoT), мобильными устройствами, торговыми точками или телекоммуникациями, рассматривают «периферию» как нечто максимально близкое к самим устройствам, потенциально находящееся внутри них. Когда они говорят о «перемещении вычислений на периферию», они, скорее всего, имеют в виду вычисления, которые происходят внутри устройства.
Непосредственной характеристикой таких развертываний является то, что подключение к Интернету либо медленное, либо прерывистое, либо вообще отсутствует (самолеты, промышленные контроллеры и т. д.). Вычислительные ресурсы и ресурсы хранения данных не просто уменьшены по сравнению с облаком, а уменьшены сильно.
Из-за таких характеристик это можно назвать «дальней периферией». Я лично предпочитаю термин «офлайновая периферия». Это та область, где хороши решения, основанные на автономном подходе.
«Ближняя периферия», или «онлайновая периферия» (веб)
Справедливости ради, насколько я знаю, люди из IoT добрались на периферию первыми. Так что если они хотят утверждать, что именно их периферия является истинной, тут мало что можно сделать.
Но реальность такова, что существует растущий и сильный сегмент индустрии, который использует термин edge для обозначения чего-то совсем другого. Это веб-разработчики, размещающие свои приложения на таких платформах, как Cloudflare, Vercel или Netlify.
В то время как «облако» может предложить вам регион «в Европе», «периферия» предложит вам несколько городов, разбросанных по всей Европе. Эти периферийные точки не такие мощные и на многое способные, как облачные дата-центры, но все же это дата-центры. Технически они могут быть такими же мощными, как любой другой облачный дата-центр, но это будет неэкономично.
Недостающий компонент: периферия данных
Для IoT-периферии каждое оконечное устройство будет иметь собственное локальное хранилище. Но для веб-периферии все обстоит иначе. Передача данных на периферию сопряжена с определенными трудностями.
Вычисления и хранение данных присутствуют в определении периферийных вычислений, но они очень разные по своей природе. Вычислительная техника маневренна и может быть легко перемещена в любое место. Данные тяжелы, и их перемещение связано с определенными затратами. Вычисления не обременены нормативными требованиями и могут выполняться где угодно. Данные защищены и должны обрабатываться по-разному в зависимости от юрисдикции.
По этой причине компании, нацеленные на периферию, до сих пор концентрировали свои усилия в основном на вычислениях, например, на периферийных функциях. Но перенос вычислений на периферию решает только половину проблемы, особенно если вы обращаетесь к централизованной базе данных где-то в далеком кластере. В итоге вы получаете такую же, а возможно, и бóльшую задержку, чем если бы вы просто разместили все свои вычисления в традиционном централизованном облачном хранилище.
Одним из способов перемещения данных на периферию является кэширование их на устройствах конечных пользователей. Это хорошо подходит для автономного использования, но кэширование и синхронизация — сложные вещи, и они не решают многих проблем, когда требуется быстрый доступ.
Является ли Edge тем же самым, что и Serverless?
Когда такие компании, как Vercel, Netlify и Cloudflare, говорят о периферии, они обычно имеют в виду «периферийные функции». Это приводит к тому, что разработчики смешивают понятия «edge» и «serverless», как будто они похожи или одинаковы. В бессерверной технологии, хотя где-то и есть серверы, разработчики не думают в терминах серверов, которые нужно настраивать, увеличивать или уменьшать. Они думают в терминах функций, которые выполняются — они просто развертывают код и ожидают, что поставщик облачных услуг сделает все остальное.
Эта парадигма очень хорошо сочетается с периферийными вычислениями: поскольку мы предполагаем, что доступных ресурсов здесь меньше, разрешение потенциально расточительных вычислений общего назначения становится менее привлекательным. Ограничение разработчиками возможностей (через функции и массовое многопользовательское обслуживание) позволяет лучше использовать и упаковывать ресурсы.
Другая причина — историческая: изначально эти платформы были простыми сетями доставки контента (CDN), работающими со статическими активами. Со временем эти CDN начали наращивать функциональность и превратились в программируемые CDN.
Но такие компании, как Fly.io, также являются периферийными компаниями, и они работают по другой модели. Вы можете развернуть контейнерную абстракцию с долгоживущим приложением по вашему выбору, и поскольку они делают это приложение доступным во многих регионах, они также являются edge-игроками.
Является ли Edge «просто X»?
Каждый раз, когда появляется новый термин, люди склонны заходить слишком далеко, чтобы понять, является ли что-то действительно новшеством или нет. Когда появилось облако, многие люди не видели в нем ценности, потому что это была «просто аренда серверов». Это было не так: возможность арендовать эти серверы за секунды, а не за недели, и также легко возвращать их обратно изменила принципы работы предприятий.
До появления онлайновой периферии вы могли создавать приложения, охватывающие несколько локаций, точно так же, как вы могли создавать эластичные приложения до появления облака: с головной болью точного географического обеспечения, маршрутизации, размещения и выполнения.
Теперь периферия позволяет создавать код так, как будто все это не имеет значения — как будто мир един — и устанавливать политики в отношении того, что и где может происходить. Периферия позволяет создавать действительно глобальные приложения прозрачно, не вкладывая время и деньги в явную настройку и управление глобальным присутствием.
Второй критерий актуальности
Периферия соответствует первому критерию — ответ на вопрос, является ли она «просто X» или новой концепцией, которая останется, следующий: она действительно меняет способ, с помощью которого разработчики создают свои приложения. Следующий критерий, требующий конкретного ответа — решает ли периферия вашу конкретную бизнес-проблему.