ในขณะที่มี Docker ภูมิภาคที่ทับซ้อนกันเล็ก ๆ และระบบบรรจุภัณฑ์ Debian เป็นหลักแก้ปัญหาที่แตกต่างกันสองอย่าง :
ระบบบรรจุภัณฑ์ Debian ถูกสร้างขึ้นเพื่อติดตั้งซอฟต์แวร์บนโฮสต์และอัปเกรดได้ง่ายที่สุด สามารถจัดการการพึ่งพาที่ซับซ้อนและรูปแบบข้อ จำกัด ระหว่างส่วนประกอบซอฟต์แวร์เช่น“ ซอฟต์แวร์ X เวอร์ชั่น A ต้องใช้ซอฟต์แวร์ Y ที่ติดตั้งเวอร์ชัน B หรือใหม่กว่า” หรือ“ ไม่ควรติดตั้งซอฟต์แวร์ X ด้วยซอฟต์แวร์ Z version C”
ระบบนักเทียบท่าเข้าใจง่ายในการอธิบายและปรับใช้บริการโดยเฉพาะอย่างยิ่งบริการไมโครอาจเป็นไปได้ที่โฮสต์หลายแห่ง - เช่น Docker Swarm หรือคลัสเตอร์ Kubernetes
ปัญหาทั้งสองนี้เป็นมุมฉากซึ่งหมายความว่าเมื่อได้รับปัญหาการปรับใช้เพื่อแก้ปัญหาหนึ่งสามารถใช้หนึ่งในนั้นทั้งสองอย่างหรืออาจจะไม่มีเลยซึ่งเป็นส่วนหนึ่งของการแก้ปัญหา เมื่อใช้ทั้งคู่แพ็กเกจ Debian จะใช้ในการผลิตอิมเมจ Docker และ Dockerfile ของคุณ (สูตรที่ใช้ในการเตรียมอิมเมจ Docker ที่อธิบาย "ระบบเสมือนจริง" ที่วิ่งในคอนเทนเนอร์) จะลงทะเบียนที่เก็บ Debian ของคุณเป็นหลัก แหล่งที่มาของระบบบรรจุภัณฑ์ Debian และติดตั้งแพ็คเกจของคุณ
จากสิ่งนี้ในใจฉันคิดว่าสิ่งที่คุณกำลังมองหาคือการนำรูปแบบเซิร์ฟเวอร์ที่ไม่เปลี่ยนรูปแบบมาใช้. การพัฒนาเมื่อเร็ว ๆ นี้ในเทคโนโลยีคลาวด์ทำให้สามารถอัพเกรดซอฟต์แวร์ได้โดยไม่ต้องใช้ระบบอัพเกรดซอฟต์แวร์แบบคลาสสิกจากระบบซอฟต์แวร์แพ็กเกจ (เช่นระบบบรรจุภัณฑ์ Debian) แต่เพียงแค่เปลี่ยนเซิร์ฟเวอร์เต็มทันที (บางคนทำสิ่งนี้มาก่อนการพัฒนานี้โดยมีสาม OS-s บนเซิร์ฟเวอร์สองตัวเลือกที่จะใช้ในการเรียกใช้อุปกรณ์และ mini-OS โดยเฉพาะเพื่อทำการเปลี่ยนอุปกรณ์ในขณะที่ไม่ซับซ้อนเกินไปดูเหมือนว่าจะยังคงเป็น โพรง.) เทคนิคนี้อาจเป็นที่สนใจสำหรับคุณเพราะถ้าคุณเคยใช้ในการอัพเกรดซอฟต์แวร์บนเซิร์ฟเวอร์ของคุณโดยใช้ตัวจัดการแพคเกจสถานะสุดท้ายของเซิร์ฟเวอร์ขึ้นอยู่กับ "ประวัติการอัพเกรด" ของเซิร์ฟเวอร์ - โดยเฉพาะอย่างยิ่งหากเกิดข้อผิดพลาดใน กระบวนการอัพเกรด ความแตกต่างนี้ไม่ดี
เรามีกล่องเหล่านี้หลายพันกล่องบนสนาม เราจัดการการขึ้นต่อกันของแพ็คเกจการลงทะเบียนกระบวนการ ฯลฯ ผ่านแพคเกจเดบิตที่มีระดับความสำเร็จที่แตกต่างกัน
สามารถเกี่ยวข้องกับเรื่องนี้ รูปแบบเซิร์ฟเวอร์ที่ไม่เปลี่ยนรูปแบบจะทำความสะอาดแหล่งที่มาของข้อผิดพลาดโดยการทำลายแนวคิดเรื่อง "ประวัติการอัปเกรด" จากปัญหา
ขณะนี้มีตัวเลือกมากมายในการใช้รูปแบบเซิร์ฟเวอร์ที่ไม่เปลี่ยนรูปแบบตัวเลือกยอดนิยมสองตัวเลือกคือการใช้อิมเมจ Docker, อิมเมจหรือใช้ "อิมเมจต้นแบบอินสแตนซ์" จากผู้ให้บริการคลาวด์ของคุณ . กรณีการใช้งานของคุณห้ามการใช้เทคนิคคลาวด์ดังนั้นฉันจะถือว่าภาพ Docker เป็นตัวเลือกที่มีสิทธิ์เท่านั้น (เพื่อประโยชน์ในการสำเร็จเป็นไปได้อย่างแน่นอนที่จะใช้วิธีการอื่นเช่นการใช้ Virtual Box หรือโซลูชัน virtualisation ที่คล้ายกันเป็นทางเลือกแทน Docker)
เมื่อใช้เทคนิครูปแบบเซิร์ฟเวอร์ที่ไม่เปลี่ยนรูปแบบคุณแนะนำสิ่งประดิษฐ์ใหม่ (อิมเมจ Docker) ที่แสดงถึงเซิร์ฟเวอร์ของคุณและสิ่งประดิษฐ์นี้สามารถทดสอบได้เช่นกันและเป็นเรื่องง่ายมากที่จะได้รับการตั้งค่าจำลองการตั้งค่าจริงของคุณ
ทีนี้เพื่อพิจารณาปัญหาที่เป็นรูปธรรมที่คุณอธิบายลองสมมติว่าใช้รูปแบบเซิร์ฟเวอร์ที่ไม่เปลี่ยนรูปได้กับ Docker นั้นเป็นสิ่งที่คุณต้องการ เนื่องจากระบบนักเทียบท่าและระบบบรรจุภัณฑ์ของเดเบียนนั้นเป็นส่วนเสริมแทนที่จะเป็นเอกสิทธิ์เฉพาะด้านร่วมกัน (แนะนำภายใน) เรายังคงต้องตอบคำถามหากคุณควรเตรียมแพ็คเกจ Debian สำหรับซอฟต์แวร์ของคุณ
ความเกี่ยวข้องของการใช้แพ็คเกจ Debian เพื่อติดตั้งซอฟต์แวร์ของคุณ (ในอิมเมจ Docker หรือบนโฮสต์) อยู่ในความซับซ้อนของปัญหาการกำหนดเวอร์ชันที่คุณต้องแก้ไข หากคุณเรียกใช้ซอฟต์แวร์หลายรุ่นในเวลาเดียวกันจำเป็นต้องปรับลดรุ่นเป็นครั้งคราวและมีข้อกำหนดรุ่นที่ซับซ้อนที่คุณต้องจัดทำเอกสารอย่างรอบคอบการมีแพ็คเกจ Debian เป็นสิ่งที่ไม่ควรพลาด มิฉะนั้นขั้นตอนนี้สามารถข้ามได้ - แต่เนื่องจากคุณได้พยายามสร้างและปรับใช้แพ็กเกจเหล่านี้แล้วจึงไม่มีคุณค่าที่แท้จริงสำหรับการทำงานของคุณ ดังนั้นฉันขอแนะนำให้ผลิตแพ็คเกจ Debian ของคุณต่อไป