Обзор

  • Что такое AWS Step Functions?

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

  • Каковы преимущества разработки приложений с использованием оркестрации сервисов для координации задач?

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

  • Какие задачи можно решать с помощью AWS Step Functions?

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

    • Обработка документов и данных. Консолидация данных из разных БД в единые отчеты. Очистка и преобразование крупных пакетов данных в полезные форматы.
    • DevOps. Разработка инструментов для непрерывной интеграции и непрерывного развертывания. Создание событийно-зависимых приложений, которые автоматически реагируют на изменения инфраструктуры.
    • Электронная коммерция. Автоматизация наиболее важных бизнес-процессов, таких как выполнение заказов и инвентаризация.
    • Интернет-приложения. Реализация надежных процессов регистрации и аутентификации пользователей.
  • Как работает сервис AWS Step Functions?

    AWS Step Functions позволяет представить приложение в виде конечного автомата – последовательности действий, совокупность которых полностью описывает поведение приложения. Под состояниями конечного автомата понимаются задачи, последовательные шаги, параллельные шаги, условные действия (выбор) и/или таймеры (ожидание). Задачи – это единицы работы, которые могут выполняться функциями AWS Lambda, инстансами Amazon EC2 любого типа, контейнерами, локальными серверами и любыми другими устройствами и сервисами, поддерживающими управление с помощью API Step Functions. На визуальной консоли автоматически отмечается каждое состояние в порядке выполнения, что упрощает разработку многоступенчатых приложений. На консоли отображается статус каждого шага в режиме реального времени и подробная история всех выполнений. Step Functions управляет и масштабирует шаги приложения и соответствующие вычислительные ресурсы, гарантируя надежную работу приложения при увеличении спроса.

  • Как начать работу с AWS Step Functions?

    Чтобы начать работу с AWS Step Functions, перейдите на страницу сведений об AWS Step Functions и нажмите кнопку «Бесплатный начальный доступ». Если у вас еще нет аккаунта Amazon Web Services, вам будет предложено создать его. После регистрации можно использовать пошаговое руководство в консоли AWS Step Functions и создать образец конечного автомата. В Консоли управления AWS выберите «AWS Step Functions» Выберите схему «Hello World» и добавьте функцию «HelloWorld» Lambda. После этого можно просмотреть и запустить свой конечный автомат. Начать использование AWS Step Functions в приложениях поможет документация по AWS Step Functions.

  • Какие языки можно использовать в AWS Step Functions?

    Для создания действий можно использовать любые языки, если они обеспечивают возможность взаимодействовать с AWS Step Functions через API веб-сервиса. Можно также использовать AWS SDK на удобном языке программирования. AWS Lambda поддерживает код, написанный на Node.js (JavaScript), Python, Java (совместимый с Java 8) и C# (с библиотекой .NET Core). Конечные автоматы определяются в формате JSON с использованием Amazon States Language.

  • Можно ли использовать AWS Step Functions с локальными ресурсами?

    Да. Приложения AWS Step Functions могут одновременно работать с исполнителями в локальном ЦОД и в облаке. Исполнители в ЦОД будут работать, как обычно, параллельно с любыми исполнителями в облаке.

Сравнения

  • Когда лучше использовать AWS Step Functions, а когда – Amazon SQS?

    AWS Step Functions рекомендуется использовать для координации сервисных компонентов при разработке высокомасштабируемых приложений с возможностью контроля. Если же необходима надежная масштабируемая выделенная очередь для отправки, хранения и приема сообщений в ходе взаимодействия между сервисами, лучше использовать Amazon Simple Queue Service (Amazon SQS). Step Functions отслеживает все задачи и события в приложении. В Amazon SQS необходимо самостоятельно реализовать отслеживание на уровне приложения, особенно если в приложении используется несколько очередей. Консоль Step Functions и API видимости обеспечивают детальный анализ работы приложений, позволяющий осуществлять поиск выполняющихся заданий, переходить к детальному просмотру того или иного задания и управлять ходом их выполнения. В Amazon SQS необходимо дополнительно реализовывать такие функциональные возможности. Step Functions предлагает ряд возможностей, позволяющих облегчить процесс разработки приложений, в числе которых передача данных между заданиями и гибкость при распределении задач. В Amazon SQS необходимо внедрять некоторые функциональные возможности на уровне приложения. Если при использовании сервиса Amazon SQS можно создавать основные рабочие процессы для координации распределенного приложения, то при использовании Step Functions все эти возможности предоставляются сразу вместе с другими возможностями на уровне приложения.

  • Когда лучше использовать AWS Step Functions, а когда – AWS Batch?

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

  • Когда следует использовать AWS Step Functions, а когда – Amazon Simple Workflow Service (SWF)?

    AWS Step Functions рекомендуется использовать при разработке любых новых приложений, так как этот сервис обеспечивает более продуктивный и гибкий подход к координации компонентов приложения с помощью наглядного представления рабочих процессов. Если в процессах должны участвовать внешние сигналы или требуется запускать дочерние процессы, которые возвращают результат родителю, рекомендуется использовать Amazon Simple Workflow Service (Amazon SWF). В Amazon SWF вместо того, чтобы писать конечные автоматы в декларативном формате JSON, достаточно написать программу принятия решений, которая отделит рабочие шаги от шагов принятия решений. Это обеспечивает полный контроль над логикой механизмов оркестрации, но усложняет разработку приложений. Программы для принятия решений можно написать на любом языке либо, используя среду Flow, составить ее из программных элементов, которые организуют асинхронное взаимодействие автоматически.

Интеграция

  • Как AWS Step Functions работает с другими сервисами AWS?

    AWS Step Functions работает с рядом других сервисов AWS, включая AWS CloudFormation, AWS Lambda, Amazon EC2, Amazon EC2 Container Service (ECS), Amazon API Gateway, Amazon CloudWatch, AWS CloudTrail и Amazon EC2 Auto Scaling. Вот отдельные примеры того, что можно делать, используя различные сервисы AWS:

    • запускать сопутствующие ресурсы, необходимые для конечных автоматов и действий AWS Step Functions, с помощью сервиса AWS CloudFormation;
    • реализовывать задачи с помощью функций Lambda или программ, работающих на EC2 либо в контейнерах ECS;
    • связывать API сервиса Step Functions с методами API сервиса API Gateway;
    • на основании метрик CloudWatch масштабировать рабочую группу инстансов EC2, выполняющих действия AWS Step Functions.
  • Как AWS Step Functions работает с AWS Lambda?

    Функции AWS Lambda можно использовать для выполнения задач в конечном автомате. AWS Step Functions передает входные данные указанной функции Lambda и ожидает результата. AWS Lambda позволяет создавать задачи на любом поддерживаемом языке без выделения серверов и управления ими. Подробнее об использовании Step Functions с Lambda см. в документации по Step Functions.

  • Как AWS Step Functions работает с Amazon EC2 и другими вычислительными ресурсами?

    Все работы в конечном автомате выполняются в виде задач. Задачей может быть действие, включающее в себя любой код на любом языке. Действия могут выполняться на Amazon EC2, Amazon ECS, мобильных устройствах – по сути, на любом компьютере, который может работать с API сервиса AWS Step Functions. С помощью вызовов API каждое из действий выполняет длинный опрос Step Functions для получения задач и входных данных, выполнения работы и возврата результата.

  • Как AWS Step Functions работает с сервисом Amazon API Gateway?

    За несколько щелчков мышью в Консоли управления AWS можно связать API сервиса Step Functions с методами API сервиса Amazon API Gateway, и тогда при отправке HTTPS­запроса заданному методу API сервис API Gateway вызовет соответствующие действия API сервиса Step Functions. С помощью API сервиса Amazon API Gateway можно запускать конечные автоматы Step Functions, координирующие работу компонентов распределенного серверного приложения. В шаги приложения можно интегрировать задачи, предусматривающие участие пользователя, например запросы подтверждения и ответы на них. Кроме того, можно выполнять бессерверные асинхронные вызовы API сервисов, используемых приложением.

  • Как AWS Step Functions работает с сервисом Amazon CloudWatch?

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

    • вести мониторинг метрик рабочего процесса Step Functions;
    • запускать рабочие процессы Step Functions в ответ на события CloudWatch;
    • генерировать предупреждения, когда метрики сервиса Step Functions переходят граничные значения;
    • планировать выполнение рабочих процессов Step Functions с интервалом минимальной длительностью в одну минуту, используя события CloudWatch.

Безопасность

Начало работы с AWS Step Functions

Перейдите на страницу начала работы
Готовы начать работу?
Вход в консоль AWS Step Functions
Есть вопросы?
Свяжитесь с нами