ฉันควรหยุดปฏิบัติต่อแอปเป็นการทดสอบเมื่อใด
การเปลี่ยนแปลงควรเกิดขึ้นทันทีที่ซอฟต์แวร์ของคุณเปลี่ยนจาก 'น่ามี' เป็น 'สําคัญ' สําหรับผู้ใช้ของคุณ หากการหยุดทํางาน 15 นาทีส่งผลให้เกิดการสูญเสียทางการเงินอย่างมีนัยสําคัญหรือการเลิกใช้ของผู้ใช้ คุณได้ย้ายเข้าสู่ขอบเขตโครงสร้างพื้นฐานและต้องปรับการทดสอบและความเข้มงวดในการปรับใช้ให้เหมาะสม
ซอฟต์แวร์โครงสร้างพื้นฐานใช้ภาษาโปรแกรมที่แตกต่างกันหรือไม่
แม้ว่าภาษาใดก็ได้สามารถใช้ได้ทั้งสองอย่าง แต่โครงสร้างพื้นฐานมักจะเอนเอียงไปทางภาษาที่คอมไพล์ด้วยการพิมพ์ที่แข็งแกร่ง เช่น Go, Rust หรือ C++ เพื่อประสิทธิภาพและความปลอดภัย ซอฟต์แวร์ทดลองมักใช้ภาษาระดับสูงที่ยืดหยุ่น เช่น Python หรือ Ruby ซึ่งช่วยให้สร้างต้นแบบได้เร็วขึ้นและเปลี่ยนไวยากรณ์ได้ง่ายขึ้น
หนี้ทางเทคนิคไม่ดีเสมอในซอฟต์แวร์ทดลองหรือไม่?
ไม่จําเป็น. ในการทดลอง หนี้ทางเทคนิคก็เหมือนกับเงินกู้ดอกเบี้ยสูงที่ช่วยให้คุณซื้อบ้านได้เร็วขึ้น มันจะกลายเป็นหนี้ที่ 'ไม่ดี' ก็ต่อเมื่อคุณไม่เคยชําระคืนหรือถ้าคุณพยายามสร้างตึกระฟ้า (โครงสร้างพื้นฐาน) บนฐานรากชั่วคราวนั้น
กลยุทธ์การทดสอบแตกต่างกันอย่างไรระหว่างทั้งสอง?
การทดสอบมุ่งเน้นไปที่การทดสอบ 'Happy Path' ซึ่งเป็นการตรวจสอบว่าคุณลักษณะหลักใช้ได้กับผู้ใช้ทั่วไปหรือไม่ การทดสอบโครงสร้างพื้นฐานหมกมุ่นอยู่กับ 'Edge Cases' และ 'Chaos Engineering' ซึ่งนักพัฒนาจงใจทําลายส่วนต่างๆ ของระบบเพื่อดูว่าส่วนที่เหลือสามารถอยู่รอดจากแรงกระแทกได้หรือไม่
บริษัทเดียวสามารถจัดการทั้งสองแนวทางพร้อมกันได้หรือไม่?
ใช่และคนที่ประสบความสําเร็จมากที่สุดก็ทํา พวกเขามักใช้กลยุทธ์ 'Bimodal IT' โดยที่ทีมหนึ่งรักษาระบบหลักที่เสถียร (โครงสร้างพื้นฐาน) ในขณะที่อีกทีมหนึ่งที่คล่องตัวสํารวจพรมแดนใหม่ (การทดลอง) ความท้าทายคือการจัดการการส่งต่อระหว่างสองวัฒนธรรมนี้
อะไรคือความเสี่ยงที่ใหญ่ที่สุดของการอยู่ในระยะ 'การทดลอง' นานเกินไป?
ความเสี่ยงที่ใหญ่ที่สุดคือ 'ความเปราะบางของระบบ' เมื่อคุณเพิ่มฟีเจอร์เพิ่มเติมให้กับการทดสอบที่สร้างขึ้นอย่างหลวมๆ ความซับซ้อนจะเพิ่มขึ้นอย่างทวีคูณ ในที่สุดระบบก็เปราะบางมากจนการเปลี่ยนแปลงเล็กน้อยทําให้ชิ้นส่วนที่ไม่เกี่ยวข้องแตกหัก ซึ่งหยุดนวัตกรรมในอนาคตทั้งหมดได้อย่างมีประสิทธิภาพ
เหตุใดเอกสารจึงมีความสําคัญต่อโครงสร้างพื้นฐานมากขึ้น
โครงสร้างพื้นฐานเป็นทรัพยากรที่ใช้ร่วมกันซึ่งมีอายุยืนยาวกว่าผู้สร้างดั้งเดิม หากไม่มีเอกสารเชิงลึก ผู้ที่ดูแลระบบในอีกห้าปีข้างหน้าจะไม่เข้าใจ 'เหตุผล' ที่อยู่เบื้องหลังตัวเลือกความปลอดภัยหรือประสิทธิภาพที่เฉพาะเจาะจง ซึ่งนําไปสู่ข้อผิดพลาดที่เป็นอันตรายระหว่างการอัปเดตในอนาคต
'โครงสร้างพื้นฐาน' หมายถึงเซิร์ฟเวอร์ระบบคลาวด์และฐานข้อมูลเท่านั้นหรือไม่
ไม่ มันหมายถึงบทบาทของซอฟต์แวร์ ไลบรารีการรับรองความถูกต้องหลักที่ใช้โดยแอปหลายพันแอปคือ 'โครงสร้างพื้นฐาน' แม้ว่าจะเป็นเพียงโค้ดชิ้นหนึ่งก็ตาม หากผู้คนสร้างบนมัน มันก็คือโครงสร้างพื้นฐาน หากผู้คนใช้มันเพื่อดูว่าไอเดียได้ผลหรือไม่ มันก็เป็นการทดลอง