Бессерверная технология

Разработка и запуск приложений без забот о серверах

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

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

Зачем использовать бессерверные вычисления?

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

Платформа бессерверных вычислений AWS

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

Вычисления

AWS Lambda позволяет запускать программные коды без выделения серверов и управления ими. Вы платите только за фактическое время вычислений. Когда код не исполняется, плата не начисляется. 

Lambda@Edge позволяет запускать функции Lambda в периферийных местоположениях AWS в ответ на события Amazon CloudFront.

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

Хранилище

Сервис Amazon Simple Storage Service (Amazon S3) – это надежное и безопасное объектное хранилище с высокими возможностями масштабирования для разработчиков и ИТ‑подразделений. Amazon S3 удобен в использовании, оснащен простым веб‑интерфейсом и позволяет отправлять на хранение любой объем данных и извлекать его из любого места в Интернете.

Amazon Elastic File System (Amazon EFS) предоставляет простое, масштабируемое и эластичное файловое хранилище. Оно эластично масштабируется по требованию, расширяясь или уменьшаясь в соответствии с количеством размещаемых файлов. 

Хранилища данных

Amazon DynamoDB – это быстрый и гибкий сервис баз данных NoSQL, который подходит для любых приложений, требующих стабильной работы с задержкой не более нескольких миллисекунд при любом масштабе.

Amazon Aurora Serverless – это доступная по требованию конфигурация сервиса Amazon Aurora (для версии, совместимой с MySQL) с автомасштабированием. При использовании этой конфигурации база данных автоматически запускается, отключается и масштабирует свои ресурсы в зависимости от текущих потребностей приложения.

Прокси-сервер для API

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

Интеграция приложений

Amazon SNS – полностью управляемый сервис отправки сообщений по модели «издатель – подписчик» (Pub/Sub), который позволяет легко изолировать и масштабировать микросервисы, распределенные системы и бессерверные приложения.

Amazon SQS – полностью управляемый сервис очередей сообщений, позволяющий легко изолировать и масштабировать микросервисы, распределенные системы и бессерверные приложения.

AWS AppSync упрощает разработку приложений, позволяя создать универсальный интерфейс GraphQL API для безопасного доступа к данным, их изменения и объединения данных из нескольких источников. 

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

Оркестрация

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

Аналитика

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

Amazon Athena – интерактивный сервис запросов, позволяющий анализировать данные в Amazon S3 стандартными средствами SQL. Athena – это бессерверный сервис, поэтому инфраструктура, которой нужно было бы управлять, отсутствует, а плата начисляется только за выполняемые запросы.

Инструменты разработчиков

AWS предоставляет инструменты и сервисы, которые помогают разработчикам в создании бессерверных приложений. AWS и сообщество партнеров AWS предлагают инструменты для непрерывной интеграции и доставки, тестирования, развертывания, мониторинга и диагностики, а также пакеты SDK, платформы и подключаемые модули для интегрированных сред разработки (IDE).

Какими преимуществами обладают бессерверные вычисления?

Отсутствие необходимости управлять серверами

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

Гибкость масштабирования

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

Плата за объем потребленных ресурсов

Плата за стабильную пропускную способность или время исполнения, а не по количеству используемых серверов.

Автоматический контроль доступности

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

Примеры использования

Пример использования: Coca-Cola

Компания Coca-Cola, транснациональная корпорация по производству напитков из США, использовала AWS Lambda и AWS Step Functions для создания экономичного бессерверного решения.

Читать публикацию в блоге »

Пример использования: Finra

FINRA следит за работой брокеров и дилеров ценных бумаг в США, что включает в себя ежедневный анализ до 75 миллиардов рыночных событий с целью обнаружения мошенничества и признаков инсайдерской торговли.

Читать пример использования Finra »

Пример использования: iRobot

iRobot, ведущая компания-производитель бытовых роботов, использует AWS Lambda и AWS IoT для организации работы интернет-приложений, которые соединяются с новыми пылесосами Roomba с поддержкой Wi-Fi-подключений.

Читать пример использования iRobot »

Пример использования: Autodesk

Компания Autodesk использует AWS Lambda для автоматизации своих ИТ‑операций, а также сокращения затрат времени и средств на управление инфраструктурой.

Читать пример использования iRobot »

Возможности платформы бессерверных вычислений AWS

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

Облачный логический уровень

Постройте логику своего бизнеса на основе сервиса AWS Lambda, который может работать как плоскость управления и уровень логики для всех взаимосвязанных ресурсов инфраструктуры и сетевых API. Определяйте, оркестрируйте и запускайте контейнерные приложения и микросервисы для рабочей среды с помощью AWS Fargate, не заботясь об управлении инфраструктурой. 

Оркестрация и управление состояниями

Осуществляйте координацию и управление состояниями всех распределенных компонентов или микросервисов своего бессерверного приложения с помощью AWS Step Functions.

Источники данных с высокой скоростью отклика

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

Платформа для моделирования приложения

Используйте шаблон AWS Serverless Application Model с открытым исходным кодом для моделирования и развертывания бессерверных приложений и сервисов. Выполняйте непрерывную доставку бессерверных приложений, используя инструменты управления их жизненным циклом, такие как AWS CodePipeline и AWS CodeBuild.

Система инструментов для разработчиков

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

Библиотека приложений и интеграций

Используйте AWS Serverless Application Repository, чтобы быстро развертывать бессерверные приложения и их компоненты для различных целей, включая мобильные и веб-серверы, чат-боты, Интернет вещей, Alexa Skills, обработку данных, обработку потоков и прочее. Кроме того, можно найти интеграции с популярными сторонними сервисами (например, Slack, Algorithmia, Twilio, Loggly, Splunk, Sumo Logic, Box и т. д.).

Безопасность и контроль доступа

Обеспечьте безопасность и соответствие требованиям всей ИТ-среды с помощью ведения журналов, отслеживания изменений, контроля доступа и шифрования. Осуществляйте безопасный контроль доступа к вашим ресурсам AWS с помощью сервиса AWS Identity and Access Management (IAM). Управляйте конечными пользователями бессерверных приложений и выполняйте их аутентификацию с помощью Amazon Cognito. Используйте Amazon Virtual Private Cloud (VPC) для создания частных виртуальных сетей, доступ к которым будете контролировать только вы.

Надежность и производительность

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

Масштабирование и доступность по всему миру

Выводите свои приложения и сервисы на глобальный уровень, используя широкий географический охват AWS. Сервис AWS Lambda доступен во множестве регионов AWS и во всех периферийных местоположениях AWS с использованием Lambda@Edge. Функции Lambda также можно запускать на локальных подключенных устройствах с помощью сервиса AWS Greengrass.

Примеры использования бессерверных приложений

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

Интернет-приложения и серверные системы

Бессерверные интернет‑приложения и серверные системы можно создавать, используя AWS Lambda, Amazon API Gateway, Amazon S3 и Amazon DynamoDB для отработки сетевых запросов, запросов от мобильных устройств, устройств «Интернета вещей» (IoT) и чат‑ботов.

Пример: приложение с прогнозом погоды

Эталонная архитектура: образец кода

Серверная часть интернет‑приложения в AWS Lambda

Пример: серверная часть для мобильного приложения социальной сети

Эталонная архитектура: образец кода

Серверная часть мобильного приложения в AWS Lambda

Компания Bustle применяет бессерверные внутренние системы для своего приложения Bustle (iOS) и веб-сайтов, используя AWS Lambda и Amazon API Gateway. Бессерверные архитектуры позволяют Bustle никогда не заниматься управлением инфраструктурой, поэтому каждый технический специалист компании имеет возможность сосредоточиться на создании новых возможностей и внедрении инноваций. Ознакомиться с примером использования »


Обработка данных

Используя AWS Lambda, Amazon Kinesis, Amazon S3 и Amazon DynamoDB, можно создавать различные системы обработки данных в режиме реального времени.

Пример: создание изображений для предварительного просмотра

Эталонная архитектура: образец кода

Обработка файлов в AWS Lambda

Компания Square Enix использует AWS Lambda при выполнении обработки изображений для своей массовой многопользовательской онлайн‑игры. Благодаря Lambda компания смогла обеспечить надежную обработку пикового трафика, превышающего величину нормального трафика в тридцать раз. Время обработки изображений при этом уменьшилось с нескольких часов практически до 10 секунд. Компания также добилась сокращения инфраструктурных и эксплуатационных расходов. Ознакомиться с примером использования »

Пример: анализ потоковых данных социальных сетей

Эталонная архитектура: образец кода

Потоковая обработка в AWS Lambda

Компания Thomson Reuters использует бессерверную архитектуру для обработки до 4000 событий в секунду для своего сервиса аналитики использования. Сервис гарантированно обрабатывает пиковый трафик, в два раза превышающий по масштабам обычный трафик, и демонстрирует высокую надежность. Компания выполнила развертывание сервиса в рабочей среде всего через пять месяцев использования AWS. Ознакомиться с примером использования »

Начните работу с бессерверными вычислениями

Шаг 1. Регистрация аккаунта AWS

Зарегистрировать аккаунт AWS

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

Шаг 2. Обучение с помощью пошаговых учебных пособий

Обучение с помощью пошаговых учебных пособий

Знакомьтесь с сервисами и учитесь с помощью простых учебных пособий.

Начните создавать бессерверные приложения

Создание бессерверных приложений

Найдите популярные приложения для использования в AWS Serverless Application Repository.

Подробнее о создании бессерверных приложений

Перейти на страницу ресурсов