Интересное о Serverless: хабрастатьи о применении, инструментах, кейсах и инструкциях для первого свидания
Привет, Хабр! Меня зовут Антон. Примерно год назад я начал работать с Serverless — и был покорён этим подходом к разработке приложений. Несмотря на определённые недостатки и ограничения, потенциал бессерверных вычислений огромен, за ними большое будущее. Очень приятно, что честь стать первым куратором хаба Serverless выпала именно мне. Мои задачи — находить интересные материалы, показывать новые возможности и помогать тем, кто интересуется этой архитектурой. В первом посте я собрал статьи разных авторов с Хабра, которые знакомят с идеей Serverless-подхода и помогают разобраться, для чего её лучше всего применять.
Что необходимо знать перед тем, как начать работать с Serverless
В этом разделе я собрал статьи об основах Serverless: какие технология даёт преимущества, для каких задач применяется, что для этого надо, как не переплатить провайдеру. Раздел поможет новичкам систематизировать знания и избежать основных ошибок.
• Советы и источники информации для создания бессерверных приложений
Для чего нужна бессерверность в принципе, в каких ситуациях она особенно хороша. Знакомимся с самыми распространёнными заблуждениями и мифами о Serverless. Автор рассказывает о выборе инструментов и вендора, управлении расходами и мониторинге, особенностях цикла разработки и методиках сборки бессерверных приложений.
• Serverless по стоечкам
Рассмотрим преимущества и недостатки технологии с разных точек зрения — разработчика и провайдера. Разбираемся, как устроен процесс разработки Serverless-приложений и почему они выгодны для интенсивной, но не слишком частой обработки большого количества запросов.
• Как защититься от неожиданных счетов за AWS
Как рассчитать бюджет при работе с Serverless: на примере AWS учимся избегать сюрпризов с оплатой. Автор объясняет, как бессерверные решения масштабируются в зависимости от поступающего трафика и почему однажды вместо привычных 20 центов в месяц можно выложить 2–3 тысячи долларов.
Как можно использовать эту технологию
Как снижать затраты, увеличивать производительность, масштабировать проекты, работать с большими данными и фронтендом.
• Что такое бессерверный SQL? И как использовать его для анализа данных?
Как работает бессерверный SQL: быстрый запрос из любых баз данных без необходимости администрировать серверы. Вместе с автором разбираем сценарий разведочного анализа на примере исследования данных нью-йоркского такси из открытого источника.
• Почему разработчики не дружат с Serverless
Аргументы Serverless-скептиков: любая технология не лишена недостатков и ограничений. Бессерверные вычисления тоже не идеальны, это отнюдь не панацея.
• Как повысить производительность, используя бессерверную архитектуру
Как сделать бессерверную архитектуру инструментом масштабирования и снизить с её помощью нагрузку на собственное железо. Статья рассказывает о том, как перенести процесс предварительной обработки изображений с сервера приложений на Serverless-архитектуру.
• Serverless и React 2: ловкость рук и никакого мошенничества
Шаг за шагом рендерим React/Redux-приложение в Serverless-архитектуре, обсуждаем плюсы и минусы решения. Автор популярно объясняет — практически разжёвывает — нюансы использования бессерверных подходов во фронтенд-разработке. Много картинок и кода.
Инструменты и подходы для Serverless
Разбираемся с прикладными инструментами, которые помогают в работе с Serverless. Kotlin Serverless Framework упрощает создание Serverless-приложений путём анализа кода на Kotlin. OpenFaaS создаёт Serverless-функции поверх контейнеров. В разделе есть статьи, описывающие подходы к автоматизации процесса релиза для Serverless-функций через их обновление из Git-репозитория, и преимущества Serverless с точки зрения DevOps, а также — с точки зрения безопасности работы с бэкендом приложения.
• Простой путь к Serverless-вычислениям
Гайд от одного из разработчиков инструмента Kotlin Serverless Framework. Автор упрощает создание Serverless-приложений путём анализа кода приложения — по сути, делает всё необходимое для развёртывания текущего приложения в облаке.
• Представляя функции как сервис — OpenFaaS
OpenFaaS — фреймворк для создания Serverless-функций поверх контейнеров. У FaaS есть привязки для родного API у Docker Swarm и Kubernetes, с его помощью каждый процесс может стать Serverless-функцией с помощью компонента watchdog и контейнера Docker. Читают все, кого интересует тема Serverless под Kubernetes. Бонус: автор не только презентует свой инструмент, но и приводит приличный список альтернатив.
• Автоматический деплой Serverless-функций из Git
Один из подходов к практической бессерверной разработке. В материале объясняется, как автоматизировать процесс релиза для Serverless-функций через их автоматическое обновление из Git-репозитория. Например, добавлять исполнителя в зависимости от тегов, двигать задачу на определённый milestone или просто закрывать противные баги.
• Некоторые неочевидные преимущества Serverless для DevOps
Очевидные и не очень преимущества Serverless с точки зрения DevOps, а также — с точки зрения безопасности работы с бэкендом приложения. Подход не лишён недостатков, да и переход на бессерверную схему связан с определёнными заморочками. Но когда мы с ними разберёмся, то уже не будем терять время на промежуточные варианты в виде докера, а сразу выйдем на следующий уровень.
Готовые инструкции по созданию бессерверных приложений
Личный опыт и примеры, которые можно использовать. Используя эти гайды, вы сможете написать приложение для сбора данных пульсовой оксиметрии, их отслеживания и обмена ими, создать простого Serverless-бота и подключить его к базе данных, интегрировать Slack в качестве Serverless-бэкенда или даже построить собственный бесплатный Serverless на основе Fn.
• Serverless-телеграм-бот с использованием «Яндекс.Облака»
Создаём простого Serverless-бота как заготовку для различных модификаций с использованием Yandex Cloud Functions. Подробный туториал, всё расписано максимально просто для совсем начинающих Python-программистов.
• Подключение Yandex Database к Serverless-телеграм-боту
Как подключить Serverless-бота к базе данных. Шаг за шагом: как подготовить базу к подключению, установить зависимости, добавить таблицу для хранения пользователя, сохранить информацию о входящем пользователе в сообщении «Телеграма», а затем получить информацию и отправить её пользователю из базы данных.
• Создание трекера пульсоксиметрии с использованием Serverless
Гайд по созданию решения для сбора данных пульсовой оксиметрии, отслеживания этих данных и обмена ими — и всё это для нескольких пользователей. Бессерверный бэкэнд обрабатывает пользовательские данные и управление общим доступом. Код написан на Python для обработки бизнес-логики взаимодействия с базой данных Amazon DynamoDB. Serverless-подход в данном случае обеспечивает надёжную масштабируемость и безопасность.
• Создаём бессерверное приложение с помощью Azure Functions и Go
Интегрируем Slack в качестве Serverless-бэкенда. Получаем общее представление о пользовательских обработчиках (Custom Handlers) в Azure Functions благодаря разбору кода. Логика бэкенд-функции написана на Go (код доступен на GitHub).
• Строим собственный Serverless на основе Fn
Как использовать бесплатные альтернативы с открытым исходным кодом для организации бессерверных вычислений. Разбираемся с Fn — одним из таких решений.
И ещё немного кейсов от читателей Хабра
Как хабровчане применяют Serverless на практике. Здесь вы прочитаете о том, как использовать бессерверность для работы с Big Data, ускорить разработку приложений — на примере сервиса для загрузки видео — и свести расходы на использование Serverless к минимуму.
• Serverless-подход для быстрой разработки рабочего видеосервиса
Кейс с выводами о преимуществах Serverless-подхода и его недостатках. Автору нужно было за месяц разработать промосервис, где пользователи загружают от одного до четырёх видео длительностью от одной до четырёх секунд, которые потом встраиваются в оригинальный видеоряд. Бессерверные технологии помогли, хотя не всё прошло гладко.
• Архитектура и стоимость простого бессерверного веб-приложения AWS
Как создать Serverless-инструмент, позволяющий реализовывать практически любые фантазии за 59 центов в месяц. В описанном приложении автор не платит ни за что, кроме таблицы DynamoDB.
• Snowflake, Anchor Model, ELT и как с этим жить
Serverless-подход к работе с большими данными: как отойти от скучных классических OLAP-решений в виде Vertica или Exasol и попробовать редкую, но вполне эффективную облачную DWaaS (Data Warehouse as a Service) Snowflake в качестве основы для хранилища.
На этом пока всё. Предлагайте следующие темы, задавайте вопросы в комментариях к подборке или пишите в наше телеграм-сообщество Yandex Serverless Ecosystem, где можно задать вопросы по Serverless-архитектуре и пообщаться с разработчиками Yandex.Cloud по сервисам нашей экосистемы.