วิธีตรวจสอบความสามารถในการปรับขนาดของคลาวด์ในปี 2566

เผยแพร่แล้ว: 2023-01-11

เนื้อหา

  1. ความสามารถในการปรับขนาดคืออะไร?
    • ทำไมเราต้องให้ความสนใจเป็นพิเศษกับความสามารถในการปรับขนาด?
  2. ประเภทของการปรับขนาด
    • ความสามารถในการปรับขนาดแนวตั้ง - ขยายขนาดขึ้น
    • การปรับขนาดแนวนอน - การปรับขนาดออก
    • การปรับขนาดในแนวทแยง
  3. วิธีตรวจสอบความสามารถในการขยายขนาดสูงสุด
    • ดำเนินการโหลดบาลานซ์
    • หันไปปรับขนาดบริการเว็บอัตโนมัติ
    • คอนเทนเนอร์ Microservices การทำคลัสเตอร์
    • ใช้แคช
    • ใช้บริการ CDN
  4. เราจะจัดการกับปัญหาการปรับขนาดได้อย่างไร
  5. บทสรุป
เนื้อหา

เมื่อปริมาณโหลดทั่วไปในระบบคอมพิวเตอร์เพิ่มมากขึ้น พวกมันจึงปรับตัวและมีความซับซ้อนมากขึ้นในแง่ของสถาปัตยกรรมพื้นฐาน มีการเพิ่มเครื่องมือซอฟต์แวร์ใหม่และการผสานรวมเพื่อเพิ่มประสิทธิภาพ ขยายความจุของเซิร์ฟเวอร์ ฯลฯ

กระบวนการเพิ่มประสิทธิภาพระบบทั้งหมดนี้ถูกกำหนดโดยแนวคิดเดียว - การ ปรับขนาด - หนึ่งในความเชี่ยวชาญพิเศษที่สำคัญของผู้เชี่ยวชาญ 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 ที่จะมอบโครงสร้างพื้นฐานเซิร์ฟเวอร์ที่เหมาะสมที่สุดสำหรับธุรกิจเฉพาะของคุณ ซึ่งจะถูกปรับให้รองรับปริมาณงานที่มีความเข้มข้นสูง