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

автор vadim


Недавний отчет, опубликованный Datadog, поставщиком облачных услуг мониторинга и наблюдения, показал, что бессерверные вычисления сейчас более популярны, чем когда-либо. Анализ использования бессерверных вычислений среди клиентов Datadog показал, что более 70% клиентов AWS, 60% клиентов Google Cloud и 49% клиентов Microsoft Azure используют одно или несколько бессерверных решений.

На самом деле здесь нет ничего нового; Бессерверная технология — это старая новость, и она уже включена в процесс облачной разработки, когда дело доходит до выбора лучшей платформы разработки для новых и перенесенных облачных приложений. Он быстрый, не требует тщательного планирования инфраструктуры (почти никакого), а приложения работают хорошо. Ежу понятно, правда? Не так быстро.

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

Задержка холодного старта

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

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

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

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

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

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

Отладка и мониторинг

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

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

Управление затратами

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

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

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

Related Posts

Оставить комментарий