Что такое шаблоны Saga в AWS?

Cto Takoe Sablony Saga V Aws



Приложения мигрируют в сторону распределенных архитектур и микросервисов. Это вызывает проблемы в обслуживании данных и управлении сложными транзакциями. Паттерны Saga предлагают эффективное решение. Amazon Web Services (AWS) предоставляет множество инструментов и сервисов, упрощающих внедрение шаблонов Saga. Он обеспечивает беспрепятственное управление транзакциями в распределенных приложениях.

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







Что такое шаблоны Saga в AWS?

Шаблоны Saga — это метод проектирования архитектур микросервисов, помогающий распределять транзакции между другими сервисами, которые взаимодействуют для создания бизнес-процессов. Выполнение одной транзакции в нескольких микросервисах может вызвать некоторые трудности, например проблемы с согласованностью данных и системный сбой.



Шаблон Saga работает, разбивая распределенные транзакции на более мелкие транзакции, известные как «Шаги саги» . Каждый «Шаг саги» представляет одну операцию, связанную с микросервисом. Если один или несколько «Шаги саги» не удается, немедленно предпринимаются необходимые действия для восстановления состояния приложения. Обратитесь к изображению ниже, чтобы понять работу шаблона саги:







Давайте узнаем о его ключевых компонентах:

Каковы компоненты шаблонов Saga в AWS?

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



  • Сага Шаг
  • Сага Оркестратор
  • Компенсация

Кратко обсудим эти компоненты.

Сага Шаг

Шаги Saga — это операции или задачи микросервиса, выполняемые как часть распределенных транзакций, которые не имеют отрицательных побочных эффектов. Они повторяются несколько раз, и при повторном выполнении не возникает никаких побочных эффектов.

Сага Оркестратор

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

Компенсация

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

Это были основные компоненты шаблона саги. Давайте обсудим сервисы AWS, которые поддерживают шаблоны саги.

Что представляют собой шаблоны Saga Supported Services в AWS?

Это услуги, предлагаемые Amazon, которые следуют шаблонам саги:

  • Пошаговые функции AWS
  • АВС Лямбда
  • Amazon DynamoDB
  • Amazon SNS и SQS
  • Шлюз API Amazon
  • CDK AWS
  • АМС СЭМ

Пошаговые функции AWS

Amazon Web Services Step Functions — это полностью управляемый сервис, предназначенный для облегчения рабочих процессов и управления микросервисами за счет предоставления разработчикам конечных автоматов, представляющих сложные конечные автоматы (шаблоны саги). Разработчики могут проектировать распределенные транзакции, используя пошаговые функции и эффективно их организуя.

АВС Лямбда

Бессерверный компьютерный сервис Lambda от Amazon Web Services позволяет разработчикам запускать код без непосредственного управления серверами. Это делает возможными шаблоны саги, создавая функции Lambda, представляющие каждый шаг на корневом уровне. Разработчики, использующие функции Lambda для представления шагов, могут эффективно использовать их при представлении отдельных шагов саги с помощью Lambdas.

Amazon DynamoDB

Amazon DynamoDB — это полностью управляемая служба базы данных NoSQL от AWS. Он предлагает надежные варианты хранения данных. Оркестраторы Saga могут использовать DynamoDB для отслеживания распределенных транзакций по мере их выполнения.

Amazon SNS и SQS

Для создания управляемой событиями связи между микросервисами Amazon Simple Notification Service (SNS) и Simple Queue Service (SQS) объединяются. Шаги Saga используют эти службы для публикации сообщений в другие микрослужбы после выполнения определенных операций. Затем эти службы уведомляют другие микрослужбы о состоянии завершения и обновлениях состояния.

Шлюз API Amazon

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

CDK AWS

AWS Cloud Development Kit (CDK) — это платформа и инструмент для создания и развертывания пользовательских облачных решений. Это сервис с открытым исходным кодом. С помощью этого инструмента можно развертывать приложения, основанные на архитектуре и дизайне шаблонов саги.

АМС СЭМ

Модель бессерверных приложений AWS используется для создания бессерверных приложений. Этот фреймворк также имеет открытый исходный код. Любое приложение, использующее шаблон саги, можно создать без предоставления серверов с помощью AWS SAM.

Были сервисы AWS, поддерживающие шаблоны саги. Давайте обсудим преимущества, которые предлагают шаблоны саги.

Каковы преимущества шаблонов Saga в AWS?

Некоторые из преимуществ, которые предоставляют шаблоны саги, перечислены ниже:

  • Распределенное управление транзакциями
  • Согласованность данных
  • Отказоустойчивость
  • Масштабируемость
  • Давайте подробно обсудим преимущества.

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

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

    Согласованность данных

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

    Отказоустойчивость

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

    Масштабируемость

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

    Это было все о шаблонах саги, их компонентах и ​​использовании в сервисах AWS.

    Заключение

    Шаблоны Saga обеспечивают эффективный подход к обработке распределенных транзакций в микросервисных архитектурах. AWS Step Functions, Lambda, DynamoDB, SNS и SQS — это лишь несколько сервисов AWS, поддерживающих этот шаблон. В этой статье подробно объясняется шаблон саги и его работа.