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

100x100_benefit_code-quality

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

100x100_benefit_increase-upward1

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

100x100_benefit_performance

При работе с AWS Lambda оплачиваются каждые 100 мс выполнения программного кода и количество его триггеров. Когда программный код не выполняется, оплата не требуется.

Технология бессерверных вычислений позволяет создавать экономичные масштабируемые приложения, которые автоматически масштабируются в нужном направлении. Выделять и масштабировать серверы, а также управлять ими при этом не требуется. При использовании AWS Lambda для запуска кода приложения Lambda активирует код в ответ на события, такие как запросы HTTP или изменения данных в корзине Amazon S3 или таблице Amazon DynamoDB. Стоимость использования сервиса зависит от продолжительности исполнения кода и от того, сколько раз он был активирован. Поскольку Lambda масштабируется в соответствии с рабочей нагрузкой, пользователю никогда не приходится платить за простаивающие вычислительные ресурсы.

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

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

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

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

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

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

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

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

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

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

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

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

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

Вы можете быстро начать работу с помощью нашей коллекции шаблонов для многократного использования или схем, позволяющих использовать интеграции с популярными сервисами сторонних разработчиков (такими как Slack, Algorithmia, Twilio, Loggly, Splunk, Sumo Logic и т. д.).

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

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

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

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

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

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

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

Вычисления

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

Хранилище

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

Базы данных

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

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

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

Аналитика

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

Отправка сообщений и очереди

Amazon SNS – быстрый и гибкий полностью управляемый сервис для отправки сообщений по принципу «публикация-подписка» (pub-sub). Используйте его как облачный сервис отправки оповещений в мобильные приложения, позволяющий отправлять push-уведомления, электронную почту и SMS-сообщения, или как инфраструктуру корпоративной системы сообщений. Amazon SQS – это быстрый, надежный, масштабируемый и полностью управляемый сервис очередей сообщений. SQS позволяет легко и экономично изолировать компоненты облачного приложения.

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

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

Диагностика

Сервис AWS X-Ray помогает разработчикам анализировать свои продукты и распределенные приложения, например приложения на базе архитектуры микросервисов, а также устранять ошибки. X-Ray позволяет оценить производительность приложения и сервисов, на которых основана его работа, чтобы определить и устранить первопричины снижения производительности и сбоев.

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

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

Пример. Эталонная архитектура интернет-приложения. Схема | Образец кода

Lambda_WebApplications

Пример. Эталонная архитектура мобильной серверной системы. Схема | Образец кода

Lambda_MobileBackends
Lambda_Bustle

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

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

Пример. Эталонная архитектура обработки данных. Схема | Образец кода

Lambda_FileProcessing
Lambda_SeattleTimes

Seattle Times использует AWS Lambda при изменении размера изображений для просмотра на различных устройствах, таких как настольные компьютеры, планшеты и смартфоны. Ознакомиться с примером использования »


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

Lambda_StreamProcessing
serverless-benchling

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