Экосистема бессерверных вычислений — это больше, намного больше, чем просто AWS Lambda

Опубликовано: 4 Марта, 2023
Экосистема бессерверных вычислений — это больше, намного больше, чем просто AWS Lambda

Бессерверные вычисления набирают все большую популярность среди заказчиков облачных вычислений. С тех пор, как AWS Lambda была запущена, и AWS показала, что бессерверные вычисления занимают место в основных облачных рабочих нагрузках, многие организации окунули свои пальцы в бессерверные вычисления и нашли множество вариантов их использования, начиная от облегченной агрегации журналов и заканчивая запуском целых приложений, требующих быстрых всплесков. вычислений и памяти. Однако индустрия бессерверных вычислений — это больше, чем просто AWS Lambda. Многие поставщики облачных услуг видят потенциал бессерверных вычислений и не хотят отставать.

Плюсы и минусы бессерверных вычислений

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

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

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

бессерверные вычисления
Викимедиа

Одна большая проблема с бессерверными вычислениями заключается в том, что существует реальная угроза привязки к поставщику. То, как вы выполняете свои функции в AWS Lambda, полностью отличается от того, как вы выполняете то же самое в конкурирующем решении. В конечном итоге, если вы станете сильно зависеть от любой из этих платформ, вам будет сложнее переключиться. Частичное решение этой проблемы состоит в том, чтобы сохранить простоту и использовать архитектуру, которую вы можете адаптировать к другому поставщику облачных услуг. Это требует тщательного предварительного планирования и все равно не будет равнозначно удобству гибридного облака, которое вы имеете, скажем, с виртуальными машинами. Тем не менее, появляются интересные решения, которые позволяют создавать гибридные облачные установки даже без серверов. Подробнее об этом позже.

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

Функции Azure

После Lambda функции Azure являются наиболее зрелым вариантом бессерверных вычислений. Его самая большая сила в том, что он поддерживает наибольшее количество языков. Недавно в нее была добавлена поддержка Java, что открывает доступ к корпоративному рынку, на котором Microsoft уже занимает значительное место.

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

Функции Azure также расширяются за счет интеграции с другими популярными инструментами, такими как Maven, Visual Studio и другими. В большинстве других аспектов, таких как ценообразование и ограничения ресурсов, Функции Azure не уступают Lambda и являются отличной альтернативой, если вы не являетесь магазином AWS.

Облачные функции Google

Следующим крупнейшим поставщиком облачных услуг после AWS и Azure является Google Cloud, и неудивительно, что у них также есть решение для бессерверных вычислений под названием «Функции». Теперь решение Google новее, чем его более крупные конкуренты, и в нем отсутствуют некоторые важные функции. Вероятно, это связано с тем, что Google сосредоточился на Kubernetes и видит точку сближения где-то в будущем двух технологий — оркестрации контейнеров и бессерверных вычислений.

Во-первых, функции Google Should поддерживают только JavaScript. Это большой недостаток, который ограничивает его применение, особенно в крупных организациях. Google позволяет вам загружать свой код другими способами, кроме zip-файла, который более гибок, чем Lambda. Например, вы можете хранить свой код в облачном хранилище Google и получать к нему доступ с помощью функций.

Google также более либерален в своих ограничениях ресурсов. В отличие от Lambda, размер файла которого ограничен 50 МБ, в функциях Google ограничения на размер файла нет. Но он устанавливает ограничение в 20 функций для каждого проекта.

Интересным дополнением к облачным функциям Google являются облачные функции для Firebase. Это естественная интеграция между двумя продуктами, поскольку они оба стремятся абстрагироваться от инфраструктуры и позволяют разработчикам сосредоточиться исключительно на коде, который они запускают.

Связанный сервис — Google Cloud Dataprep, который использует бессерверные вычисления для изучения и очистки данных в масштабе предприятия. Это большая неприятная проблема для предприятий, которая часто связана с тяжелыми устаревшими инструментами, привязанными к дорогостоящему оборудованию в физическом хранилище данных. Однако бессерверные вычисления меняют способ управления данными на предприятии. Современные облачные и бессерверные хранилища данных берут штурмом предприятия, и Google хочет принять участие в этом сдвиге.

Оракул Fn

Oracle — самый последний участник рынка бессерверных вычислений. Это, без сомнения, вызвано ожесточенным соперничеством с AWS на облачном фронте. Oracle недавно приобрела стартап по бессерверным вычислениям Iron.io, у которого был очень интересный продукт под названием IronFunctions. Oracle, не теряя времени, провела ребрендинг продукта и анонсировала его как Oracle Fn.

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

Второй уникальный аспект Oracle Fn заключается в том, что он использует контейнеры Docker в качестве базовой вычислительной единицы. Он упаковывает функции как контейнеры, и этими контейнерами можно управлять, размещать и запускать так же, как и любым другим контейнером Docker. Они называют это BYOD — принесите свой собственный Dockerfile.

Если этого недостаточно, Oracle Fn также не зависит от облака. Он может работать в облаке Oracle, но также предназначен для работы локально или в любом другом облаке. Это связано с его контейнерной архитектурой. Он хорошо сочетается с контейнерными инструментами, особенно с Kubernetes. Таким образом, это не усложняет ваш облачный стек, но обеспечивает столь необходимую унификацию различных платформ и технологий.

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

Существуют и другие интересные варианты бессерверных вычислений, такие как Fission — продукт, разработанный Platform9 и основанный на Kubernetes. Также есть Apache OpenWhisk с открытым исходным кодом и другие фреймворки, такие как Deployd и Sparta. Это темы для другой, более подробной статьи.

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