Serverless Vs Microservices – สถาปัตยกรรมใดที่ธุรกิจควรเลือก?
เผยแพร่แล้ว: 2022-05-31สำหรับทุกธุรกิจ การใช้เทคโนโลยีเป็นหนึ่งในปัจจัยหลักที่ทำให้องค์กรแตกต่างจากคู่แข่ง ดังนั้นจึงมีความจำเป็นสำหรับองค์กรที่จะต้องอัพเกรดด้วยเทคโนโลยีใหม่
สิ่งสำคัญเท่าเทียมกันคือต้องแน่ใจว่าองค์กรพบความสมดุลระหว่างความยืดหยุ่นของเทคโนโลยีในอนาคตกับผลตอบแทนจากการลงทุนด้านเทคโนโลยีในปัจจุบัน การเตรียมการอย่างละเอียดและความรู้เกี่ยวกับความสมบูรณ์ที่เกี่ยวข้องในกระบวนการอัปเกรดควรได้รับการชั่งน้ำหนักโดยคำนึงถึงเรื่องนี้ด้วย
เทคโนโลยีก้าวหน้าไปอย่างรวดเร็ว และความต้องการแอปพลิเคชันที่สามารถปรับขนาดได้ง่ายและคล่องตัวเพียงพอที่จะทำงานได้ดีขึ้นด้วยการส่งมอบอย่างต่อเนื่อง ข้อกำหนดที่เปลี่ยนแปลงไปดังกล่าวได้ก่อให้เกิดเทคโนโลยี เช่น ไมโครเซอร์วิสและการประมวลผลแบบไร้เซิร์ฟเวอร์
มีการกล่าวถึงสถาปัตยกรรมสองแบบที่ก่อให้เกิดคำถามที่น่าสงสัย – สถาปัตยกรรมใดจะเหมาะกับความต้องการทางธุรกิจของเรา ทั้งแบบไร้เซิร์ฟเวอร์และไมโครเซอร์วิส บางครั้งสิ่งหนึ่งก็เหมาะสมกว่าอีกสิ่งหนึ่ง แม้ว่าเทคโนโลยีทั้งสองจะใช้แนวทางที่แตกต่างกัน แต่การรักษาความปลอดภัยยังคงมีความสำคัญสำหรับสถาปัตยกรรมทั้งสอง
เพื่อให้เข้าใจความแตกต่างระหว่างสองสิ่งนี้ สิ่งสำคัญคือต้องเข้าใจว่าสถาปัตยกรรมไร้เซิร์ฟเวอร์คืออะไรและสถาปัตยกรรมไมโครเซอร์วิสคืออะไร
ไมโครเซอร์วิส คืออะไร?
Microservice เป็นรูปแบบสถาปัตยกรรม ของการแบ่งแอปพลิเคชันออกเป็นแอปพลิเคชันหรือบริการที่มีขนาดเล็กลง จึงเป็นที่มาของชื่อ นี่คือสิ่งที่ตรงกันข้ามกับสถาปัตยกรรมเสาหินที่เอนทิตีเดียวมีฟังก์ชันทั้งหมด
เพื่อความเข้าใจที่ดีขึ้น ให้เรายกตัวอย่างของแอปพลิเคชันอีคอมเมิร์ซ ผู้ใช้ค้นหาสินค้า เพิ่มไปยังตะกร้าสินค้า และทำการสั่งซื้อ มีบริการหลายอย่างที่ทำงานอย่างอิสระและถูกนำมารวมกันผ่าน Application Programming Interface (API ) บริการต่างๆ เช่น ผลิตภัณฑ์ ตะกร้าสินค้า และการชำระเงินผ่านเกตเวย์การชำระเงินคือไมโครเซอร์วิส
มีหลายวิธีในการดำเนินการไมโครเซอร์วิส เพื่อให้ทำงานได้โดยอิสระ แต่ละไมโครเซอร์วิสมีองค์ประกอบพื้นฐาน – ฐานข้อมูล ไลบรารี และเทมเพลตของตัวเอง โดยพื้นฐานแล้วจะเป็นไปตามกฎของ SOA (Service Oriented Architecture) ซึ่งผู้ใช้จะได้ประโยชน์จาก การสร้างแอปพลิเคชันใหม่ และสามารถเรียกใช้แอปพลิเคชันต่างๆ ได้อย่างอิสระ
DevOps แบ่งฟังก์ชันของแอปพลิเคชันทั้งหมดออกเป็นแอปพลิเคชัน/บริการที่มีขนาดเล็กลง ซึ่งทำงานอย่างอิสระในขณะที่ยังคงฟังก์ชันของแอปพลิเคชันไว้ แอปพลิเคชันไมโครเซอร์วิสเหล่านี้ได้รับการพัฒนาและทดสอบเป็นรายบุคคลสำหรับฟังก์ชันการทำงานก่อนที่จะปรับใช้
กรอบงานสถาปัตยกรรมดังกล่าวมีประโยชน์เพราะแม้ว่าไมโครเซอร์วิสตัวใดตัวหนึ่งจะเสียหายหรืออยู่ระหว่างการบำรุงรักษา แต่ก็สามารถแก้ไขได้ง่ายกว่าโดยไม่กระทบต่อบริการอื่น ๆ และการทำงานโดยรวมในเวลาต่อมา
ประเภทของไมโครเซอร์วิส
- ไมโครเซอร์วิสไร้สัญชาติ
ไมโครเซอร์วิสประเภทนี้ไม่ได้จัดเก็บข้อมูลที่มีอยู่ ทุกครั้งที่ใช้งาน จะมีการสร้างอินเทอร์เฟซใหม่ และจำเป็นต้องเพิ่มข้อมูลทุกครั้ง เนื่องจากข้อมูลจะไม่ถูกเก็บรักษาไว้
- Stateful Microservices
ไมโครเซอร์วิสประเภทนี้จะเก็บรักษาบันทึกในฐานข้อมูลเสมอซึ่งทำให้ผู้ใช้เขียนโค้ดได้อย่างมีประสิทธิภาพได้ง่ายขึ้น ข้อมูลดังกล่าวควรเก็บไว้ภายนอกในการจัดเก็บข้อมูล เช่น RDBMS, ฐานข้อมูล noSQL เป็นต้น
[อ่านเพิ่มเติม: Microservices กับสถาปัตยกรรมเสาหิน: อันไหนที่เหมาะกับการเริ่มต้น? ]
สถาปัตยกรรมไร้เซิร์ฟเวอร์คืออะไร?
สถาปัตยกรรม แบบไร้เซิร์ฟเวอร์ เป็นที่ที่แอปพลิเคชันโฮสต์บางส่วนหรือทั้งหมดบนเซิร์ฟเวอร์บุคคลที่สาม เช่น การ ประมวลผลแบบคลาว ด์ คำนี้ทำให้เข้าใจผิดว่าไม่มีเซิร์ฟเวอร์ แต่หมายความว่าองค์กรไม่ต้องกังวลกับการใช้จ่ายหรือบำรุงรักษาฮาร์ดแวร์จริงที่ตำแหน่งของตน โครงสร้างพื้นฐานทางกายภาพ เครือข่าย ที่เก็บข้อมูล ฯลฯ ได้รับการจัดการโดยบุคคลที่สามที่เชื่อถือได้
โดยสรุปแล้ว นักพัฒนาเพียงแค่ต้องมุ่งเน้นที่การเขียนโค้ด ผู้ให้บริการจะดูแลทุกอย่างอย่างอื่นตั้งแต่แพตช์ความปลอดภัยไปจนถึงการทำโหลดบาลานซ์ การจัดการความจุ การปรับขนาด การบันทึก และการตรวจสอบ แพลตฟอร์มของบริษัทอื่นที่ได้รับความนิยมบางส่วน ได้แก่ สถาปัตยกรรมไร้เซิร์ฟเวอร์ AWS Lamba สถาปัตยกรรม Microsoft Azure และ Google Cloud
สถาปัตยกรรมแบบไร้เซิร์ฟเวอร์ทำงานในสองมุมมองที่แตกต่างกัน –
- ฟังก์ชันเป็นบริการ (FaaS)
บริการนี้ช่วยให้ผู้ใช้สามารถสร้างสถาปัตยกรรมโมดูลาร์ที่สามารถปรับขนาดได้และมีประสิทธิภาพโดยใช้ทรัพยากรจำนวนหนึ่ง ตัวอย่างที่ดีที่สุดของ FaaS คือ Cloudflare Workers
- แบ็กเอนด์เป็นบริการ (BaaS)
โดยทั่วไป บริการนี้ใช้เพื่อสร้างแอปพลิเคชันสำหรับมือถือและเว็บ การใช้บริการของบุคคลที่สามทำให้ผู้ใช้สามารถโฟกัสที่ส่วนหน้าของแอปพลิเคชันได้ ตัวอย่างที่ดีที่สุดของ BaaS คือ AWS Lambda
เพื่อความสะดวกในการทำความเข้าใจ โปรดดูตารางด้านล่างเพื่อดูว่าโครงสร้างพื้นฐานแบบไม่มีเซิร์ฟเวอร์คืออะไรและโครงสร้างพื้นฐานของไมโครเซอร์วิสคืออะไร
ไมโครเซอร์วิส | ไร้เซิร์ฟเวอร์ |
---|---|
มีการพัฒนาแอพพลิเคชั่นการทำงานอิสระขนาดเล็กขึ้น | เสนอสภาพแวดล้อมในการรันโค้ดได้ทุกที่ |
นี่คือ SOA (สถาปัตยกรรมเชิงบริการ) | นี่คือแบบจำลองคลาวด์คอมพิวติ้ง |
Microservice มีเทคโนโลยีภายในสภาพแวดล้อมบนคลาวด์ | ฟังก์ชันไร้เซิร์ฟเวอร์เป็นวิธีเดียวในการโฮสต์ไมโครเซอร์วิส |
เป็นเทคนิคการสร้างแอพพลิเคชั่น | คุณสามารถเรียกใช้แอปพลิเคชันบนสถาปัตยกรรมแบบไร้เซิร์ฟเวอร์ |
สถาปัตยกรรมที่เป็นผู้ใหญ่ | สุกน้อย |
สามารถจัดการโซลูชันได้หลายแบบ | ยากที่จะตรวจสอบและจัดการบันทึก |
ความแตกต่างหลักคือ – microservices เป็นเทคนิคในการออกแบบแอปพลิเคชัน ในขณะที่เซิร์ฟเวอร์ไร้เซิร์ฟเวอร์เป็นสถาปัตยกรรมที่ใช้เรียกใช้บางส่วนหรือแอปพลิเคชันทั้งหมด Microservices สามารถโฮสต์บนสถาปัตยกรรมแบบไร้เซิร์ฟเวอร์
ตามหลักการแล้ว ควรเลือกใช้ฟังก์ชันแบบไร้เซิร์ฟเวอร์เมื่อองค์กรต้องการการปรับขนาดอัตโนมัติและลดต้นทุนรันไทม์ และสถาปัตยกรรมไมโครเซอร์วิสควรเลือกใช้โดยองค์กรเมื่อมองหาความยืดหยุ่นและต้องการเปลี่ยนไปใช้สถาปัตยกรรมสมัยใหม่
บทบาทและทรัพยากรที่จำเป็นสำหรับ Serverless เทียบกับ Microservices
ดังที่กล่าวไว้ข้างต้น ไมโครเซอร์วิสเป็นแอปพลิเคชั่นขนาดเล็กที่พัฒนาขึ้นซึ่งรวมเข้ากับแอปพลิเคชันที่ใหญ่กว่าในขณะที่ทำงานแยกกัน ในการสร้างแอปพลิเคชันด้วยสถาปัตยกรรมนี้ ขั้นตอนการวางแผนควรละเอียดถี่ถ้วนเพื่อทราบว่าไมโครเซอร์วิสทั้งหมดต้องสร้างขึ้นอย่างไร และจะโต้ตอบกันผ่าน API อย่างไร สถาปนิกซอฟต์แวร์ที่มีประสบการณ์สามารถจัดการบทบาทนี้ได้อย่างมีประสิทธิภาพ
ในการพัฒนาแอปพลิเคชัน คุณต้องมีทีมนักพัฒนาและผู้ทดสอบที่มีความเข้าใจที่ชัดเจนเกี่ยวกับสถาปัตยกรรมไมโครเซอร์วิส Microservices ไม่ใช่ภาษาเฉพาะและสามารถสร้างขึ้นในภาษาของซอฟต์แวร์ใดก็ได้ ต้องบอกว่า เทคโนโลยีที่ใช้บ่อยที่สุดคือ JS/TypeScript, Java, .NET และ Python ทีมนักพัฒนาขนาดเล็กที่ทำงานข้ามสายงานทำงานร่วมกันได้ดียิ่งขึ้น
สังเกตได้ว่าต้นทุนของไมโครเซอร์วิสสูงขึ้นในระหว่างกระบวนการพัฒนา แต่จะถูกกว่าในระยะยาว ค่าใช้จ่ายในการบำรุงรักษาก็น้อยลงเช่นกัน เนื่องจากแอปพลิเคชันยังคงทำงานได้ตามปกติ แม้ว่าไมโครเซอร์วิสตัวใดตัวหนึ่งจะหยุดทำงาน แอปพลิเคชันที่มีขนาดเล็กลงไม่เพียงแต่ใช้เวลาน้อยลงในการกำจัดจุดบกพร่องเท่านั้น แต่ยังง่ายต่อการบำรุงรักษาอีกด้วย

ในการใช้สถาปัตยกรรมแอปพลิเคชันแบบไร้เซิร์ฟเวอร์ คุณต้องค้นหาผู้ให้บริการที่ดี เช่น AWS Lambda, Microsoft Azure Function, Google Cloud Functions และ Cloudflare Workers นอกจากนี้ คุณต้องเลือกระหว่าง FaaS และ BaaS เพื่อเขียนฟังก์ชันทั้งหมดและทริกเกอร์
ทีมพัฒนาต้องมีพื้นฐานที่แข็งแกร่งในการทำงานกับผู้ให้บริการที่คุณเลือก นักพัฒนาควรมีความเชี่ยวชาญอย่างถี่ถ้วนด้วย ทักษะ JavaScript หรือ Python
ค่อนข้างถูกกว่าที่จะโฮสต์แอปพลิเคชันหรือส่วนหนึ่งของแอปพลิเคชันบนเซิร์ฟเวอร์ที่อยู่ห่างไกล ดังนั้นจึงมีต้นทุนในการพัฒนาน้อยลงด้วย นอกจากนี้ยังสามารถเปิดแอปพลิเคชันได้ในเวลาไม่นาน
การรวม Serverless และ Microservices
องค์กรสามารถเลือกระหว่างเซิร์ฟเวอร์แบบไร้เซิร์ฟเวอร์และไมโครเซอร์วิสได้ตามความต้องการตามที่กล่าวไว้ข้างต้น อย่างไรก็ตาม ทีมพัฒนาสามารถพัฒนาไมโครเซอร์วิสได้จริงเป็นชุดของฟังก์ชันที่ขับเคลื่อนด้วยเหตุการณ์ซึ่งสามารถจัดเก็บไว้ในโครงสร้างพื้นฐานของบุคคลที่สามได้
ด้วยการปฏิบัติตามแนวทางที่กล่าวถึงด้านล่าง ทีมพัฒนาสามารถเชื่อมช่องว่างและรวมสถาปัตยกรรมไมโครเซอร์วิสกับสถาปัตยกรรมแบบไร้เซิร์ฟเวอร์
- เพื่อให้ไมโครเซอร์วิสเป็นแบบไร้เซิร์ฟเวอร์ ควรทริกเกอร์เหตุการณ์ ไมโครเซอร์วิสควรตอบสนองต่อเงื่อนไขเฉพาะและการดำเนินการของผู้ใช้เพื่อให้ทำงานเป็นฟังก์ชัน
- ด้วยการใช้ Logic Apps (Microsoft) หรือ Step Functions ( Amazon) ทริกเกอร์สามารถกำหนดให้กับไมโครเซอร์วิส และสามารถรวมฟังก์ชันต่างๆ เข้าด้วยกันเป็นบริการได้ สิ่งนี้จะเพิ่มความเป็นไปได้ในการรวมเข้าด้วยกัน
- การพัฒนาฟังก์ชันแบบไร้เซิร์ฟเวอร์ขึ้นอยู่กับที่เก็บข้อมูลบนคลาวด์และการประมวลผล ดังนั้น การย้ายไปยังโครงสร้างพื้นฐานระบบคลาวด์จึงเป็นสิ่งสำคัญ เพื่อให้คุณสามารถใช้หลักการบางอย่างจากสถาปัตยกรรมแบบไร้เซิร์ฟเวอร์ได้
ตัวอย่างในโลกแห่งความเป็นจริง
จากความแตกต่างข้างต้นและวิธีการทางสถาปัตยกรรม ให้เราสำรวจตัวอย่างการใช้งานจริงของสถาปัตยกรรมทั้งสองที่อาจช่วยคุณใน การเลือกสถาปัตยกรรมที่เหมาะสมสำหรับธุรกิจของ คุณ
ตัวอย่างสถาปัตยกรรมไมโครเซอร์วิสในโลกแห่งความเป็นจริง
1. Netflix – Netflix เป็นหนึ่งในองค์กรแรกๆ ที่นำไมโครเซอร์วิส คลาวด์คอมพิวติ้ง หรือไมโครเซอร์วิสแบบไร้เซิร์ฟเวอร์มาใช้ในการบำรุงรักษาเซิร์ฟเวอร์ ความน่าเชื่อถือ และอัลกอริทึมสำหรับการแนะนำการแสดง
2. Amazon – ด้วยการเติบโตแบบทวีคูณ จึงมีการแนะนำบริการที่หลากหลาย อย่างไรก็ตาม ในขั้นต้น บริษัทได้ติดตามสถาปัตยกรรมเสาหินที่มีราคาแพง จากนั้นบริษัทได้สร้างแอปพลิเคชันขึ้นใหม่เป็นไมโครเซอร์วิส
3. Uber – กระบวนการทางธุรกิจทั้งหมดได้รับการจัดการผ่านสถาปัตยกรรมไมโครเซอร์วิส เช่น การจัดการผู้โดยสาร การเรียกเก็บเงิน การแจ้งเตือน และอื่นๆ อีกมากมาย
ตัวอย่างสถาปัตยกรรมแบบไร้เซิร์ฟเวอร์ในโลกแห่งความเป็นจริง
1. Nordstorm – เว็บไซต์ช็อปปิ้งสร้างเฟรมเวิร์กของตนเองโดยใช้สถาปัตยกรรมแบบไร้เซิร์ฟเวอร์ เว็บไซต์ของพวกเขาใช้เซิร์ฟเวอร์แบบไร้เซิร์ฟเวอร์เพื่อสร้างแอปพลิเคชันตามเหตุการณ์และเพิ่มคุณสมบัติเพิ่มเติม
2. Codepen - เป็นแพลตฟอร์มการพัฒนาทางสังคมสำหรับนักพัฒนาและนักออกแบบส่วนหน้าเพื่อช่วยสร้างเว็บไซต์ที่ดำเนินการโดยทีม DevOps คนเดียวเนื่องจากเซิร์ฟเวอร์ไม่ทำหน้าที่ส่วนที่เหลือ
3. Figma – ด้วยความช่วยเหลือของสถาปัตยกรรมแบบไร้เซิร์ฟเวอร์ ผู้ใช้สามารถทำงานร่วมกันในการออกแบบเดียว ในขณะที่นักพัฒนาสามารถมุ่งเน้นที่โครงการมากกว่าการจัดการไฟล์
Appinventiv สามารถช่วยในการตัดสินใจที่ถูกต้องสำหรับ Serverless vs Microservices ได้อย่างไร
ด้วยความเชี่ยวชาญของเราในบริการการเปลี่ยนแปลงทางดิจิทัล ที่ Appinventiv เรามุ่งมั่นสู่ความเป็นเลิศในทุกโครงการที่เราทำ โดยไม่คำนึงถึงขนาด เราได้ช่วยให้องค์กรบรรลุเป้าหมายทางธุรกิจภายในระยะเวลาและค่าใช้จ่ายที่กำหนด
ตัวอย่างเช่น เราประสบความสำเร็จในการสร้าง แพลตฟอร์ม การวิเคราะห์ข้อมูลที่ มีลูกค้าเป็นศูนย์กลาง สำหรับบริษัทโทรคมนาคมรายใหญ่ที่สุดแห่งหนึ่งในสหรัฐฯ ด้วยการใช้ประโยชน์จาก Business Intelligence เราสามารถรับรองความพร้อมใช้งานของข้อมูล 100% กับทุกแผนกของบริษัทในแบบเรียลไทม์
ด้วย บริการคลาวด์คอมพิวติ้ง ที่ดีที่สุดในระดับเดียวกัน เราสามารถช่วยคุณเลือกสถาปัตยกรรมที่เหมาะสมซึ่งจะเป็นประโยชน์สำหรับผลิตภัณฑ์ของคุณ หรือปรับให้เข้ากับโซลูชันการรวมระบบที่มีประสิทธิภาพที่สุดซึ่งเหมาะสมกับความต้องการทางธุรกิจของคุณมากที่สุด
พูดคุยกับผู้เชี่ยวชาญของเรา เพื่อเรียนรู้ว่าเราจะเป็นพันธมิตรกับคุณเพื่อช่วยให้คุณบรรลุเป้าหมายทางธุรกิจได้อย่างไร
ประเด็นที่สำคัญ
Serverless vs Microservices เทคโนโลยีทั้งสองมีโครงสร้างคล้ายคลึงกันตามแนวทางที่แตกต่างกัน เมื่อเทียบกับสถาปัตยกรรมแบบเสาหิน ทั้งเซิร์ฟเวอร์แบบไร้เซิร์ฟเวอร์และไมโครเซอร์วิสให้ความสำคัญกับความสามารถในการปรับขนาด ความยืดหยุ่น ความคุ้มค่า และความง่ายในการเพิ่มคุณสมบัติใหม่ จุดเน้นของไมโครเซอร์วิสคือความสามารถในการปรับขยายได้ในระยะยาว เนื่องจากแต่ละบริการทำงานเป็นแอปพลิเคชันในตัวของมันเอง
สามารถเลือกได้ระหว่างสองแนวทางตามขอบเขตและลำดับความสำคัญของผลิตภัณฑ์ของบริษัท หากคุณกำลังวางแผนที่จะสร้างแพลตฟอร์มขนาดใหญ่ที่ต้องการการปรับขนาดอย่างต่อเนื่อง ไมโครเซอร์วิสจะจัดหาไมโครเซอร์วิสแบบไร้เซิร์ฟเวอร์ให้กับคุณสำหรับโซลูชันระยะยาว หากคุณกำลังมองหาการเปิดใช้ที่คุ้มค่าและรวดเร็ว สถาปัตยกรรมแบบไร้เซิร์ฟเวอร์เป็นตัวเลือกที่ดี
คำถามที่พบบ่อย
ถาม: serverless และ microservices สามารถทำงานร่วมกันได้หรือไม่?
A. ไม่จำเป็นต้องเลือกสถาปัตยกรรมอย่างใดอย่างหนึ่ง แอปพลิเคชั่นบางตัวมอบสิ่งที่ดีที่สุดเมื่อนำสถาปัตยกรรมทั้งสองมารวมกัน Microservices และ Serverless ผสานและเสริมซึ่งกันและกันด้วยจุดแข็งและจุดอ่อนเฉพาะ ไมโครเซอร์วิสสามารถนำไปใช้เป็นส่วนหนึ่งของสถาปัตยกรรมแอปพลิเคชันแบบไร้เซิร์ฟเวอร์
ถาม เมื่อใดที่คุณไม่ควรใช้สถาปัตยกรรมไมโครเซอร์วิส
A. ต้องไม่ใช้สถาปัตยกรรมไมโครเซอร์วิสเมื่อ:
- โดเมนที่กำหนดไม่ชัดเจนหรือไม่แน่นอน
- ไม่รับประกันประสิทธิภาพที่ดีขึ้น
- ขนาดโปรแกรมเล็กเกินไป
ถาม: คุณควรใช้สถาปัตยกรรมไมโครเซอร์วิสเมื่อใด
A. Microservices มีประโยชน์เมื่อจำเป็นต้องพัฒนาแอพพลิเคชั่นขนาดใหญ่ที่สามารถจ่ายค่าใช้จ่ายล่วงหน้าได้ การใช้งานที่มีขนาดเล็กและน้ำหนักเบาสามารถรักษาไว้เป็นสถาปัตยกรรมแบบเสาหินได้
- แอพพลิเคชั่นที่ต้องปรับขนาดขึ้นหรือลง
- การเพิ่มฟังก์ชันใหม่เป็นข้อกำหนดปกติ
- ในแอปพลิเคชันข้อมูลขนาดใหญ่
- การเขียนแอปพลิเคชันรุ่นเก่า
- จำเป็นต้องใช้ส่วนประกอบบางอย่างซ้ำจากซอฟต์แวร์มากกว่าหนึ่งตัว