Take, for example, what you would normally think of as a simple case: the provisioning of a server or cloud instance from zero to production:
Bare metal (or cloud-compute instance) is made available.
Base operating system is installed via PXE (preboot execution environment) or machine image.
Operating-system-level configurations are put into place (via configuration management or machine image).
Application-level configurations are put into place (via configuration management, app deployment, or machine image).
Application code is put into place and underlying services are started correctly (via configuration management, app deployment, or machine image).
Systems integration takes place in the network (load balancers, VLANs, routing, switching, DNS, etc.).
Why production? Why not simulate this in a QA or staging environment? First, the existence of any differences in those environments brings uncertainty to the exercise, and second, the risk of not recovering has no consequences during testing, which can bring hidden assumptions into the fault-tolerance design and into recovery. The goal is to reduce uncertainty, not increase it.
Forcing failures to happen, or even designing systems to fail on their own, generally isn't easily sold to management. Engineers are not conditioned to embrace their ability to respond to emergencies; they aim to avoid them altogether. Taking a detailed look at how to respond better to failure is essentially accepting that failure will happen, which you might think is counter to what you want in engineering, or in business.
ใช้ , ตัวอย่างเช่น , สิ่งที่ปกติคุณจะคิดว่าเป็นกรณีง่าย : ระบบของเซิร์ฟเวอร์ หรืออินสแตนซ์เมฆจากศูนย์การผลิต :
โลหะเปลือย ( หรือเมฆคำนวณตัวอย่าง ) มีอยู่ .
ฐานระบบปฏิบัติการติดตั้งผ่าน PXE ( สภาพแวดล้อมในการดําเนินการ preboot ) หรือเครื่องระดับปฏิบัติการ
แบบภาพ ระบบจะใส่ลงไปในสถานที่ ( ผ่านการใช้งาน หรือ รูปเครื่อง )การตั้งค่าระดับ
จะถูกใส่เข้าไปในสถานที่ ( ผ่านการจัดการ การใช้งาน app การตั้งค่าหรือภาพเครื่อง ) .
รหัสใบสมัครจะถูกใส่ลงไปในสถานที่และการบริการพื้นฐานเริ่มต้นอย่างถูกต้อง ( ผ่านการจัดการ การใช้งาน app การตั้งค่าหรือภาพเครื่อง ) บูรณาการ
ระบบจะเกิดขึ้นในเครือข่าย ( โหลด balancers VLANs , เส้นทาง , เปลี่ยน , DNS , ฯลฯ ) .
ทำไมการผลิต ?ทำไมไม่ใช้นี้ใน QA หรือสภาพแวดล้อมการ ? แรก , การดำรงอยู่ของความแตกต่างในสภาพแวดล้อมเหล่านั้นนำความไม่แน่นอนในการออกกำลังกาย และ สอง เสี่ยงไม่หายไม่มีผลในการทดสอบสมมติฐาน ซึ่งสามารถนำมาซ่อนไว้ในความผิดต่อการออกแบบและในการกู้คืน เป้าหมายคือเพื่อลดความไม่แน่นอน ไม่เพิ่มแล้ว
แต่ความล้มเหลวที่จะเกิดขึ้นหรือแม้กระทั่งออกแบบระบบล้มเหลวของตัวเอง โดยทั่วไปไม่สามารถขายให้กับผู้บริหาร วิศวกรไม่ปรับอากาศเพื่อโอบกอด ความสามารถในการตอบสนองฉุกเฉิน พวกเขามุ่งมั่นที่จะหลีกเลี่ยงพวกเขาทั้งหมด การดูรายละเอียดวิธีการตอบสนองดีกว่าที่จะล้มเหลวเป็นหลักยอมรับว่า ความล้มเหลวจะเกิดขึ้นได้ ซึ่งคุณอาจจะคิดว่ามันสวนทางกับสิ่งที่คุณต้องการในวิศวกรรม
หรือในธุรกิจ
การแปล กรุณารอสักครู่..