TL; DR: สร้างซ้ำซ้อนโมดูลาร์; ทดสอบความพร้อมใช้งาน ตรวจสอบอย่างใกล้ชิด
หลังจากตระหนักว่าการพยายามบีบในคำอธิบายใด ๆ อาจใช้เวลานานมากดังนั้นฉันจะจดบันทึกข้อสังเกตทั้งหมดที่ฉันทำไว้
การซักถามหลักฐาน
ระบบคลาวด์เป็นยาครอบจักรวาล
แม้ว่าคุณจะอยู่บนคลาวด์อย่างเต็มที่กับผู้ให้บริการคลาวด์ชั้นนำคุณยังจะต้องออกแบบแอปพลิเคชันของคุณเพื่อความยืดหยุ่น AWS อาจแทนที่ VM ของคุณ แต่แอปพลิเคชันของคุณควรสามารถรีสตาร์ทได้หากปล่อยให้อยู่ในระหว่างการคำนวณ
เราไม่ต้องการใช้ระบบคลาวด์เนื่องจาก x / y / z
หากคุณไม่ได้เป็นองค์กรขนาดใหญ่เป็นพิเศษคุณจะดีขึ้นโดยใช้ระบบคลาวด์ ระบบคลาวด์ชั้นนำ 3 (AWS, MSFT, Google) จ้างวิศวกรหลายพันคนเพื่อให้ SLA ที่สัญญาไว้แก่คุณและจัดการแดชบอร์ดได้ง่าย จริง ๆ แล้วมันเป็นการต่อรองราคาที่ดีเพื่อใช้แทนการใช้จ่ายเล็กน้อยในบ้านนี้
ปัญหาในการกำหนดขอบเขตและการออกแบบ
การกำหนดปริมาณและการวัดความพร้อมใช้งานของบริการอย่างต่อเนื่องเป็นความท้าทายที่ยิ่งใหญ่กว่าการเขียนวิธีแก้ปัญหาความพร้อมใช้งาน
การกำหนดและการวัด 'ความพร้อมใช้งาน' นั้นยากกว่าที่คาดไว้
ผู้มีส่วนได้ส่วนเสียหลายคนมีมุมมองที่แตกต่างกันของความพร้อมใช้งานและสิ่งที่อาจเกิดขึ้นคือคำจำกัดความของบุคคลที่มีเงินเดือนสูงกว่าคำนิยามอื่น ๆ บางครั้งนี่เป็นคำจำกัดความที่ถูกต้อง แต่บ่อยครั้งที่ระบบนิเวศไม่ได้ถูกสร้างขึ้นรอบ ๆ การวัดสิ่งเดียวกันเพราะคำจำกัดความในอุดมคตินั้นมีความยุ่งยากในการวัด หากคุณมีคำจำกัดความของความพร้อมใช้งานที่ไม่สามารถตรวจสอบได้แบบเรียลไทม์คุณจะพบโครงการที่คล้ายกันที่ทำเองของคุณซ้ำแล้วซ้ำอีกด้วยความคล้ายคลึงที่น่าขนลุก ติดกับสิ่งที่ทำให้รู้สึกและสิ่งที่สามารถตรวจสอบได้ง่าย
คนดูถูกความซับซ้อนของระบบที่มีอยู่เสมอ
ในการพูดถึงช้างในห้องฉันขอพูดว่า: "ไม่มีคอมพิวเตอร์หลายเครื่องที่สามารถใช้งานได้ 100% มันอาจจะเกิดขึ้นในอนาคต แต่อาจไม่ได้ใช้เทคโนโลยีในปัจจุบัน" ที่นี่ด้วยเทคโนโลยีปัจจุบันฉันหมายถึงเราไม่สามารถส่งสัญญาณได้เร็วกว่าความเร็วแสงและสิ่งต่าง ๆ วิศวกร comp-sci ทุกคนมีความรู้เรื่องข้อ จำกัด การคำนวณแบบกระจายและส่วนใหญ่จะไม่พูดถึงมันในการประชุมเพราะกลัวว่าพวกเขาจะดูเหมือนไม่มีอะไรเลย เพื่อชดเชยกับทุกคนที่ไม่ได้พูดถึงข้อ จำกัด ในการคำนวณแบบกระจายฉันจะบอกว่ามันซับซ้อน แต่ไม่เชื่อถือคอมพิวเตอร์เสมอไป
ผู้คนประเมินค่าสูงเกินไป / ความสามารถของวิศวกร
น่าเสียดายที่ความพร้อมใช้งานอยู่ในหมวดหมู่ซึ่งคุณไม่ทราบว่าคุณต้องการอะไร แต่คุณรู้ว่าไม่ต้องการ มันค่อนข้างยากที่หมวดหมู่ 'ทราบความต้องการ' เช่น UI ต้องใช้ประสบการณ์เล็กน้อยและการอ่านจำนวนมากเพื่อเรียนรู้จากประสบการณ์ของผู้อื่นและอีกมากมาย
การสร้างระบบที่พร้อมใช้งานจากบริเวณโดยรอบ
ตรวจสอบให้แน่ใจว่าคุณจะประกาศข่าวประเสริฐแก่ทุกสถาปัตยกรรมและทีมออกแบบเกี่ยวกับความสำคัญของความพร้อมใช้งานตามความต้องการของระบบ
คุณสมบัติของระบบช่วยให้มีความพร้อมใช้งาน
ลักษณะของระบบต่อไปนี้แสดงให้เห็นว่ามีส่วนร่วมในความพร้อมของระบบ:
ความฟุ่มเฟือย
ตัวอย่างของสิ่งนี้คือต้องไม่มี VM เพียงอันเดียวที่อยู่เบื้องหลัง VIP หรือไม่เคยเก็บข้อมูลของคุณเพียงสำเนาเดียว เหล่านี้เป็นคำถามที่ IAAS ที่ดีจะช่วยให้คุณแก้ปัญหาได้ง่ายขึ้น แต่คุณยังต้องทำการตัดสินใจเหล่านี้
modularity
RESTแบบแยกส่วนนั้นดีกว่า SOA แบบเสาหิน MICROSERVICE แม้ modular เป็นจริงมีมากขึ้นกว่าปกติHATEOS REST เหตุผลสามารถพบได้ในการอภิปรายที่เกี่ยวข้องกับผลตอบแทนในหัวข้อถัดไป หากคุณทำการประมวลผลแบบแบตช์ดีกว่าการประมวลผลแบบกลุ่มในชุดที่เหมาะสมที่ 10 เมื่อเทียบกับการจัดการกับชุด 1,000,000
ความยืดหยุ่น
"I am always angry"
- Hulk
ระบบที่ยืดหยุ่นนั้นพร้อมที่จะกู้คืนได้เสมอ ความยืดหยุ่นนี้ใช้กับอินสแตนซ์เช่นการยอมรับ ACK สำหรับการเขียนหลังจากเขียนไปยังดิสก์ RAID และอาจมีศูนย์ข้อมูลอย่างน้อยสองแห่ง แนวโน้มล่าสุดคือการใช้โครงสร้างข้อมูลที่ปราศจากความขัดแย้งซึ่งโครงสร้างข้อมูลจะรับผิดชอบในการแก้ไขข้อขัดแย้งเมื่อนำเสนอด้วยสองเวอร์ชันที่แตกต่างกัน ระบบไม่สามารถยืดหยุ่นได้ในเวลาต่อมาจึงต้องมีการคาดการณ์และสร้างขึ้น รับประกันความล้มเหลวในระยะยาวดังนั้นเราควรเตรียมแผนการกู้คืนเสมอ
บันทึกเส้นทาง
นี่เป็นเทคนิคย่อยของความยืดหยุ่น แต่เป็นสิ่งที่พิเศษมากเพราะมันจับความสามารถทั้งหมดได้ แม้จะมีความพยายามอย่างดีที่สุด แต่เราอาจไม่สามารถคาดการณ์รูปแบบการใช้งานไม่ได้ ถ้าเป็นไปได้ให้ดูแลบันทึกการใช้งานของระบบให้เพียงพอเพื่อให้สามารถเล่นเหตุการณ์ของระบบได้ ด้วยค่าใช้จ่ายที่ดีเยี่ยมนี้จะช่วยให้คุณสามารถกู้คืนจากสถานการณ์ที่ไม่คาดฝัน
คุณสมบัติของความพร้อม
รายการแอตทริบิวต์ที่ไม่ต้องคำนึงถึงด้านบนของใจ 'ว่าง': เพื่อประโยชน์ในการอภิปรายสมมติว่าคำถามที่ผู้ใช้ถามคือ "ฉันมีสินค้ากี่ชิ้นในตะกร้าสินค้าของฉัน"
ความถูกต้อง
คุณต้องสร้างคำตอบที่ถูกต้องที่สุดหรือผิดพลาดหรือไม่? สำหรับการอ้างอิงเมื่อคุณถอนเงินจาก ATM นั้นจะไม่รับประกันว่าถูกต้อง หากธนาคารพบว่าทำผิดอาจเป็นไปได้ที่คุณจะกลับรายการ หากระบบของคุณผลิตตัวเลขเฉพาะฉันจะเดาคุณอาจต้องการคำตอบที่ถูกต้องตลอดเวลา
ผล
ข้ามจุดนี้หากคุณตอบถูกต้องเสมอสำหรับคำถามหัวข้อก่อนหน้า บางครั้งคำตอบของคำถามไม่จำเป็นต้องแม่นยำเช่นตอนนี้ฉันมีเพื่อนบน Facebook กี่คน? แต่คำตอบคาดว่าจะอยู่ใน ballpark +/- 1 ตลอดเวลา เมื่อคุณสร้างผลลัพธ์ที่คาดหวังผลตอบแทนของคุณคือ 100
ความมั่นคง
คำตอบของคุณอาจถูกต้อง ณ จุดหนึ่ง แต่ตามเวลาที่แสงออกจากหน้าจอและเข้าสู่เรตินาของผู้สังเกตการณ์สิ่งต่าง ๆ อาจมีการเปลี่ยนแปลง มันทำให้คำตอบของคุณผิดหรือเปล่า? ไม่มันทำให้มันไม่สอดคล้องกัน แอปพลิเคชันส่วนใหญ่มีความสอดคล้องกันในที่สุด แต่เคล็ดลับคือการกำหนดรูปแบบความสอดคล้องของแอปพลิเคชันของคุณ โดยปิดโอกาสที่โปรแกรมของคุณสามารถทำงานบนคอมพิวเตอร์เครื่องเดียวคุณสามารถข้ามนี้การอ่านที่น่ารักในCAP ทฤษฎีบท
ราคา
มากขึ้นอยู่กับผลกระทบทั้งหมดของผลกระทบระยะสั้น (การสูญเสียรายได้) และผลกระทบระยะยาว (ชื่อเสียงไม่ดีการรักษาลูกค้า) ขึ้นอยู่กับประเภทของลูกค้า (การชำระเงิน / ฟรีทำซ้ำ / ไม่ซ้ำกันเป็นเชลย) และความพร้อมใช้งานของทรัพยากรระดับต่าง ๆ ของการรับประกันความพร้อมใช้งานควรถูกสร้างขึ้น
การปรับปรุงความพร้อมใช้งานของระบบที่มีอยู่
การจัดการการปฏิบัติงานของเครื่องแต่ละเครื่องและเครือข่ายนั้นซับซ้อนเช่นกันซึ่งฉันคิดว่าคุณได้ทิ้งมันไว้กับผู้ให้บริการคลาวด์หรือคุณมีความเชี่ยวชาญเพียงพอที่จะรู้ว่าคุณกำลังทำอะไรอยู่ ฉันจะสัมผัสหัวข้ออื่น ๆ ภายใต้ความพร้อมใช้งาน สำหรับกลยุทธ์ระยะยาวDefine-Measure-Analyze-Controlคือการแข่งขันสวรรค์สิ่งที่ฉันได้เห็นตัวเอง
- กำหนดสิ่งที่ 'ว่าง' กับผู้มีส่วนได้เสียของคุณ
- คุณจะวัดสิ่งที่คุณกำหนดไว้อย่างไร
- การวิเคราะห์สาเหตุที่แท้จริงเพื่อระบุคอขวด
- ภารกิจสำหรับการปรับปรุง
- การตรวจสอบอย่างต่อเนื่อง ( ควบคุม ) ของระบบ
สาเหตุของการไม่พร้อมใช้งาน
เนื่องจากเราเห็นพ้องกันว่าการจัดการการปฏิบัติงานซึ่งจะครอบคลุมการจัดการโครงสร้างพื้นฐานทางกายภาพใด ๆ ควรจะทำโดยผู้เชี่ยวชาญฉันจะสัมผัสสาเหตุอื่น ๆ ของความไม่พร้อมใช้งานเพื่อความสมบูรณ์ ความพร้อมใช้งานของ IMO ควรรวมถึงการขาดพฤติกรรมที่คาดหมายซึ่งหมายความว่าหากผู้ใช้ไม่ได้รับประสบการณ์ที่คาดหวังแสดงว่ามีบางอย่างไม่พร้อมใช้งาน ด้วยคำจำกัดความกว้าง ๆ ดังต่อไปนี้อาจทำให้ไม่สามารถใช้งานได้: - ข้อบกพร่องของรหัส - อุบัติการณ์ด้านความปลอดภัย - ปัญหาด้านประสิทธิภาพ