Ano ang Saga Pattern sa AWS?

Ano Ang Saga Pattern Sa Aws



Lumilipat ang mga application patungo sa mga distributed architecture at microservice. Nagdudulot ito ng problema sa pagpapanatili ng data at pamamahala ng mga kumplikadong transaksyon. Nag-aalok ang mga pattern ng Saga ng isang epektibong solusyon. Nagbibigay ang Amazon Web Services (AWS) ng maraming tool at serbisyo na ginagawang simple ang pagpapatupad ng mga pattern ng Saga. Tinitiyak nito ang tuluy-tuloy na pamamahala ng transaksyon sa mga ipinamamahaging aplikasyon.

Ipapaliwanag ng artikulong ito kung ano ang mga pattern ng saga, mga bahagi ng mga ito, mga sinusuportahang serbisyo ng AWS, at mga benepisyo ng mga ito.







Ano ang Saga Pattern sa AWS?

Ang mga pattern ng Saga ay isang diskarte sa disenyo sa mga arkitektura ng microservices upang makatulong na ipamahagi ang mga transaksyon sa iba pang mga serbisyo na nakikipag-ugnayan upang lumikha ng mga proseso ng negosyo. Ang pagsasagawa ng isang transaksyon sa maraming microservice ay maaaring magdulot ng ilang kahirapan gaya ng mga isyu sa pagkakapare-pareho ng data at pagkabigo ng system.



Gumagana ang pattern ng Saga sa pamamagitan ng paghahati ng mga ipinamamahaging transaksyon sa mas maliliit na transaksyon na kilala bilang 'Mga Hakbang sa Saga' . Ang bawat isa 'Saga Step' kumakatawan sa isang operasyong nauugnay sa microservice. Kung isa o higit pa 'Mga Hakbang sa Saga' mabigo, ang mga kinakailangang aksyon ay isinasagawa kaagad upang maibalik ang estado ng aplikasyon. Sumangguni sa larawan sa ibaba upang maunawaan ang paggana ng saga pattern:







Alamin natin ang tungkol sa mga pangunahing bahagi nito:

Ano ang Mga Bahagi ng Saga Pattern sa AWS?

Ang isang kumpletong solusyon sa microservice ay nangangailangan ng ilang mga serbisyo sa isang distributed architecture. Ang isang saga pattern ay may ilang pangunahing bahagi, gaya ng:



  • Hakbang ng Saga
  • Saga Orchestrator
  • Kabayaran

Talakayin natin ang mga sangkap na ito nang maikli.

Hakbang ng Saga

Ang mga hakbang sa Saga ay mga operasyon ng microservice o mga gawain na ginagawa bilang bahagi ng mga ipinamamahaging transaksyon na walang negatibong epekto. Ang mga ito ay paulit-ulit nang maraming beses at walang epekto na nangyayari sa pamamagitan ng paulit-ulit na pagpapatupad.

Saga Orchestrator

Ang pangunahing responsibilidad ng isang saga orchestrator ay matagumpay na pamahalaan at subaybayan ang bawat hakbang sa pagkumpleto ng isang saga. Nagsisimula ito ng mga ipinamamahaging transaksyon kapag ginawa ang mga naaangkop na hakbang. Nagbibigay din ito ng kabayaran kung ang anumang hakbang ay nabigo.

Kabayaran

Kapag may na-encounter na error sa proseso ng saga, ang orkestra nito ay nagsasagawa ng mabilis at mapagpasyang mga aksyon upang ibalik ang mga pagbabagong ipinakilala ng mga nakaraang hakbang. Tinitiyak nito na ang sistema ay nagpapanatili ng kaayusan kahit na may mga pagkakamali.

Ito ang mga pangunahing bahagi ng isang pattern ng alamat. Talakayin natin ang mga serbisyo ng AWS na sumusuporta sa mga pattern ng saga.

Ano ang Mga Supported Services Saga Pattern sa AWS?

Ito ang mga serbisyong inaalok ng Amazon na sumusunod sa mga pattern ng saga:

  • Mga Pag-andar ng AWS Step
  • AWS Lambda
  • Amazon DynamoDB
  • Amazon SNS at SQS
  • Amazon API Gateway
  • AWS CDK
  • AWS SAM

Mga Pag-andar ng AWS Step

Ang Amazon Web Services Step Functions ay isang ganap na pinamamahalaang serbisyo na idinisenyo upang mapadali ang mga daloy ng trabaho at pamamahala ng microservice sa pamamagitan ng pagbibigay sa mga developer ng mga state machine na kumakatawan sa mga kumplikadong state machine (mga pattern ng saga). Maaaring magdisenyo ang mga developer ng mga ipinamamahaging transaksyon sa pamamagitan ng paggamit ng Mga Step Function habang epektibong inaayos ang mga ito.

AWS Lambda

Ang Amazon Web Services' Lambda serverless computer service ay nagbibigay-daan sa mga developer na magpatakbo ng code nang hindi direktang pinamamahalaan ang mga server. Ginagawa nitong posible ang mga pattern ng saga sa pamamagitan ng paglikha ng mga function ng Lambda na kumakatawan sa bawat hakbang sa antas ng ugat. Maaaring gamitin ito ng mga developer na gumagamit ng mga function ng Lambda para sa kumakatawan sa mga hakbang nang epektibo kapag kumakatawan sa mga indibidwal na hakbang sa saga sa pamamagitan ng Lambdas.

Amazon DynamoDB

Ang Amazon DynamoDB ay isang serbisyo ng database ng NoSQL ng AWS na ganap na pinamamahalaan. Nag-aalok ito ng mga mapagkakatiwalaang opsyon sa pag-iimbak ng data. Maaaring gamitin ng mga Saga orchestrator ang DynamoDB para sa pagsubaybay sa mga ipinamamahaging transaksyon habang sila ay sumusulong.

Amazon SNS at SQS

Upang lumikha ng komunikasyon na hinimok ng kaganapan sa pagitan ng mga microservice Amazon Simple Notification Service (SNS) at Simple Queue Service (SQS) ay pinagsama. Ginagamit ng mga hakbang ng Saga ang mga serbisyong ito upang mag-publish ng mga mensahe sa iba pang mga microservice pagkatapos magsagawa ng mga partikular na operasyon. Ang mga serbisyong ito ay nag-aabiso sa iba pang mga microservice tungkol sa katayuan ng pagkumpleto at mga update sa katayuan.

Amazon API Gateway

Ang Amazon API Gateway ay isang cloud service ng Amazon para gumawa, mag-publish at mamahala ng mga API. Ang mga API na ito ay maaaring i-scale sa anumang nais na antas. Ikinokonekta ng serbisyong ito ang user sa AWS Lambda. Ang Lambda ay higit na konektado sa mga step function na sumusunod sa mga pattern ng saga.

AWS CDK

Ang AWS Cloud Development Kit (CDK) ay isang framework at isang tool para gumawa at mag-deploy ng mga custom na solusyon sa cloud. Ito ay isang open-source na serbisyo. Ang mga application na binuo sa arkitektura at disenyo ng mga pattern ng saga ay maaaring i-deploy gamit ang tool na ito.

AWS SAM

Ang modelo ng AWS Serverless Application ay ginagamit upang lumikha ng mga application na walang server. Ang framework na ito ay open source din. Ang anumang application na gumagamit ng saga pattern ay maaaring malikha nang walang probisyon ng mga server gamit ang AWS SAM.

Mayroong mga serbisyo ng AWS na sumusuporta sa mga pattern ng saga. Talakayin natin ang mga benepisyo na inaalok ng mga pattern ng saga.

Ano ang mga Benepisyo ng Saga Pattern sa AWS?

Ang ilan sa mga benepisyo na ibinibigay ng mga pattern ng saga ay nasa ibaba:

  • Ibinahagi sa Pamamahala ng Transaksyon
  • Pagkakatugma ng Data
  • Fault Tolerance
  • Scalability
  • Talakayin natin nang detalyado ang mga benepisyo.

    Ibinahagi sa Pamamahala ng Transaksyon

    Ang mga pattern ng Saga ay nagbibigay ng simple ngunit mahusay na solusyon para sa paghawak ng mga ipinamamahaging transaksyon sa mga arkitektura ng microservice. Sa pamamagitan ng paghahati-hati ng mga transaksyon sa mga mapapamahalaang hakbang, nakakatulong ang mga ito sa pag-streamline ng mga kumplikadong daloy ng trabaho.

    Pagkakatugma ng Data

    Idinisenyo ang mga pagkilos na nagbibigay-kabayaran upang mapanatili ang pagkakapare-pareho ng data kahit na sa harap ng mga bahagyang pagkabigo ng system at bahagyang mga transaksyon. Maaaring maabot ng mga developer ang isang equilibrium state anuman ang mga resulta ng transaksyon sa mga distributed system gamit ang saga patterns.

    Fault Tolerance

    Ang mga pattern ng Saga ay nagbibigay ng mga microservice architecture na may pinahusay na fault tolerance sa pamamagitan ng paghawak ng mga pagkabigo sa bawat antas ng hakbang at pag-compensate sa mga error. Bilang resulta, ang mga system na gumagamit ng mga ito ay mabilis na makakabawi mula sa mga bahagyang pagkabigo sa transaksyon nang hindi naaapektuhan ang pangkalahatang pagganap ng application.

    Scalability

    Ang mga pattern ng Saga ay nag-aalok ng pahalang na scalability, na nagbibigay-daan sa mga system na pangasiwaan ang mas mataas na transactional load sa pamamagitan ng pagdaragdag ng higit pang mga instance ng microservice. Ang ganitong flexibility ay napakahalaga para sa mga modernong app na dapat epektibong harapin ang pabagu-bagong mga workload.

    Ito ay tungkol sa mga pattern ng saga at ang kanilang mga bahagi at paggamit sa mga serbisyo ng AWS.

    Konklusyon

    Ang mga pattern ng Saga ay nagbibigay ng isang epektibong diskarte para sa paghawak ng mga ipinamamahaging transaksyon sa loob ng mga arkitektura ng microservice. Ang AWS Step Functions, Lambda, DynamoDB, SNS, at SQS ay ilan lamang sa mga serbisyo ng AWS na sumusuporta sa pattern na ito. Ang artikulong ito ay komprehensibong ipinaliwanag ang saga pattern at ang paggana nito.