วิธีตรวจสอบความสามารถในการปรับขนาดของคลาวด์ในปี 2566
เผยแพร่แล้ว: 2023-01-11เนื้อหา
- ความสามารถในการปรับขนาดคืออะไร?
- ทำไมเราต้องให้ความสนใจเป็นพิเศษกับความสามารถในการปรับขนาด?
- ประเภทของการปรับขนาด
- ความสามารถในการปรับขนาดแนวตั้ง - ขยายขนาดขึ้น
- การปรับขนาดแนวนอน - การปรับขนาดออก
- การปรับขนาดในแนวทแยง
- วิธีตรวจสอบความสามารถในการขยายขนาดสูงสุด
- ดำเนินการโหลดบาลานซ์
- หันไปปรับขนาดบริการเว็บอัตโนมัติ
- คอนเทนเนอร์ Microservices การทำคลัสเตอร์
- ใช้แคช
- ใช้บริการ CDN
- เราจะจัดการกับปัญหาการปรับขนาดได้อย่างไร
- บทสรุป
เมื่อปริมาณโหลดทั่วไปในระบบคอมพิวเตอร์เพิ่มมากขึ้น พวกมันจึงปรับตัวและมีความซับซ้อนมากขึ้นในแง่ของสถาปัตยกรรมพื้นฐาน มีการเพิ่มเครื่องมือซอฟต์แวร์ใหม่และการผสานรวมเพื่อเพิ่มประสิทธิภาพ ขยายความจุของเซิร์ฟเวอร์ ฯลฯ
กระบวนการเพิ่มประสิทธิภาพระบบทั้งหมดนี้ถูกกำหนดโดยแนวคิดเดียว - การ ปรับขนาด - หนึ่งในความเชี่ยวชาญพิเศษที่สำคัญของผู้เชี่ยวชาญ DevOps ความสามารถในการปรับขนาดคืออะไร และที่สำคัญกว่านั้น จะมั่นใจได้อย่างไรในกรณีของธุรกิจเฉพาะของคุณที่มีขีดความสามารถในการดำเนินงานส่วนใหญ่กระจุกตัวอยู่ในระบบคลาวด์ มาดำน้ำในหัวข้อ
แหล่งที่มาของรูปภาพ: Static.bluepiit
ความสามารถในการปรับขนาดคืออะไร?
คำจำกัดความสูงสุดของความสามารถในการปรับขนาดคืออะไร โดยพื้นฐานแล้วมันคือความสามารถในการเพิ่มประสิทธิภาพของระบบด้วยวิธีที่สมเหตุสมผลที่สุดเท่าที่จะเป็นไปได้ ในทางปฏิบัติ มักทำได้โดยการเพิ่มทรัพยากรคอมพิวเตอร์ ทั้งฮาร์ดแวร์และ/หรือซอฟต์แวร์ อย่างไรก็ตาม การเขียนโค้ดที่มีอยู่ใหม่นั้นเป็นวิธีแก้ปัญหาที่ค่อนข้างรุนแรงในกรณีส่วนใหญ่ ดังนั้นใน 9 ใน 10 กรณีที่บริษัทต่างๆ เลิกเพิ่มจำนวนเซิร์ฟเวอร์หรือเพิ่มความสามารถของระบบเซิร์ฟเวอร์ที่มีอยู่
โปรดสังเกตว่าความจำเป็นในการปรับขนาดไม่เพียงปรากฏขึ้นเมื่อประสิทธิภาพของระบบโดยรวมล้าหลังและไม่เพียงพอเท่านั้น สถาปัตยกรรมที่มีอยู่และการทำงานอาจทำงานได้ดี แต่ความล่าช้าอาจยังเป็นอุปสรรคต่อกระบวนการเนื่องจากการเติบโตอย่างรวดเร็วของทราฟฟิกผู้ใช้
หากคุณต้องการตรวจสอบว่าโปรโตคอลเครือข่ายและทรัพยากรเว็บเซิร์ฟเวอร์ของคุณมีประสิทธิภาพเพียงใด คุณสามารถใช้ยูทิลิตี้ตัวทดสอบโหลดที่มีอยู่ (เช่น siege เป็นต้น) ที่จะจำลองการไหลเข้าของผู้ใช้ปลอมมายังเซิร์ฟเวอร์ของคุณพร้อมคำขอมากมาย คุณจะต้องติดตามพารามิเตอร์หลักสองตัว: n - กำหนดจำนวนคำขอทั้งหมด และ c - ระบุจำนวนคำขอพร้อมกัน
ด้วยเหตุนี้ คุณจะได้รับค่า RPS (คำขอต่อวินาที) ซึ่งแสดงจำนวนคำขอที่ระบบเซิร์ฟเวอร์ของคุณสามารถจัดการได้ในขณะนี้ นี่เป็นภาพสะท้อนของจำนวนผู้ใช้สูงสุดที่หากพวกเขาพยายามโต้ตอบกับเซิร์ฟเวอร์ของคุณพร้อมกัน อาจทำให้ระบบของคุณพังได้ ขั้นตอนการทดสอบนี้จะแสดงให้คุณเห็นถึงสิ่งที่คาดหวังและความสำคัญในการสร้างสถาปัตยกรรมที่สามารถปรับขยายได้
ในทางกลับกัน ลองคิดดูสักครู่ บางที อาจมีราคาย่อมเยากว่าในการปรับแต่งการกำหนดค่าเซิร์ฟเวอร์บางอย่างและเพิ่มประสิทธิภาพขั้นตอนการจ่ายเงินในกรณีเฉพาะของคุณ ด้วยวิธีนี้ คุณสามารถเลื่อนการปรับขนาดได้อย่างปลอดภัยจนกว่าจะถึงเวลาที่ดีขึ้น
ทำไมเราต้องให้ความสนใจเป็นพิเศษกับความสามารถในการปรับขนาด?
เมื่อธุรกิจเริ่มพัฒนา ธุรกิจนั้นต้องมีความยืดหยุ่นและมีไหวพริบมากที่สุดเท่าที่จะเป็นไปได้ สตาร์ทอัพต้องสามารถปรับตัวให้เข้ากับกระแสและสภาวะตลาดที่เปลี่ยนแปลงได้อย่างรวดเร็ว เพื่อให้ได้รับความนิยมและแข่งขันได้ เมื่อแอปของคุณสามารถปรับขนาดได้ จะช่วยเร่งการเติบโต ปรับปรุงประสบการณ์ของผู้ใช้ และเข้าถึงผู้ชมจำนวนมากขึ้น หัวใจหลักคือความสามารถในการปรับขยายช่วยให้คุณจัดการแอปพลิเคชันของคุณได้ดีขึ้นและปรับให้เข้ากับข้อกำหนดใหม่ เมื่อสร้างกลยุทธ์การเติบโตสำหรับธุรกิจของคุณ การสร้างแอปพลิเคชันที่ปรับขนาดได้ควรเป็นหนึ่งในสิ่งสำคัญอันดับแรก
ประเภทของการปรับขนาด
ขั้นตอนการปรับขนาดที่สำคัญและพบบ่อยที่สุด ได้แก่ :
ความสามารถในการปรับขนาดแนวตั้ง - ขยายขนาดขึ้น
แหล่งที่มาของภาพ: Dzone
การปรับขนาดในแนวตั้งคือการเพิ่มพลังทางธุรกิจโดยรวมโดยการเพิ่มประสิทธิภาพของทรัพยากรเซิร์ฟเวอร์ภายใน - CPU, หน่วยความจำ, ไดรฟ์ และความจุของเครือข่าย เซิร์ฟเวอร์ในรูปแบบพื้นฐานยังคงไม่เปลี่ยนแปลง
การปรับขนาดแนวนอน - การปรับขนาดออก
แหล่งที่มาของภาพ: Dzone
มีจุดยืนที่แท้จริงเกิดขึ้นในสนาม - ขยายใหญ่ขึ้นเทียบกับขยายออก อะไรดีกว่ากัน?
โดยเฉพาะอย่างยิ่ง เมื่อโหลดดิจิทัลและการรับส่งข้อมูลเพิ่มขึ้นเรื่อย ๆ การปรับขนาดแนวตั้งไม่ช้าก็เร็วต้องเผชิญกับข้อจำกัดในรูปแบบของข้อกำหนดทางเทคนิคของเซิร์ฟเวอร์ นั่นคือที่มาของการปรับขนาดแนวนอน ความหมายพื้นฐานของคำนี้กำหนดว่าพลังการประมวลผลจะเพิ่มขึ้นโดยการเพิ่มโหนดที่เหมือนกันบนโหนดที่มีอยู่ การปรับสเกลในแนวนอนมักจะถูกตัดสินเมื่อมีการปรับโครงสร้างพื้นฐานของเซิร์ฟเวอร์ (กรณีเฉพาะ - ศูนย์ข้อมูล) เช่นเดียวกับรูปแบบการโต้ตอบระหว่างเซิร์ฟเวอร์
การปรับขนาดในแนวทแยง
นี่เป็นคำศัพท์ที่ค่อนข้างใหม่ที่ John Allspaw คิดขึ้นมา - ผู้เขียนและผู้ร่วมก่อตั้ง Adaptive Capacity Labs ดังนั้น การปรับขนาดในแนวทแยงจึงเป็นการรวมเอาสิ่งที่ดีที่สุดจากสองโลกเข้าด้วยกัน และกำหนดมาตราส่วนแนวตั้งของโหนดที่ปรับขนาดตามแนวนอน ซึ่งได้นำไปใช้แล้วในโครงสร้างพื้นฐานของเซิร์ฟเวอร์ที่มีอยู่
วิธีตรวจสอบความสามารถในการขยายขนาดสูงสุด
ตอนนี้ มาดูเคล็ดลับที่นำไปใช้ได้จริงเพื่อช่วยให้คุณดำเนินการตามขั้นตอนการขยายขนาดการประมวลผลแบบคลาวด์ได้อย่างเหมาะสมที่สุดโดยมีค่าใช้จ่ายน้อยที่สุด
ดำเนินการโหลดบาลานซ์
การจัดสรรภาระงานหมายถึงชุดของความพยายามในการกระจายกระบวนการเครือข่ายคอมพิวเตอร์ระหว่างทรัพยากรฮาร์ดแวร์-ซอฟต์แวร์ต่างๆ (ไดรฟ์, CPU หรือเซิร์ฟเวอร์แยกต่างหาก) ที่กระจุกตัวอยู่ในซ็อกเก็ตหรือคลัสเตอร์เดียว เป้าหมายหลักที่นี่คือการปรับค่าใช้จ่ายของความสามารถในการประมวลผลให้เหมาะสม เพิ่มเอาต์พุตของเครือข่าย ลดค่าใช้จ่ายด้านเวลาระหว่างการประมวลผลคำขอของเครือข่าย รวมถึงลดโอกาสที่เซิร์ฟเวอร์บางตัวจะตอบกลับ DDoS ในช่วงเวลาที่ยอดเยี่ยม
ยิ่งไปกว่านั้น การกระจายโหลดระหว่างโหนดต่างๆ (แทนที่จะใช้โหนดเดียวอย่างเต็มที่) ช่วยเพิ่มความสามารถในการเข้าถึงบริการที่บริษัทของคุณมอบให้ โดยเฉพาะอย่างยิ่ง ด้วยจำนวนเซิร์ฟเวอร์ที่มากเกินไปภายใต้แขนเสื้อ แม้ว่าบางหน่วยการทำงานจะล้มเหลว คุณก็เตรียมเครื่องทดแทนอัตโนมัติไว้ให้พร้อม
ขั้นตอนการปรับสมดุลจะดำเนินการโดยใช้อัลกอริธึมและวิธีการทั้งชุดซึ่งแต่ละชุดสอดคล้องกับเลเยอร์แบบจำลอง OSI ต่อไปนี้: เครือข่าย การขนส่ง และแอปพลิเคชัน ในการใช้งานจริง สิ่งเหล่านี้จำเป็นต้องใช้เซิร์ฟเวอร์จริงหลายตัวพร้อมกับซอฟต์แวร์พิเศษที่คล้ายกับเว็บเซิร์ฟเวอร์ Nginx
หันไปปรับขนาดบริการเว็บอัตโนมัติ
การปรับขนาดอัตโนมัติเป็นวิธีการพิเศษในการปรับขนาดแบบไดนามิกในบริบทของบริการคลาวด์ (เช่น การปรับขนาดที่แสดงถึงการปรับแต่งพลังการประมวลผลตามปริมาณการโหลดของเครือข่าย) โดยเฉพาะอย่างยิ่ง ผู้ใช้บริการที่มีขั้นตอนการปรับขนาดอัตโนมัติ (ที่มีชื่อเสียงที่สุดคือ Amazon Web Service, Google Cloud Platform และ Microsoft Azure) จะได้รับเครื่องเสมือนเพิ่มเติมหากจำเป็น (ซึ่งสามารถแยกออกจากคลัสเตอร์หรือคอนเทนเนอร์ได้โดยอัตโนมัติ เนื่องจากการรับส่งข้อมูลและความรุนแรงของคำขอสงบลง)
ด้วยวิธีการดังกล่าว บริษัทต่างๆ จะได้รับความสามารถในการเข้าถึงที่เพิ่มขึ้น ความสามารถในการปฏิบัติงานที่ล้มเหลว ตลอดจนโอกาสในการประหยัดงบประมาณสูงสุด ด้วยบริการดังกล่าว คุณจะใช้พลังงานของเซิร์ฟเวอร์ได้มากเท่าที่คุณต้องการในขณะนี้ นี่เป็นตัวเลือกที่ชนะเมื่อเทียบกับการปรับขนาดจริงเมื่อคุณต้องซื้อและบำรุงรักษาฮาร์ดแวร์ราคาแพงเพิ่มเติม
โปรดสังเกตว่าความสามารถในการปรับขนาดบนคลาวด์อัตโนมัตินั้นมาพร้อมกับโซลูชันการจัดสรรภาระงานเสมอ
คอนเทนเนอร์ Microservices การทำคลัสเตอร์
คุณสามารถใช้ขั้นตอนเพิ่มประสิทธิภาพทรัพยากรที่รวมบริการไว้ในคอนเทนเนอร์ แล้วรวบรวมคอนเทนเนอร์เหล่านี้เป็นคลัสเตอร์ การจัดกลุ่มจะตามมาด้วยการกำหนดสคริปต์ที่เพิ่มทรัพยากรที่ขาด (อินสแตนซ์) หากจำเป็น หรือลดการอุทิศทรัพยากรให้น้อยที่สุดเพื่อหลีกเลี่ยงไม่ให้มีมากเกินไป
ใช้แคช
ในระหว่างการปรับขนาดแนวนอน การแคชหน่วยความจำอย่างง่ายไม่สามารถนำมาใช้กับหลายโหนดพร้อมกันได้ ดังนั้นจึงจำเป็นต้องปรับให้เหมาะสม โดยเฉพาะอย่างยิ่ง ที่เก็บข้อมูลเช่น Memcached หรือ Redis สามารถใช้สำหรับการกระจายข้อมูลแคชแบบรวมระหว่างการวนซ้ำของแอปพลิเคชัน เครื่องมือเหล่านี้ทำงานตามอัลกอริทึมที่แตกต่างกันเพื่อให้ข้อมูลแคชมีจำนวนลดลง พื้นที่จัดเก็บแคชยังได้รับการปกป้องอย่างดีจากการจำลองแบบและข้อผิดพลาดในการจัดเก็บข้อมูล
การใช้ที่เก็บข้อมูลแคช สิ่งสำคัญคือต้องป้องกันสถานการณ์เมื่อแอปต่างๆ ซ้ำกันร้องขอข้อมูลที่ไม่แคชพร้อมกัน เพื่อสิ่งนั้น คุณต้องอัปเดตข้อมูลแคชนอกโฟลว์ประสิทธิภาพของแอปและใช้โดยตรงภายในแอป
ดังนั้น ด้วยวิธีการที่เหมาะสม การแคชสามารถช่วยให้ระบบของคุณมีความสามารถในการปรับขนาดบนคลาวด์เพื่อจัดการกับโหลดจำนวนมากและบรรลุผลลัพธ์ที่เหมาะสมที่สุด
ใช้บริการ CDN
CDN เป็นเครือข่ายของคอมพิวเตอร์ระยะไกลที่ถ่ายโอนเนื้อหาไปยังผู้ใช้บริการ กล่าวอีกนัยหนึ่งคือพื้นที่เก็บข้อมูลแบบกระจายและการใช้แคช โดยปกติแล้ว การเปลี่ยนมาใช้ CDN จะมีความเกี่ยวข้องมากที่สุดเมื่อบริการเว็บ เว็บไซต์ หรือแอปพลิเคชันเต็มรูปแบบกำหนดเป้าหมายไปที่ผู้ชมผู้ใช้ที่กระจายอยู่ทั่วอาณาเขตของหลายประเทศ ราคา CDN ขึ้นอยู่กับปริมาณการรับส่งข้อมูลที่ผ่านบริการโดยตรง
อีกทางหนึ่ง CDN อาจเป็นโซลูชันที่ไม่เกิดประโยชน์หาก TA ของคุณ แม้ว่าจะมีการกระจายตามพื้นที่กว้าง แต่ก็มีการแปลเป็นภาษาท้องถิ่นโดยเน้นที่ผู้ใช้บางราย เช่น สมมติว่าประมาณ 60% ของผู้ช่วยสอนของคุณอยู่ในสหรัฐอเมริกา 30% ในลอนดอน และอีก 10% ที่เหลือกระจายอยู่ทั่วโลก ในกรณีเช่นนี้ การใช้ CDN จะเป็นการตัดสินใจที่มีเหตุผลสำหรับ 10% หลังเท่านั้น (ในขณะที่ตำแหน่งอื่นจะต้องติดตั้งเซิร์ฟเวอร์ใหม่)
เราจะจัดการกับปัญหาการปรับขนาดได้อย่างไร
ปัจจุบัน หนึ่งในตัวอย่างที่ชัดเจนที่สุดของเราในการปรับขนาดที่ดำเนินการโดยผู้เชี่ยวชาญภายในบริษัท ได้แก่ การสร้างสถาปัตยกรรมที่มีความสามารถในการปรับขนาดสูงสำหรับที่เก็บข้อมูลบนคลาวด์สาธารณะ เช่น AWS, Microsoft Azure, Google Cloud และ Digital Ocean เราใช้สคริปต์การปรับใช้สภาพแวดล้อมอัตโนมัติด้วยความช่วยเหลือของ Terraform ซึ่งเป็นระบบยุคใหม่สำหรับการสร้าง การจัดการ และการกำหนดค่าโครงสร้างพื้นฐานระบบคลาวด์ เรายึดคลัสเตอร์เซิร์ฟเวอร์ของเราบนซอฟต์แวร์ปรับขนาดอัตโนมัติ Kubernetes และเทคโนโลยี Docker ที่สนับสนุนการบรรจุคอนเทนเนอร์
บทสรุป
แหล่งที่มาของรูปภาพ: CDN.Lynda
การควบคุมความสามารถในการปรับขนาดในสภาพแวดล้อมการประมวลผลแบบคลาวด์ด้วยวิธีการข้างต้นและวิธีอื่นๆ ช่วยให้คุณเติบโตได้เร็วและง่ายขึ้น และมีความคล่องตัวตลอดเวลา หากคุณมุ่งมั่นที่จะนำแนวทางการปรับขนาดมาใช้อย่างมีมโนธรรมอย่างเต็มที่ คุณควรติดต่อผู้เชี่ยวชาญอย่างแน่นอน ให้เราค้นหาผู้เชี่ยวชาญ DevOps ที่จะมอบโครงสร้างพื้นฐานเซิร์ฟเวอร์ที่เหมาะสมที่สุดสำหรับธุรกิจเฉพาะของคุณ ซึ่งจะถูกปรับให้รองรับปริมาณงานที่มีความเข้มข้นสูง