Руководство по сравнению бессерверных вычислений: AWS Lambda, функции Microsoft Azure и облачные функции Google
![Руководство по сравнению бессерверных вычислений: AWS Lambda, функции Microsoft Azure и облачные функции Google](/public/uploads/img/1/3/94/29325.jpg)
Если вы ищете бессерверные вычисления, вам нужно сравнить основных конкурентов. В этом руководстве по сравнению бессерверных вычислений мы рассмотрим AWS Lambda, функции Microsoft Azure и облачные функции Google, чтобы определить преимущества и недостатки каждого продукта и найти лучший вариант для вас и вашей компании.
Что такое бессерверные вычисления?
Если вы еще мало что знаете о бессерверных вычислениях, самое время научиться. Конечно, этот тип вычислений все еще использует серверы. Однако разница в том, что клиентам и разработчикам не нужно сосредотачиваться на рабочих деталях, проблемах с инфраструктурой или других проблемах, связанных с сервером. Вместо этого они могут просто сосредоточиться на коде и желаемом результате.
AWS лидировала в переходе на бессерверные технологии, выпустив Lambda в 2014 году. Вскоре после этого появились функции Microsoft Azure, а затем на далеком третьем месте появились облачные функции Google.
Хотя бессерверные вычисления не являются совершенно новым явлением, особенно в быстроразвивающемся технологическом секторе, они существуют всего несколько лет. Скорость адаптации ниже, чем у многих других новых технологий: только около 30% респондентов недавнего опроса DevOps Pulse фактически начали использовать бессерверные вычисления.
Однако это число постоянно растет, поскольку все больше разработчиков и компаний видят преимущества бессерверных вычислений и избавляются от необходимости думать об управлении реальными серверами. Команды DevOps могут сосредоточить все свои усилия на создании и улучшении кода, а не на развертывании, подготовке, управлении и масштабировании серверов.
Если вы опасаетесь, что бессерверные вычисления не справятся со сложностями вашего решения, вам, вероятно, не о чем беспокоиться, поскольку их используют крупные корпорации, такие как Netflix, Dropbox и другие.
Руководство по сравнению бессерверных вычислений
АВС Лямбда
Будучи первым, AWS Lambda также является самым популярным. Он считается новатором, начавшим бессерверную революцию, и теперь он полностью интегрирован как часть облачных предложений AWS. С помощью Lambda вы можете писать код на Node.js (JavaScript), Java (совместимый с Java 8) и C# (.NET Core). Это также позволяет вашему коду включать существующие библиотеки, даже нативные. Для получения дополнительной информации ознакомьтесь с их часто задаваемыми вопросами.
Lambda также предлагает интеграцию со своими популярными предложениями S3 и Kinesis, поэтому вы можете запускать анализ журнала, обработку изображений, резервное копирование и многое другое с помощью этих сервисов. Кроме того, «интеграция DynamoDB добавляет еще один уровень триггеров для операций, выполняемых за пределами эхо-системы реального времени».
Одним из лучших аспектов AWS Lambda является то, что он может выступать в качестве полноценного серверного сервиса для многих различных типов приложений, включая веб-приложения, мобильные приложения и приложения IoT. Он работает, получая запросы от клиента через шлюз Amazon. Затем Amazon преобразует запросы в вызовы API, которые позже становятся предопределенными триггерами, вызывающими определенные функции.
Одной из причин, по которой все больше разработчиков и компаний переходят на бессерверные вычисления, помимо простоты и легкости, является экономия средств. Как и во многих сервисах AWS, стоимость определяется на основе времени выполнения. Ваш первый миллион запросов бесплатен, а каждый последующий миллион запросов стоит 0,02 доллара США, включая запросы и плату за вычисления. Более подробная информация об их ценах находится здесь.
Хотя это кажется пустяком, количество запросов может значительно превысить ожидаемую сумму, если время выполнения превышает ваши цели, что значительно увеличивает стоимость. Вот почему очень важно вкладывать средства в инструменты журналов и метрик для любой бессерверной архитектуры. При этом вы можете иметь как простоту, так и экономию средств.
Функции Azure
Через пару лет после создания Lambda Microsoft выпустила Azure Functions. Он был выпущен почти два года назад, в марте 2016 года, но Microsoft работает над тем, чтобы догнать AWS Lambda. Тем не менее, он еще не предлагает весь спектр, который предлагает Lambda.
Тем не менее, благодаря интеграции и функциональным возможностям Azure Functions, он по-прежнему является достойным конкурентом. Функции Azure предоставляют разработчикам множество языковых возможностей, говоря, что вы можете «писать функции, используя C#, F#, Node.js, Java, PHP, пакетную обработку, bash или любой исполняемый файл».
Для повышения удобства Azure предлагает готовые интеграции с GitHub, Bitbucket и VS Team Services, что упрощает настройку и развертывание кода. Microsoft также добавила свои логические приложения, которые призваны помочь менее техническим пользователям определять и «управлять задачами обработки данных, а также устанавливать пути рабочих процессов».
Ваш код можно активировать несколькими способами в Функциях Azure, включая события на основе таймера для запланированных задач или конфигурацию через OneDrive или SharePoint, которая запускает операции в Функциях. Фактически, «Общие триггеры для обработки данных или файлов в реальном времени добавляют возможность управлять бессерверным ботом, который использует Cortana в качестве поставщика информации».
Они предлагают аналогичные цены в зависимости от количества триггеров и времени выполнения: первый миллион запросов бесплатный, а следующие 1 миллион исполнений стоят 0,02 доллара США. Подробнее об их ценах можно узнать здесь.
Как объяснялось ранее, мониторинг чрезвычайно важен для бессерверных вычислений. По этой причине Microsoft приобрела Cloudyn в качестве производителя программного обеспечения для управления облаком и оптимизации затрат, чтобы помочь компаниям полностью контролировать свои ресурсы и эффективно контролировать их.
Облачные функции Google
Облачные функции Google по-прежнему отстают от функций Lambda и Azure. Хотя их альфа-версия была выпущена в феврале 2016 года, бета-версия была выпущена только в марте 2017 года, и с тех пор Google не добавлял много дополнительных функций.
В настоящее время он поддерживает только среду выполнения NodeJS и запускает события только во внутренней шине событий Google, Cloud Pub/Subtopics. Google вкладывает гораздо больше усилий в свой сервис Firebase, который запускает мобильные события; Также поддерживаются триггеры HTTP.
Согласно Google, вы можете использовать предпочитаемый язык программирования на облачной платформе, включая Go, Java,.NET, Node.js, PHP, Python и Ruby.
Одним из основных недостатков Google является то, что он не предлагает много интеграций. Кроме того, хотя Google предлагает Stackdriver для мониторинга, это не полнофункциональный инструмент для измерения показателей.
Предлагая наименьшее количество триггеров, сред выполнения и интеграции, он также требует наибольшей платы. Он также предлагает 1 миллион бесплатных запросов, но взимает 0,04 доллара США за 1 миллион вызовов и дополнительно 0,04 доллара США за 100 000 миллисекунд, хотя цены варьируются. Дополнительную информацию можно найти здесь.
К сожалению, облачные функции Google по-прежнему не являются сильным вариантом.
Что выбрать?
Что ж, в нашем руководстве по сравнению бессерверных вычислений мы установили, что облачные функции Google в настоящее время не работают. Однако, если вы хотите повысить простоту и снизить затраты, хорошим выбором станут функции Azure и Lambda.
Если вы хотите увидеть ориентировочную стоимость, воспользуйтесь Калькулятором стоимости без сервера. Важность выбора между функциями Azure и AWS Lambda на самом деле сводится к тому, сколько других сервисов доступно в той же экосистеме.
AWS предлагает самый широкий спектр продуктов и услуг, а это означает, что большинство клиентов склоняются к использованию Lambda. Однако Azure занимает второе место, поэтому, если вы используете больше продуктов и служб Azure, это должен быть ваш выбор. Тем не менее, поскольку это все еще относительно новая технология, каждая из них все еще имеет свои проблемы и ошибки.
Суть в том, что если вы преимущественно используете сервисы AWS, выберите Lambda, а если вы в основном используете Azure, выберите «Функции Azure», чтобы увидеть преимущества бессерверных вычислений.