1
กลยุทธ์การอัพเดทอัตโนมัติของซอฟต์แวร์ / เฟิร์มแวร์
ฉันมีโครงการขนาดกลางแล้วตอนนี้ใกล้จะสิ้นสุด "เฟสต้นแบบที่ขับเคลื่อนด้วยคาเฟอีนแบบเลอะเทอะสำหรับการสาธิตลูกค้า" และเปลี่ยนเป็นเฟส "คิดเกี่ยวกับอนาคต" โครงการประกอบด้วยอุปกรณ์ที่ใช้ Linux พร้อมซอฟต์แวร์และเฟิร์มแวร์และเว็บเซิร์ฟเวอร์การบริหารส่วนกลาง 10 ต้นแบบที่มีอยู่ในปัจจุบันการผลิตคาดว่าจะอยู่ในลำดับต่ำ 1,000 การไม่ได้มีความเชี่ยวชาญในการอัปเดตอัตโนมัติและเป็นระยะเวลาสั้น ๆ ฉันได้เปิดตัวการปรับใช้ซอฟต์แวร์ / กลยุทธ์การอัพเดทอัตโนมัติอย่างรวดเร็วและตรงไปตรงมามันแย่มาก ปัจจุบันประกอบด้วยดังต่อไปนี้: git repo โฮสต์ (GitLab) ที่มีสาขารีลีสการผลิต (หมายเหตุแหล่งที่มาของเว็บเซิร์ฟเวอร์นั้นอยู่ใน repo เดียวกันนี้รวมถึงสิ่งอื่น ๆ อีกสองสามรายการ) ปุ่ม "ปรับใช้การอัปเดต" บนเว็บอินเตอร์เฟสที่: ดึงเวอร์ชันล่าสุดจากสาขารีลีสการผลิตไปยังพื้นที่ repo ท้องถิ่นและคัดลอกไปยังพื้นที่จัดเตรียมชั่วคราว รันสคริปต์การฆ่าเชื้อ (เก็บไว้ใน repo) ในพื้นที่จัดเตรียมเพื่อลบไฟล์ต้นฉบับที่ไม่เกี่ยวข้อง (เช่นแหล่งเซิร์ฟเวอร์, แหล่งเฟิร์มแวร์ ฯลฯ ) และไฟล์. git เขียนแฮช git ปัจจุบันไปยังไฟล์ในแพ็คเกจการอัพเดท (จุดประสงค์จะชัดเจนด้านล่าง) หากทุกอย่างเป็นไปด้วยดีมันจะบีบอัดไฟล์และทำให้พร้อมที่จะให้บริการโดยเขียนทับแพ็กเกจ gzipped ก่อนหน้าด้วยไฟล์ชื่อเดียวกันจากนั้นลบพื้นที่จัดเตรียม โปรดทราบว่าขณะนี้มีซอฟต์แวร์อุปกรณ์ปัจจุบันสองสำเนาบนเซิร์ฟเวอร์ซึ่งคาดว่าจะซิงค์: …