Поиск по сайту:

LFCA: Изучите бессерверные вычисления, преимущества и подводные камни – Часть 15


Бессерверная технология вызвала большой ажиотаж в техническом сообществе, вызвав большое любопытство и в некоторой степени вызвав некоторую негативную реакцию. Эта технология зародилась с запуском AWS Lamba в 2014 году, а позже, в 2016 году, вскоре последовала Azure Functions.

Позднее компания Google последовала этому примеру, выпустив функции Google Cloud в июле 2018 года. Итак, что же такое бессерверная технология? Чтобы лучше всего ответить на этот вопрос, давайте вернемся к традиционным серверным вычислениям.

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

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

Как вы уже могли догадаться, это ресурсоемкое, дорогостоящее и истощающее мероприятие.

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

Хотя облачные вычисления принесли с собой удобство и экономию за счет масштаба при развертывании ИТ-ресурсов, некоторые компании закупали слишком много серверного пространства и ресурсов, таких как ОЗУ и ЦП, в ожидании всплеска сетевого трафика или активности, которые могут перегрузить приложения.

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

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

Что такое бессерверные вычисления

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

Термин «Бессерверный» может вводить в заблуждение. Задействованы ли серверы? Конечно, однако, в этом случае серверы и базовая инфраструктура управляются и обслуживаются исключительно поставщиком облачных услуг. Таким образом, вам не нужно беспокоиться о них. Как разработчик, вы сосредоточены исключительно на разработке своих приложений и обеспечении их работы так, чтобы вы были удовлетворены.

При этом бессерверные вычисления избавляют вас от головной боли по управлению серверами и экономят драгоценное время для работы над приложениями.

Серверные службы, предоставляемые бессерверными вычислениями

Прекрасным примером бессерверной серверной службы является платформа Функция как услуга (FaaS). FaaS – это модель облачных вычислений, которая позволяет разработчикам разрабатывать, выполнять код и управлять им в ответ на события, не усложняя создание и управление базовой инфраструктурой, обычно связанной с развертыванием микросервисов.

Faas — это подкатегория бессерверных вычислений с небольшими отличиями. Бессерверные вычисления охватывают широкий спектр сервисов, включая вычисления, базы данных, хранилища и API, и это лишь некоторые из них. FaaS ориентирован исключительно на модель вычислений, управляемую событиями, в которой приложения выполняются по требованию, то есть в ответ на запрос.

Примеры вычислительных моделей FaaS:

  • AWS Lambda от AWS
  • Функции Azure от Microsoft
  • Облачные функции от Google
  • Работники Cloudflare от Cloudflare

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

Преимущества бессерверных вычислений

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

1. Нет управления сервером

Это, пожалуй, одно из самых больших преимуществ внедрения модели бессерверных вычислений. Хотя термин «бессерверный» может быть неправильно истолкован как подразумевающий отсутствие серверов, факт остается фактом: приложения по-прежнему выполняются на серверах. Суть вопроса в том, что управление сервером полностью принадлежит поставщику облачных услуг, а это дает вам больше времени для работы над вашими приложениями.

2. Простое и эффективное масштабирование.

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

3. Встроенная доступность

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

4. Снижение эксплуатационных расходов.

Бессерверные вычисления распределяют ресурсы по принципу оплаты по мере использования. Вашему приложению потребуются серверные функции только во время выполнения кода, и оно будет автоматически масштабироваться в зависимости от объема рабочей нагрузки.

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

5. Более быстрое развертывание приложений

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

Простота развертывания также позволяет разработчикам легко исправлять и обновлять определенные функции кода, не изменяя все приложение.

Подводные камни бессерверных вычислений

Есть ли какие-либо недостатки, связанные с бессерверной моделью? Давай выясним.

1. Безопасность

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

2. Привязка к поставщику

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

3. Сложности тестирования и отладки приложений.

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

4. Сложность мониторинга бессерверных приложений

Мониторинг бессерверных приложений — сложная задача по тем же причинам, по которым отладка и тестирование — трудная задача. Ситуация усугубляется отсутствием инструментов с интеграцией с серверными сервисами, такими как AWS Lamba.

Заключение

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

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