Я занимаюсь serverless-разработкой: делаю бэкенды, которые состоят из отдельных функций, а не из серверов, требующих круглосуточного присмотра. В работе у меня AWS Lambda, Google Cloud Functions и Azure Functions, соединённые через API Gateway, HTTP-триггеры, очереди и шины событий. Начинаю всегда с логики: какое событие приходит, какая функция его подхватывает и куда передаёт результат, — и только после этого пишу сам код, ведь в serverless именно продуманная схема определяет качество. Пишу преимущественно на Node.js и TypeScript, при необходимости подключаю Python, а каждый обработчик держу компактным и заточенным под одну задачу, чтобы его было просто сопровождать и недорого выполнять.
Особенно хорошо мне даётся событийная архитектура. Связываю функции с SQS, SNS, EventBridge, Pub/Sub и Kafka, настраиваю dead-letter-очереди и идемпотентность, чтобы повторная доставка сообщений не приводила к двойным списаниям или дублям в базе. Холодные старты укрощаю подбором памяти, provisioned concurrency и минимизацией зависимостей. Отдельно слежу за расходами: при отсутствии нагрузки счёт должен стремиться к нулю, и я подбираю таймауты, размеры пакетов и лимиты параллелизма так, чтобы это работало на практике. Инфраструктуру описываю кодом — SAM, Serverless Framework, CDK или Terraform, — благодаря чему окружение легко воссоздать, версионировать и откатить.
Не забываю и о том, что обычно всплывает уже в бою: понятные структурированные логи, сквозную трассировку вызовов, оповещения о всплесках ошибок и троттлинге, аккуратные поэтапные выкатки и права IAM по минимуму, когда функция имеет доступ строго к нужным ресурсам. От единичного приёмника вебхуков до полноценного событийного API или разбора тяжёлого монолита на набор небольших функций — проведу проект от наброска схемы до рабочего и отслеживаемого сервиса.
— AWS Lambda, Google Cloud Functions, Azure Functions
— Событийные API через API Gateway и HTTP-триггеры
— Очереди и события: SQS, SNS, EventBridge, Pub/Sub, Kafka
— Функции на Node.js и TypeScript, Python при необходимости
— Борьба с холодными стартами, параллелизм и снижение затрат
— Инфраструктура как код: SAM, Serverless Framework, CDK, Terraform
— Мониторинг: логи, трассировка, оповещения, минимальные права IAM
Особенно хорошо мне даётся событийная архитектура. Связываю функции с SQS, SNS, EventBridge, Pub/Sub и Kafka, настраиваю dead-letter-очереди и идемпотентность, чтобы повторная доставка сообщений не приводила к двойным списаниям или дублям в базе. Холодные старты укрощаю подбором памяти, provisioned concurrency и минимизацией зависимостей. Отдельно слежу за расходами: при отсутствии нагрузки счёт должен стремиться к нулю, и я подбираю таймауты, размеры пакетов и лимиты параллелизма так, чтобы это работало на практике. Инфраструктуру описываю кодом — SAM, Serverless Framework, CDK или Terraform, — благодаря чему окружение легко воссоздать, версионировать и откатить.
Не забываю и о том, что обычно всплывает уже в бою: понятные структурированные логи, сквозную трассировку вызовов, оповещения о всплесках ошибок и троттлинге, аккуратные поэтапные выкатки и права IAM по минимуму, когда функция имеет доступ строго к нужным ресурсам. От единичного приёмника вебхуков до полноценного событийного API или разбора тяжёлого монолита на набор небольших функций — проведу проект от наброска схемы до рабочего и отслеживаемого сервиса.
— AWS Lambda, Google Cloud Functions, Azure Functions
— Событийные API через API Gateway и HTTP-триггеры
— Очереди и события: SQS, SNS, EventBridge, Pub/Sub, Kafka
— Функции на Node.js и TypeScript, Python при необходимости
— Борьба с холодными стартами, параллелизм и снижение затрат
— Инфраструктура как код: SAM, Serverless Framework, CDK, Terraform
— Мониторинг: логи, трассировка, оповещения, минимальные права IAM