Forrester определяет лучшие практики бессерверной разработки

Бессерверная (serverless) разработка быстро развивается, считает аналитик компании Forrester Девин Дикерсон, который исследует тенденции и лучшие практики, связанные с этим подходом, сообщает портал The New Stack. По словам Дикерсона, во многом рост serverless связан с побочным эффектом расширения применения DevOps — переносом некоторых операционных вопросов в разработку. «Разработчикам внезапно пришлось беспокоиться о гораздо большем количестве операционных проблем, чем раньше, — пояснил он. — Бессерверная технология выгодна разработчикам, потому что она снимает с них эти операционные проблемы». И это может объяснить ее популярность. Одним из самых важных аспектов бессерверной архитектуры является то, что приложения развертываются в функциях, которые запускаются только при вызове или срабатывании события. Проектирование с учетом этого означает создание микросервисов как дискретных функций с единой ответственностью. Это также означает, что функции должны выполняться, а затем исчезать. Для обеспечения оптимальной производительности функциональные нагрузки должны быть небольшими и с минимальными зависимостями. Бессерверная архитектура хорошо работает при наличии независимых рабочих нагрузок со спорадическим спросом, но это не лучший подход, если у вас есть серийные единицы работы, которые трудно обрабатывать параллельно, отмечает Forrester. Хотя платформы функций как сервисов (FaaS) — такие как AWS Lambda, Azure Functions и Google Cloud Functions — являются ключевыми для бессерверной разработки, это лишь отправная точка, утверждает Forrester. В качестве лучшей практики разработчики также могут сопрягать функции с событийно-ориентированными микросервисами. — Но чаще вы сталкиваетесь с бессерверными функциями наряду с микросервисами и общим нативным облачным приложением». При разработке функций с учетом автомасштабирования следует разбивать действия на небольшие независимые задачи, которые могут развертываться по отдельности. Приложение, работающее с несколькими бессерверными функциями и получающее события в разное время, требует более тщательного подхода к тестированию, при котором разработчик пытается смоделировать вещи, которые могут пойти не так в производстве. По словам Дикерсона, такой подход к хаос-тестированию с большим успехом использует Netflix.itWeek