Что такое рабочий процесс?
Рабочий процесс описывает, как люди выполняют работу от начала до конца. Рабочий процесс состоит из этапов и состояний процесса. Рабочие процессы могут быть представлены в виде серии этапов в контрольном списке или в виде диаграммы, которая визуализирует эти этапы.
Ниже приведен пример простого рабочего процесса поддержки.
- Клиент Николай отправляет запрос в службу поддержки.
- Открытая заявка поручена Александре, представителю службы поддержки.
- Александра получает назначенную заявку и просит Николая предоставить информацию. Во время ожидания ответа заявка находится на этапе рассмотрения.
- После того, как Николай предоставляет запрошенную информацию, Александра даст ответ с решением, а заявка переходит в состояние «выполнена».
- Николай получает ответ, а также ссылку на опрос, где он может оставить отзыв о своем запросе в службу поддержки. Он в восторге от быстрого ответа Александра и ставит высокие оценки в опросе. Заявка переходит в состояние «закрыта».
В этом рабочем процессе используются следующие шаги: «начать», «назначить», «разрешить» и «закрыть». Состояния: «открыта», «назначена», «в ожидании», «выполнена» и «закрыта». Шаги перемещают процесс из состояния в состояние по пути, пока рабочий процесс не завершится.
В чем преимущества использования рабочих процессов?
Рабочие процессы представляют собой наборы повторяемых шагов и задач, которые можно инициировать, планировать и отслеживать.
Можно визуализировать рабочие процессы для наблюдения, проверять правильность рабочего процесса и отслеживать операции в рабочем процессе.
С помощью рабочих процессов компании могут повысить уровень надежности распределенных приложений, не усложняя свой код. Можно автоматизировать, оптимизировать и масштабировать рабочие процессы на детальном уровне.
Что дают рабочие процессы для архитектуры приложений?
Сервис Workflows обеспечивает разделение процесса управления поэтапным выполнением вашего задания и выполнение действующих рабочих элементов, содержащих созданный вами функциональный код. С помощью этого сервиса вы можете управлять, поддерживать и масштабировать государственный механизм вашего приложения отдельно от основной бизнес-логики.
При изменении бизнес-требований вы сможете легко внести изменения в код приложения, без необходимости в его базовом обеспечении, распределении заданий и управлении процессами.
Как сервисы рабочих процессов улучшают архитектуру приложения?
Надежность
Разделение отслеживания состояния и обработки задач обеспечивает надежность облачной архитектуры. Используя сервисы рабочих процессов, вы можете отправлять задачи компонентам приложения, отслеживать их выполнение и узнавать о последнем состоянии системы.
Простота
Рабочие процессы заменяют сложность собственных решений с индивидуальным кодированием и кода автоматизации процессов.
Задания, которые управляют этапами обработки, могут долго выполняться, при этом могут возникать сбои, тайм-ауты, может потребоваться перезапуск. Они часто выполняются с различной пропускной способностью и задержками. Во всех этих случаях отслеживание и визуализация заданий является не только сложной, но и однообразной работой.
С помощью сервисов рабочих процессов разработчики могут избежать управления инфраструктурой автоматизации процессов. В результате они могут сосредоточить свою энергию на уникальной функциональности своего приложения.
Возможности масштабирования
Сервисы рабочих процессов разработаны для беспрепятственного масштабирования в зависимости от использования вашего приложения. При добавлении работы с процессами в приложение или при повышении их уровня сложности вы можете автоматизировать администрирование.
Гибкость
Разработчики могут использовать сервисы рабочих процессов для создания компонентов приложения и логики координирования на различных языках программирования. Затем разработчики могут сосредоточиться на дифференцированной логике приложения.
Каковы распространенные сценарии использования рабочего процесса?
Рабочие процессы могут помочь в решении любой вычислительной задачи или бизнес-процесса, который можно разделить на ряд шагов. Рабочие процессы упрощают управление заданиями с помощью взаимозависимостей. Некоторые примеры использования приведены ниже.
- Оркестрация приложений – координация слабо связанных микросервисов, каждый из которых работает в своем собственном процессе и независимо развертывается, посредством передачи событий. Объедините между собой бессерверные функции для создания веб-приложения с асинхронным этапом одобрения человеком. Дополнительные примеры использования см. в разделе Оркестрация микросервисов в Руководстве разработчика AWS Step Functions.
- Обработка данных: консолидация данных из множества данных в объединенные отчеты, уточнение и уменьшение больших наборов данных и перевод их в форматы, пригодные для использования, или координация многоэтапных рабочих процессов аналитики и машинного обучения. Дополнительные примеры использования см. в разделе Обработка данных в Руководстве разработчика AWS Step Functions.
- Автоматизация DevOps и ИТ: создание средств для непрерывной интеграции и непрерывного развертывания или создание приложений, управляемых по событиям, которые автоматически реагируют на изменения в инфраструктуре. Дополнительные примеры использования см. в разделе Автоматизация ИТ и безопасности в Руководстве разработчика AWS Step Functions.
- Интернет-коммерция: автоматизация критически важных бизнес-процессов, например процессов выполнения заказов и отслеживания запасов.
- Веб-приложения – внедрение надежных процессов регистрации и аутентификации пользователей, опционально интегрируя шаги аудита и повышенной безопасности.
- Машинное обучение – выполнение заданий извлечения, преобразования и загрузки (ETL) для создания, обучения и развертывания модели машинного обучения. Например, сбор и обработка данных изображений для обнаружения объектов в видеопотоке, добавления ограничивающих рамок или предоставления визуальной информации и информации метаданных для каталогизации данных. Дополнительные примеры использования см. в разделе Машинное обучение в Руководстве разработчика AWS Step Functions.
- Автоматизация безопасности – запланированный анализ или реагирование на инциденты безопасности, инициированные событиями управляемых ресурсов, с настраиваемыми рабочими процессами, которые запускают шаги аудита и уведомления в зависимости от бизнес-правил.
- Обработка мультимедиа – извлечение данных из PDF-документов или изображений для обработки. Разделение и перекодирование видео с помощью массивной параллелизации. Дополнительные примеры использования см. в разделе Обработка мультимедиа в сценариях использования пошаговых функций AWS.
Как создать рабочий процесс?
Сначала разработчики могут создавать собственные решения и код автоматизации процессов. Эти решения начинаются с простого, но со временем и развитием становятся сложными и более подверженными ошибкам. Для обновления бизнес-логики приходится прилагать больше усилий, а скорость изменений со временем понижается.
Вы можете избавиться от некоторых сложностей собственных решений, используя библиотеки для конкретных рабочих процессов. Однако настройка этих инструментов может усложнить процесс. Может быть по-прежнему сложно визуализировать шаги и состояния рабочего процесса.
Для повышения эффективности создания и мониторинга рабочих процессов требуются визуальные инструменты упорядочения состояний и шагов рабочего процесса. В этих инструментах предусмотрены правила бизнес-логики, которыми можно управлять и которые можно обновлять. Благодаря графическим инструментам можно повысить производительность разработчиков и улучшить наглядность рабочего процесса, а также снизить вероятность ошибок.
Практическое руководство по использованию визуального конструктора рабочих процессов Workflow Studio см. в разделе Как создать бессерверный рабочий процесс в Центре разработчиков AWS.
Каковы распространенные шаблоны рабочих процессов?
Используя рабочие процессы, вы можете сосредоточиться на определении взаимодействий компонентов, а не на написании программного обеспечения для взаимодействия.
Рабочие процессы могут оркестрировать как микросервисы, так и контейнеры. В числе распространенных шаблонов рабочих процессов входят цепочка микросервисов, асинхронные или синхронные ответы, взаимодействие с человеком, оркестровка и хореография контейнеров, ветвление и обработка ошибок.
Какие сервисы рабочих процессов предоставляет AWS?
AWS Step Functions – это малокодовый визуальный сервис рабочих процессов для оркестрации сервисов AWS, автоматизации бизнес-процессов и создания бессерверных приложений. Step Functions включает в себя Workflow Studio, визуальный конструктор рабочих процессов с редактором кода, благодаря которому необходимость в написании кода снижается до минимума. Этот инструмент автоматически генерирует ваши функции и конфигурацию на Amazon States Language, структурированном языке на основе JSON, используемом для определения конечных автоматов. Вы можете использовать язык Amazon States Language в консоли Step Functions или экспортировать и редактировать код на нем.
Управляемые рабочие процессы Amazon для Apache Airflow (Amazon MWAA) предоставляют те же возможности Apache Airflow с открытым исходным кодом, но в качестве полностью управляемого сервиса. Используйте Amazon MWAA для переноса существующих локальных решений в облако, чтобы сократить эксплуатационные расходы и развернуть их в нужном масштабе. Разработчики могут продолжать писать модели ориентированных ациклических графов (DAG) на Python, объявляя зависимости для задач и интегрируя их с другими сервисами AWS.
Сервис AWS Step Functions рекомендуется использовать при разработке любых новых приложений, так как он обеспечивает более продуктивный и гибкий подход к координации компонентов приложения с помощью наглядного представления рабочих процессов. Практическое руководство по использованию Step Functions Workflow Studio и Amazon States Language см. в разделе Как создать бессерверный рабочий процесс в Центре разработчиков AWS.
Рабочие процессы на базе AWS: дальнейшие шаги
Создавайте рабочие процессы с помощью более чем 200 сервисов AWS и 9000 действий API
Создание решений с использованием шлюза AWS в Консоли управления AWS.