Score:0

แนวทางปฏิบัติที่ดีที่สุดสำหรับการกำหนดเวอร์ชัน VPS

ธง gb

ฉันต้องพัฒนาบริการบางอย่างบน Linux ซอฟต์แวร์ฟรี และแอปพลิเคชันแบบโอเพ่นซอร์สเป็นประจำ ฉันใช้ QEMU เครื่องเสมือนเป็นสภาพแวดล้อมการพัฒนา โดยที่ฉันจะแก้ไขไฟล์บนอินสแตนซ์ที่กำลังรันอยู่โดยตรงและทำการทดสอบไปพร้อมกัน เมื่อทุกอย่างพร้อม ฉันจะคัดลอกไฟล์ทั้งหมดบนเซิร์ฟเวอร์ที่ใช้งานจริง ซึ่งสร้างจากการติดตั้งระบบปฏิบัติการใหม่ พร้อมการกำหนดค่าที่สมบูรณ์ของสภาพแวดล้อมใหม่เห็นได้ชัดว่า เมื่อระบบกำลังใช้งานจริง ฉันต้องซิงโครไนซ์สภาพแวดล้อม 2 แห่งด้วยตนเองเพื่อให้เหมือนกัน เมื่อฉันแก้ไขจุดบกพร่องในการผลิต ฉันจำเป็นต้องแบ็คพอร์ตการแก้ไขในสภาพแวดล้อมการพัฒนา

การพัฒนาประกอบด้วยหลายส่วน:

  • สคริปต์ Linux และการกำหนดค่าซอฟต์แวร์ (/etc, /var/www, /home, ไฟล์ .config, กฎไฟร์วอลล์ ฯลฯ)
  • การพึ่งพา (รายการซอฟต์แวร์ที่จะดาวน์โหลดจากที่เก็บซอฟต์แวร์ (เช่น apt-get install xxx)
  • ใบสมัคร
  • ฐานข้อมูล

ฉันต้องการทราบวิธีสร้างเวอร์ชันที่เหมาะสมของสภาพแวดล้อมที่ซับซ้อนนี้

ฉันลองวิธีต่อไปนี้


สคริปต์สำรองสร้างไฟล์ TAR ที่สมบูรณ์ขององค์ประกอบที่จำเป็นทั้งหมด: สคริปต์สำหรับดาวน์โหลดการอ้างอิงทั้งหมด ไฟล์ทั้งหมดจากแอปพลิเคชัน ไฟล์การกำหนดค่าที่จำเป็นจาก /etc เวอร์ชันล่าสุดของสคริปต์สำรองและกู้คืน ดัมพ์ของฐานข้อมูล ฯลฯ .

สคริปต์การกู้คืนจะลบแอปพลิเคชันปัจจุบันทั้งหมดและแทนที่ด้วยเวอร์ชันที่มีอยู่ในไฟล์ TAR วิธีนี้ใช้ได้ผลแต่ยุ่งยากเล็กน้อย. ต้องให้ความสนใจอย่างมากเพื่อให้แน่ใจว่าสคริปต์การคืนค่าทำงานได้อย่างถูกต้องจากการติดตั้งใหม่


แนวทางนี้อาจไร้สาระเล็กน้อย ฉันยังไม่ได้ทดสอบ แนวคิดก็คือการใช้ Virtual Machine ในสภาพแวดล้อมการผลิตของฉันด้วย ที่นี่ฉันจะคัดลอกเครื่องเสมือนไปยัง VPS และเรียกใช้ QEMU ภายใน VPS เมื่อฉันต้องการสำรองข้อมูล ฉันแค่บันทึกดิสก์ Virtual Machine ไว้ที่ใดที่หนึ่ง อาจไม่มีประสิทธิภาพมากนัก แต่ก็น่าจะพอใช้ได้สำหรับโครงการที่ฉันทำอยู่


ฉันยังไม่ได้ทดสอบวิธีนี้ แต่ฉันคิดเกี่ยวกับมัน แนวคิดคือการใช้ซอฟต์แวร์กำหนดเวอร์ชันของซอฟต์แวร์ เช่น GIT บนระบบไฟล์ทั้งหมดหลังจากติดตั้งระบบปฏิบัติการ ด้วยวิธีนี้ ฉันจะยอมรับการเปลี่ยนแปลงทั้งหมด (ไฟล์ไบนารีและไฟล์ข้อความ)ฉันสามารถเผยแพร่การเปลี่ยนแปลงการผลิตโดยใช้โปรแกรม SCM


วิธีการนี้ขึ้นอยู่กับซอฟต์แวร์เฉพาะ ฉันมองมาทางนี้และได้ยินเกี่ยวกับซอฟต์แวร์ชื่อ Kurbernetes, Puppet หรือชื่ออื่นๆ ดูเหมือนจะซับซ้อนมากในการตั้งค่า และฉันไม่ได้ใช้เวลามากในการตรวจสอบที่นั่น

แนวทางปฏิบัติที่ดีที่สุดเกี่ยวกับการกำหนดเวอร์ชันของสภาพแวดล้อมที่ใช้ Linux คืออะไร

cn flag
Bob
กำหนดเวอร์ชันการกำหนดค่าของคุณโดยใช้ระบบจัดการการกำหนดค่า (เช่น Ansible, Chef เป็นต้น) และเก็บ playbooks/สูตรอาหารของคุณภายใต้การควบคุมเวอร์ชัน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา