แอปพลิเคชันกำลังย้ายไปยังสถาปัตยกรรมแบบกระจายและไมโครเซอร์วิส มันทำให้เกิดปัญหาในการรักษาข้อมูลและการจัดการธุรกรรมที่ซับซ้อน รูปแบบ 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 เพียงไม่กี่รายการที่รองรับรูปแบบนี้ บทความนี้ได้อธิบายรูปแบบเทพนิยายและการทำงานของมันอย่างครอบคลุม