รูปแบบ Saga ใน AWS คืออะไร

Rup Baeb Saga Ni Aws Khux Xari



แอปพลิเคชันกำลังย้ายไปยังสถาปัตยกรรมแบบกระจายและไมโครเซอร์วิส มันทำให้เกิดปัญหาในการรักษาข้อมูลและการจัดการธุรกรรมที่ซับซ้อน รูปแบบ Saga นำเสนอวิธีแก้ปัญหาที่มีประสิทธิภาพ Amazon Web Services (AWS) มีเครื่องมือและบริการมากมายที่ทำให้การใช้รูปแบบ Saga เป็นเรื่องง่าย ช่วยให้มั่นใจได้ถึงการจัดการธุรกรรมที่ราบรื่นผ่านแอปพลิเคชันแบบกระจาย

บทความนี้จะอธิบายว่ารูปแบบเทพนิยายคืออะไร ส่วนประกอบ บริการ AWS ที่รองรับ และประโยชน์ที่ได้รับ







รูปแบบ Saga ใน AWS คืออะไร

รูปแบบ Saga เป็นเทคนิคการออกแบบในสถาปัตยกรรมไมโครเซอร์วิสเพื่อช่วยกระจายธุรกรรมในบริการอื่นๆ ที่โต้ตอบกันเพื่อสร้างกระบวนการทางธุรกิจ การดำเนินธุรกรรมเดียวในไมโครเซอร์วิสหลายตัวอาจทำให้เกิดปัญหาบางอย่าง เช่น ปัญหาความสอดคล้องของข้อมูลและความล้มเหลวของระบบ



รูปแบบ Saga ทำงานโดยแบ่งธุรกรรมแบบกระจายเป็นธุรกรรมขนาดเล็กที่เรียกว่า “ก้าวย่างแห่งซากะ” . แต่ละ 'ก้าวแห่งซากะ' แสดงถึงการดำเนินการอย่างหนึ่งที่เกี่ยวข้องกับไมโครเซอร์วิส ถ้าอย่างใดอย่างหนึ่งหรือมากกว่านั้น “ก้าวย่างแห่งซากะ” ล้มเหลว การดำเนินการที่จำเป็นจะดำเนินการทันทีเพื่อกู้คืนสถานะแอปพลิเคชัน ดูภาพด้านล่างเพื่อทำความเข้าใจการทำงานของรูปแบบ saga:







ให้เราเรียนรู้เกี่ยวกับส่วนประกอบที่สำคัญ:

ส่วนประกอบของรูปแบบ Saga ใน AWS คืออะไร

โซลูชันไมโครเซอร์วิสที่สมบูรณ์นั้นต้องการบริการหลายอย่างในสถาปัตยกรรมแบบกระจาย รูปแบบเทพนิยายมีองค์ประกอบหลักสองสามอย่าง เช่น:



  • ขั้นตอน Saga
  • ซากะออร์เคสตรา
  • ค่าตอบแทน

ให้เราพูดถึงส่วนประกอบเหล่านี้โดยสังเขป

ขั้นตอน Saga

ขั้นตอน Saga คือการดำเนินงานไมโครเซอร์วิสหรืองานที่ดำเนินการโดยเป็นส่วนหนึ่งของธุรกรรมแบบกระจายที่ไม่มีผลข้างเคียงเชิงลบ มีการทำซ้ำหลายครั้งและไม่มีผลข้างเคียงเกิดขึ้นจากการดำเนินการซ้ำ

ซากะออร์เคสตรา

ความรับผิดชอบหลักของนักแต่งเพลงเกี่ยวกับนิยายเกี่ยวกับนิยายคือการจัดการและติดตามแต่ละขั้นตอนในการทำให้นิยายเรื่องนี้สำเร็จลุล่วง จะเริ่มทำธุรกรรมแบบกระจายเมื่อดำเนินการตามขั้นตอนที่เหมาะสม นอกจากนี้ยังมีการชดเชยหากขั้นตอนใดล้มเหลว

ค่าตอบแทน

เมื่อพบข้อผิดพลาดระหว่างกระบวนการ Saga ผู้เรียบเรียงจะดำเนินการอย่างรวดเร็วและเด็ดขาดเพื่อเปลี่ยนกลับการแก้ไขที่แนะนำโดยขั้นตอนก่อนหน้า สิ่งนี้ทำให้มั่นใจได้ว่าระบบจะรักษาความสงบเรียบร้อยแม้ในกรณีที่เกิดข้อผิดพลาด

สิ่งเหล่านี้เป็นองค์ประกอบหลักของรูปแบบนิยายเกี่ยวกับวีรชน ให้เราหารือเกี่ยวกับบริการ AWS ที่รองรับรูปแบบเทพนิยาย

รูปแบบ Saga ของบริการที่สนับสนุนใน AWS คืออะไร

นี่คือบริการที่นำเสนอโดย Amazon ซึ่งเป็นไปตามรูปแบบเทพนิยาย:

  • ฟังก์ชันขั้นตอนของ AWS
  • AWS แลมบ์ดา
  • Amazon DynamoDB
  • Amazon SNS และ SQS
  • อเมซอน API เกตเวย์
  • AWS CDK
  • AWS SAM

ฟังก์ชันขั้นตอนของ AWS

Amazon Web Services Step Functions เป็นบริการที่มีการจัดการเต็มรูปแบบซึ่งออกแบบมาเพื่ออำนวยความสะดวกในเวิร์กโฟลว์และการจัดการไมโครเซอร์วิสโดยการจัดหาเครื่องสถานะที่เป็นตัวแทนของเครื่องสถานะที่ซับซ้อน (รูปแบบเทพนิยาย) ให้กับนักพัฒนา นักพัฒนาสามารถออกแบบธุรกรรมแบบกระจายโดยใช้ Step Functions ในขณะที่จัดการได้อย่างมีประสิทธิภาพ

AWS แลมบ์ดา

บริการคอมพิวเตอร์แบบไร้เซิร์ฟเวอร์ Lambda ของ Amazon Web Services ช่วยให้นักพัฒนาเรียกใช้โค้ดโดยไม่ต้องจัดการเซิร์ฟเวอร์โดยตรง ทำให้รูปแบบเทพนิยายเป็นไปได้ด้วยการสร้างฟังก์ชันแลมบ์ดาที่แสดงแต่ละขั้นตอนที่ระดับราก นักพัฒนาซอฟต์แวร์ที่ใช้ฟังก์ชัน Lambda ในการแสดงขั้นตอนสามารถใช้ฟังก์ชันนี้ได้อย่างมีประสิทธิภาพเมื่อแสดงขั้นตอนต่างๆ ของตำนานผ่าน Lambda

Amazon DynamoDB

Amazon DynamoDB เป็นบริการฐานข้อมูล NoSQL โดย AWS ที่ได้รับการจัดการเต็มรูปแบบ มีตัวเลือกการจัดเก็บข้อมูลที่เชื่อถือได้ นักจัดรายการ Saga สามารถใช้ DynamoDB เพื่อติดตามธุรกรรมที่กระจายไปตามความคืบหน้า

Amazon SNS และ SQS

ในการสร้างการสื่อสารตามเหตุการณ์ระหว่างไมโครเซอร์วิส Amazon Simple Notification Service (SNS) และ Simple Queue Service (SQS) จะรวมกัน ขั้นตอน Saga ใช้บริการเหล่านี้เพื่อเผยแพร่ข้อความไปยังไมโครเซอร์วิสอื่นๆ หลังจากดำเนินการบางอย่าง จากนั้นบริการเหล่านี้จะแจ้งให้ไมโครเซอร์วิสอื่นๆ ทราบเกี่ยวกับสถานะการเสร็จสิ้นและการอัปเดตสถานะ

อเมซอน API เกตเวย์

Amazon API Gateway เป็นบริการคลาวด์โดย Amazon เพื่อสร้าง เผยแพร่ และจัดการ API สามารถปรับขนาด API เหล่านี้ให้อยู่ในระดับที่ต้องการได้ บริการนี้เชื่อมต่อผู้ใช้กับ AWS Lambda Lambda เชื่อมต่อเพิ่มเติมกับฟังก์ชันขั้นตอนที่เป็นไปตามรูปแบบเทพนิยาย

AWS CDK

AWS Cloud Development Kit (CDK) คือเฟรมเวิร์กและเครื่องมือสำหรับสร้างและปรับใช้โซลูชันระบบคลาวด์แบบกำหนดเอง เป็นบริการโอเพ่นซอร์ส แอปพลิเคชันที่สร้างขึ้นจากสถาปัตยกรรมและการออกแบบรูปแบบ saga สามารถปรับใช้โดยใช้เครื่องมือนี้

AWS SAM

โมเดลแอปพลิเคชันแบบไร้เซิร์ฟเวอร์ของ AWS ใช้เพื่อสร้างแอปพลิเคชันแบบไร้เซิร์ฟเวอร์ เฟรมเวิร์กนี้ยังเป็นโอเพ่นซอร์สอีกด้วย สามารถสร้างแอปพลิเคชันใดๆ ที่ใช้รูปแบบ saga ได้โดยไม่ต้องมีเซิร์ฟเวอร์โดยใช้ AWS SAM

มีบริการ AWS ที่รองรับรูปแบบเทพนิยาย เรามาพูดถึงประโยชน์ที่รูปแบบนิยายเกี่ยวกับวีรชนมีให้กัน

ประโยชน์ของรูปแบบ Saga ใน AWS คืออะไร

ประโยชน์บางประการของรูปแบบเทพนิยายมีดังต่อไปนี้:

  • การจัดการธุรกรรมแบบกระจาย
  • ความสอดคล้องของข้อมูล
  • ความทนทานต่อความผิดพลาด
  • ความสามารถในการปรับขนาด
  • ให้เราหารือเกี่ยวกับผลประโยชน์ในรายละเอียด

    การจัดการธุรกรรมแบบกระจาย

    รูปแบบ Saga เป็นโซลูชันที่เรียบง่ายแต่มีประสิทธิภาพสำหรับการจัดการธุรกรรมแบบกระจายในสถาปัตยกรรมไมโครเซอร์วิส การแบ่งธุรกรรมออกเป็นขั้นตอนที่จัดการได้จะช่วยให้ขั้นตอนการทำงานที่ซับซ้อนคล่องตัวขึ้น

    ความสอดคล้องของข้อมูล

    การดำเนินการชดเชยได้รับการออกแบบมาเพื่อรักษาความสอดคล้องของข้อมูลแม้ในขณะที่เผชิญกับความล้มเหลวของระบบบางส่วนและธุรกรรมบางส่วน นักพัฒนาสามารถเข้าถึงสถานะสมดุลได้โดยไม่คำนึงถึงผลลัพธ์ของการทำธุรกรรมในระบบแบบกระจายโดยใช้รูปแบบเทพนิยาย

    ความทนทานต่อความผิดพลาด

    รูปแบบ Saga ให้สถาปัตยกรรมไมโครเซอร์วิสที่มีความทนทานต่อข้อผิดพลาดที่ดีขึ้นโดยการจัดการความล้มเหลวในแต่ละระดับขั้นตอนและชดเชยข้อผิดพลาด ส่งผลให้ระบบที่ใช้งานสามารถกู้คืนได้อย่างรวดเร็วจากความล้มเหลวในการทำธุรกรรมบางส่วน โดยไม่ส่งผลกระทบต่อประสิทธิภาพโดยรวมของแอปพลิเคชัน

    ความสามารถในการปรับขนาด

    รูปแบบ Saga นำเสนอความสามารถในการปรับขนาดในแนวนอน ซึ่งช่วยให้ระบบสามารถจัดการกับภาระการทำธุรกรรมที่เพิ่มขึ้นโดยการเพิ่มอินสแตนซ์ไมโครเซอร์วิสมากขึ้น ความยืดหยุ่นดังกล่าวเป็นสิ่งล้ำค่าสำหรับแอปสมัยใหม่ที่ต้องจัดการกับปริมาณงานที่ผันผวนอย่างมีประสิทธิภาพ

    ทั้งหมดนี้เกี่ยวกับรูปแบบเทพนิยายและส่วนประกอบและการใช้ในบริการของ AWS

    บทสรุป

    รูปแบบ Saga เป็นแนวทางที่มีประสิทธิภาพในการจัดการธุรกรรมแบบกระจายภายในสถาปัตยกรรมไมโครเซอร์วิส AWS Step Functions, Lambda, DynamoDB, SNS และ SQS เป็นบริการของ AWS เพียงไม่กี่รายการที่รองรับรูปแบบนี้ บทความนี้ได้อธิบายรูปแบบเทพนิยายและการทำงานของมันอย่างครอบคลุม