การเขียนโปรแกรมระบบคลาวด์
การออกแบบโปรแกรมที่กําหนดไว้สําหรับคลาวด์ต้องมีข้อควรพิจารณาพิเศษ นักพัฒนาซอฟต์แวร์สามารถใช้คุณลักษณะบางอย่างจากผู้ให้บริการระบบคลาวด์เพื่อเพิ่มความสามารถในการปรับขนาดและความสามารถในการบํารุงรักษาโปรแกรมทั้งนี้ขึ้นอยู่กับชนิดของแอปพลิเคชันและภาระที่คาดหวัง การใช้ระบบปรับขนาดอัตโนมัติและตัวปรับสมดุลการโหลดช่วยให้นักพัฒนาสามารถขยายหรือลดโครงสร้างพื้นฐานตามการใช้งานฮาร์ดแวร์หรือปัจจัยการโหลดโปรแกรม
มีข้อควรพิจารณาหลายประการที่นักพัฒนาต้องคํานึงถึงเมื่อพัฒนาหรือโยกย้ายแอปพลิเคชันไปยังระบบคลาวด์ โดยเฉพาะอย่างยิ่งข้อที่เกี่ยวกับประสิทธิภาพและความปลอดภัย
ปัจจัยประสิทธิภาพการทํางานสําหรับแอปพลิเคชันบนระบบคลาวด์
สภาพแวดล้อมในศูนย์ข้อมูลที่เน้นระบบคลาวด์แตกต่างจากที่นักพัฒนาอาจใช้เมื่อออกแบบและปรับใช้แอปพลิเคชันบนโครงสร้างพื้นฐานที่เป็นเจ้าของ นักพัฒนาบางคนพบว่าเป็นการยากที่จะปรับแต่งหรือปรับปรุงประสิทธิภาพการทํางานของแอปพลิเคชันของตนเนื่องจากไม่สามารถเข้าถึงเค้าโครงฮาร์ดแวร์หรือข้อกําหนดบนคลาวด์สาธารณะได้ เราจะพยายามแจกแจงข้อกังวลอันดับต้น ๆ บางประการ โดยให้ความสําคัญกับปัจจัยที่ส่งผลกระทบต่อประสิทธิภาพของแอปพลิเคชันบนระบบคลาวด์โดยเฉพาะ:
แบนด์วิดท์ของทรัพยากรและเวลาแฝง
ข้อกังวลหลักสําหรับการพัฒนาและการปรับใช้แอปพลิเคชันระบบคลาวด์คือเวลาแฝง นักพัฒนาต้องวางแผนแอปพลิเคชันของพวกเขาด้วยข้อกําหนดเวลาแฝงที่เข้มงวดในใจ วิธีหนึ่งคือการรวบรวมการกระจายตําแหน่งไคลเอ็นต์ ซึ่งจะช่วยให้นักพัฒนาค้นหาชุดตําแหน่งศูนย์ข้อมูลที่เหมาะสมที่สุดที่สามารถใช้ในการปรับประสิทธิภาพของผู้ใช้ปลายทางและการตอบสนองให้เหมาะสม ซึ่งเป็นจริงโดยเฉพาะอย่างยิ่งในแอปพลิเคชันเว็บ ที่ซึ่งคําขอ HTTP แต่ละรายการสําหรับเนื้อหาเว็บแบบคงที่สามารถแสดงถึงส่วนสําคัญของเวลาในการโหลดเว็บเพจ
นอกเหนือจากเวลาแฝงแอปพลิเคชันอาจมีข้อกําหนดแบนด์วิดท์ที่เข้มงวดโดยเฉพาะอย่างยิ่งที่จัดการกับเนื้อหามัลติมีเดียที่หลากหลายเช่นเสียงและวิดีโอ ผู้ให้บริการระบบคลาวด์จํานวนมากอนุญาตให้นักพัฒนาระบบคลาวด์ระบุพารามิเตอร์ประสิทธิภาพในระหว่างการเตรียมใช้งานในรูปแบบของข้อกําหนด IOPS สําหรับทรัพยากรการคํานวณและการจัดเก็บ นอกจากนี้ ผู้ให้บริการระบบคลาวด์จํานวนมากยังอนุญาตให้นักพัฒนาตั้งค่าเครือข่ายเสมือนได้ การใช้งานและการนําไปใช้ของเครือข่ายและที่เก็บข้อมูลที่กําหนดโดยซอฟต์แวร์ (ครอบคลุมในโมดูลต่อมา) ให้ข้อมูลเชิงลึกเพิ่มเติมเป็นเทคนิคที่ใหม่กว่าที่ใช้โดยศูนย์ข้อมูลเพื่อจัดการการรับส่งข้อมูลจากไคลเอนต์หลายรายในขณะที่จัดการความต้องการแต่ละรายการตามที่ระบุใน SLOs ไคลเอ็นต์
เทคนิคที่กล่าวถึงข้างต้นมีการกําหนดเป้าหมายเป็นหลักที่เนื้อหาคงที่ ปัญหาที่ยากกว่าคือการปรับเวลาแฝงในการเข้าถึงระบบจัดเก็บข้อมูลแบบกระจายให้เหมาะสม โดยเฉพาะอย่างยิ่งผู้ที่ต้องจัดการการเขียนและการอัปเดต เราจะเรียนรู้เพิ่มเติมเกี่ยวกับข้อกังวลเหล่านี้ในมอดูลถัดไป
การเช่าหลายรายการ
แอปพลิเคชันบนศูนย์ข้อมูลสาธารณะโดยทั่วไปจะทํางานบนโครงสร้างพื้นฐานที่ใช้ร่วมกัน บริการระบบคลาวด์นี้ก่อให้เกิดปัญหาสําคัญหลายประการ ในขณะที่เทคโนโลยีการจําลองภาพเสมือนที่ทันสมัยมีสภาพแวดล้อมที่แยกต่างหากในแง่ของสภาพแวดล้อมและความปลอดภัยของแอปพลิเคชัน แต่โดยทั่วไปแล้วจะไม่สามารถรับประกันการแยกประสิทธิภาพ ได้ ดังนั้น ทรัพยากรเสมือนบนระบบคลาวด์ไม่สามารถรับประกันประสิทธิภาพที่สม่ําเสมอตลอดเวลา ประสิทธิภาพของทรัพยากรณ เวลาใดก็ตามคือการทํางานของการโหลดทั้งหมดของทรัพยากรจากผู้เช่าทั้งหมด หรือที่เรียกว่าการแทรกแซง ประสบจากผู้เช่ารายอื่นที่ใช้ฮาร์ดแวร์เดียวกันร่วมกัน
ผู้ให้บริการระบบคลาวด์บางราย เช่น Azure สามารถให้บริการแก่ลูกค้าในการจัดหาทรัพยากรบางประเภท (เช่น VM) บน ฮาร์ดแวร์เฉพาะ ซึ่งให้การป้องกันความผันผวนที่มากในด้านประสิทธิภาพของทรัพยากร ซึ่งมีประสิทธิภาพการทํางานที่ค่อนข้างสอดคล้องกันสําหรับทรัพยากร อย่างไรก็ตาม อินสแตนซ์ของฮาร์ดแวร์เฉพาะมีค่าใช้จ่ายมากกว่าอินสแตนซ์ตามความต้องการทั่วไปอย่างมาก เนื่องจาก Azure จําเป็นต้องกําหนดเซิร์ฟเวอร์สําหรับทรัพยากรโดยเฉพาะ
ลักษณะที่เกี่ยวข้องของหลายผู้เช่าคือปัญหาของ การเตรียมใช้งานการเปลี่ยนแปลงซึ่งในตําแหน่งคําขอที่เหมือนกันสําหรับทรัพยากรเสมือนบนระบบคลาวด์สาธารณะจะไม่ถูกแมปเหมือนกับทรัพยากรทางกายภาพ ซึ่งจะทําให้เกิดการเปลี่ยนแปลงด้านประสิทธิภาพการทํางาน1 ตัวอย่างเช่น คําขอที่เหมือนกันสองรายการสําหรับเครื่องเสมือน (VM1 และ VM2) สามารถส่งไปยังเครื่องทางกายภาพที่แตกต่างกันสองเครื่อง (A และ B) เครื่องทางกายภาพ A อาจมีผู้เช่าอื่น ๆ สี่รายที่แข่งขันกับทรัพยากรบนคอมพิวเตอร์เครื่องเดียวกัน ในขณะที่เครื่อง B อาจมีเพียงสองเครื่องเท่านั้น ไคลเอ็นต์จะถูกเรียกเก็บเงินเหมือนกันสําหรับเครื่องเสมือน VM1 และ VM2แต่อาจได้รับประสิทธิภาพที่แตกต่างกันบนเครื่องเหล่านี้
การตั้งค่าการรักษาความปลอดภัย
ระบบคลาวด์สาธารณะอยู่ภายใต้เวกเตอร์การโจมตีที่เพิ่มขึ้นดังที่เราเห็นในหน่วย 1 นักพัฒนาจะต้องระมัดระวังเป็นอย่างยิ่งเพื่อให้มั่นใจว่าพวกเขาปฏิบัติตามแนวทางปฏิบัติโปรโตคอลและขั้นตอนที่ดีที่สุดเมื่อปรับใช้และบํารุงรักษาแอปพลิเคชันบนคลาวด์ ด้วยเหตุนี้ ค่าใช้จ่ายด้านประสิทธิภาพเพิ่มเติมอาจประสบเนื่องจากการใช้โปรโตคอลความปลอดภัยที่จัดการโดยระบบคลาวด์สาธารณะ
เนื่องจากเราได้กล่าวถึงโปรโตคอลเหล่านี้ในมอดูลก่อนหน้านี้ เราจะไม่กล่าวถึงรายละเอียดเหล่านี้อีก โค้ดใด ๆ ที่ปรับใช้บนคลาวด์สาธารณะควรผ่านกระบวนการที่เข้มงวดในการตรวจทานรหัสต้นทางด้วยตนเองและอัตโนมัติและการวิเคราะห์แบบคงที่รวมถึงการวิเคราะห์ช่องโหว่แบบไดนามิกและการทดสอบการเจาะ แนวทางสําหรับการปรับใช้แอปพลิเคชันได้อย่างปลอดภัยจะแสดงอยู่ในหน้าถัดไป
อ้าง อิง
- Rehman, M.S และ Sakr, M.F (2010) ผลเบื้องต้นสําหรับการเตรียมใช้งานการเปลี่ยนแปลงใน cloud Computing จากการประชุมนานาชาติปี 2010 IEEE ที่สองเกี่ยวกับเทคโนโลยีการประมวลผลแบบคลาวด์และวิทยาศาสตร์ (CloudCom)