ทำไมต้อง SWF

Amazon Simple Workflow Service (Amazon SWF) ช่วยให้นักพัฒนาสามารถสร้าง รัน และปรับขนาดงานในพื้นหลังซึ่งมีขั้นตอนที่ดำเนินควบคู่กันหรือตามลำดับ อาจมองได้ว่า Amazon SWF เป็นหน่วยติดตามสถานะและหน่วยประสานงานซึ่งมีการจัดกาเต็มรูปแบบในระบบคลาวด์

หากขั้นตอนในแอปของคุณกินเวลานานกว่า 500 มิลลิวินาทีกว่าจะเสร็จ ทำให้คุณจำเป็นต้องติดตามสถานะการประมวลผล และจำเป็นต้องกู้คืนหรือลองใหม่หากงานล้มเหลว Amazon SWF สามารถช่วยคุณได้ในเรื่องนี้

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

ประโยชน์

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

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

Amazon SWF แทนที่โซลูชันโฟลว์กระบวนการแบบกำหนดโค้ดเฉพาะและซอฟต์แวร์กระบวนการอัตโนมัติซึ่งมีความซับซ้อน ด้วยบริการเว็บโฟลว์กระบวนการบนระบบคลาวด์ที่มีการจัดการอย่างเต็มรูปแบบ ซึ่งช่วยขจัดความจำเป็นที่ Developer จะต้องจัดการเรื่องระบบขั้นตอนโครงสร้างพื้นฐานของการทำให้กระบวนการเป็นอัตโนมัติออกไปได้ ดังนั้น จึงสามารถมุ่งความสนใจไปที่ฟังก์ชันการใช้งานแอปพลิเคชันที่มีลักษณะเฉพาะตัว

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

Amazon SWF ช่วยให้คุณเขียนส่วนประกอบและตรรกะในการทำงานประสานกันของแอปพลิเคชันเป็นภาษาโปรแกรมใด ๆ ก็ได้และสามารถรันในระบบคลาวด์หรือในองค์กรก็ได้

รายละเอียดผลิตภัณฑ์ Amazon SWF

การใช้ Amazon SWF เพื่อจัดการเวิร์กโฟลว์ภายในแอปพลิเคชันของคุณเป็นเรื่องง่าย

ฟังก์ชันการทำงานของ Amazon SWF

Amazon SWF ทำหน้าที่เป็นฮับการประสานงานสำหรับส่วนประกอบต่าง ๆ ทั้งหมดของแอปพลิเคชันของคุณ:

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

เพื่อใช้ Amazon SWF คุณเพียงแค่:

  • ใช้คอนโซลการจัดการของ AWS หรือ Amazon SWF API เพื่อระบุชื่อของเวิร์กโฟลว์
  • ใช้ Amazon SWF API เพื่อ “เริ่ม” เวิร์กโฟลว์ใหม่ ซึ่งส่งผลให้ลำดับงานเวิร์กโฟลว์เฉพาะที่เรียกว่า “การดำเนินการเวิร์กโฟลว์” ถูกกระตุ้นให้ดำเนินการ
  • ใช้ Amazon SWF API จากเครื่องของโปรแกรมทำงานของคุณ (“โปรแกรมทำงาน” เป็นส่วนประกอบของแอปพลิเคชันของคุณที่จัดการกับงานเฉพาะ) เพื่อกำหนดลำดับงาน จัดการขั้นตอนตามเงื่อนไข และดำเนินการลูปสำหรับการดำเนินการเวิร์กโฟลว์
  • ใช้ Amazon SWF API จากเครื่องของโปรแกรมทำงานของคุณเพื่อขอและดำเนินการงานเวิร์กโฟลว์ในระบบคลาวด์หรือในองค์กร
  • ตรวจสอบสถานะและความคืบหน้าของการดำเนินการเวิร์กโฟลว์และงานที่เกี่ยวข้องในคอนโซลการจัดการของ AWS

คำแนะนำตัวอย่างใน คอนโซลการจัดการของ AWS จะนำคุณผ่านขั้นตอนในการลงทะเบียนและเรียกใช้แอปพลิเคชันตัวอย่าง โปรดดูเอกสารประกอบสำหรับข้อมูลเพิ่มเติม

คำอธิบายอย่างละเอียด

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

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

เข้าสู่ระบบคอนโซลการจัดการของ AWS เพื่อเริ่มการดำเนินการเวิร์กโฟลว์ของ Amazon SWF หรือคุณสามารถเริ่มดำเนินการเวิร์กโฟลว์ผ่าน Amazon SWF API ของเรา Amazon SWF ใช้อินเทอร์เฟซบริการในรูปแบบเว็บที่เรียบง่ายซึ่งใช้งานง่ายและยืดหยุ่นสูง:

  • StartWorkflowExecution: เริ่มลำดับของงานเวิร์กโฟลว์และทำให้งานแรกพร้อมใช้งานกับโฮสต์แอปพลิเคชันใดตัวหนึ่ง
  • DescribeWorkflowExecution: ให้สถานะของการดำเนินการและงานเวิร์กโฟลว์ของคุณ
  • PollForActivityTask: โฮสต์แอปพลิเคชันของคุณ (ในระบบคลาวด์หรือในองค์กร) ขอและดำเนินการงานเวิร์กโฟลว์ในลูปต่อเนื่อง
  • RespondActivityTaskCompleted: โฮสต์แอปพลิเคชันที่บอกกับ Amazon SWF ว่าทำงานเสร็จเรียบร้อยแล้ว จากนั้น Amazon SWF จะดำเนินการเวิร์กโฟลว์ต่อไปโดยทำให้งานถัดไปพร้อมใช้งานกับโฮสต์แอปพลิเคชัน
  • TerminateWorkflowExecution: หยุดการขับเคลื่อนการดำเนินการเวิร์กโฟลว์ที่เฉพาะเจาะจงไปขั้นตอนข้างหน้า Amazon SWF จะไม่มอบหมายงานใด ๆ ในการดำเนินการเวิร์กโฟลว์เฉพาะนี้ให้กับโฮสต์แอปพลิเคชัน

วัตถุประสงค์การใช้งานและข้อจำกัด

การใช้บริการนี้ของคุณเป็นไปตามข้อตกลงของลูกค้า Amazon Web Services

กรณีใช้งาน

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

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

การประมวลผลแค็ตตาล็อกผลิตภัณฑ์ขนาดใหญ่โดยใช้ Amazon Mechanical Turk แม้ว่าจะมีการตรวจสอบความถูกต้องของข้อมูลในแค็ตตาล็อกขนาดใหญ่ แต่ผลิตภัณฑ์ในแค็ตตาล็อกก็จะประมวลผลแบบกลุ่ม สามารถประมวลผลกลุ่มต่างๆ พร้อมกันได้ สำหรับแต่ละกลุ่ม ข้อมูลผลิตภัณฑ์จะดึงมาจากเซิร์ฟเวอร์ในศูนย์ข้อมูลและแปลงเป็นไฟล์ CSV (Comma Separated Values) ที่กำหนดให้ใช้โดย Requester User Interface (RUI) ของ Amazon Mechanical Turk จะอัปโหลด CSV เพื่อใส่ข้อมูลและรัน HIT (Human Intelligence Task) เมื่อรัน HIT เสร็จ ก็จะแปลงไฟล์ CSV ที่ได้มาแบบผันกลับเพื่อให้ได้ข้อมูลกลับมาเป็นรูปแบบเดิม จากนั้น ผลที่ได้ก็จะได้รับการประเมินและผู้ปฏิบัติงานของ Amazon Mechanical Turk ก็จะได้รับเงินสำหรับผลลัพธ์ที่ยอมรับได้ ผลที่ล้มเหลวจะถูกคัดออกและประมวลผลซ้ำ ในขณะที่ผลลัพธ์ของ HIT ที่ยอมรับได้จะนำมาใช้เพื่ออัปเดตแค็ตตาล็อก ในขณะที่ประมวลผลเป็นกลุ่ม ระบบจำเป็นต้องติดตามคุณภาพผู้ปฏิบัติงานของ Amazon Mechanical Turk และปรับการชำระเงินให้สอดคล้อง HIT ที่ล้มเหลวจะมีการจัดชุดใหม่อีกครั้งและส่งมาผ่านขั้นตอนนั้นอีกครั้ง

AWS Flow Framework

AWS Flow Framework เป็นคอลเลกชันของไลบรารีที่ใช้งานได้สะดวกสบายที่ทำให้สร้างแอปพลิเคชันได้เร็วและง่ายขึ้นด้วย Amazon Simple Workflow

วิธีทำงาน

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