ขณะนี้ฉันมีกระบวนการปรับใช้แบบดั้งเดิมที่ทำงานดังนี้:
- มี "ฟังก์ชันการทำงาน" ที่แตกต่างกันมากมาย แต่ละฟังก์ชันทำงานในสภาพแวดล้อมที่แตกต่างกัน แต่มีการสื่อสารข้ามฟังก์ชันอยู่
- มีเครื่องโฮสต์ "Deployer" ซึ่งดึงที่เก็บ git เข้าไปและปรับใช้รหัส/สินทรัพย์กับเครื่อง ECS ต่างๆ
- "ผู้ปรับใช้" จะปรับใช้ฟังก์ชันการทำงานที่แตกต่างกันบนเครื่องต่างๆ ผ่านสคริปต์ทุบตีอัตโนมัติ
- สคริปต์ทุบตี "Deployer" สามารถระบุจำนวนเครื่องและเครื่องที่จะปรับใช้สำหรับแต่ละฟังก์ชัน
- มีไฟล์คอนฟิกสภาพแวดล้อมสำหรับแต่ละฟังก์ชัน และรหัสฟังก์ชันในเครื่องจริงจะอ้างถึง สคริปต์ทุบตี "Deployer" ปรับใช้ไฟล์กำหนดค่าเดียวกันในเซิร์ฟเวอร์ที่มีฟังก์ชันการทำงานเดียวกัน (สภาพแวดล้อมเดียวกัน)
- สำหรับการทำงานแต่ละอย่าง ตัวโหลดบาลานเซอร์จะกระจายคำขอไปยังเครื่องที่เกี่ยวข้องในสภาพแวดล้อมเดียวกันตามกฎการปรับสมดุล
- ทุกเครื่องใช้ระบบปฏิบัติการ CentOS7 เดียวกัน และมีเอกสารคู่มือสำหรับการตั้งค่ายูทิลิตี้ที่จำเป็น (เช่น httpd, PHP, NodeJs, MySQL และไฟล์ปรับแต่ง .etc) สำหรับแต่ละสภาพแวดล้อม การตั้งค่าต้องทำเพียงครั้งเดียวและสามารถทำได้หลายชั่วโมง
ตอนนี้กระแสโฆษณาสำหรับการปรับใช้คอนเทนเนอร์กำลังเป็นที่นิยมมากขึ้น ฉันกำลังพิจารณาว่าฉันควรเปลี่ยนกระบวนการของฉันเป็น Kubernetes (หรือทางเลือกอื่นๆ) หรือไม่
ตามความเข้าใจของฉัน ประโยชน์หลักของการปรับใช้คอนเทนเนอร์และข้อพิจารณาในปัจจุบันของฉันคือ
ความสามารถในการปรับใช้รหัสบนคลาวด์ข้ามผู้ขาย
ความคิดปัจจุบันของฉัน: เนื่องจากทุกคลาวด์รองรับ CentOS7 เอกสารประกอบการตั้งค่าและไฟล์กำหนดค่าจึงควรใช้ได้กับทุกคลาวด์ใช่ไหม (ฉันอยู่ในขั้นตอนการพัฒนาและยังไม่ได้ทดสอบกับผู้ให้บริการระบบคลาวด์จริงๆ และนี่อาจเป็นจุดที่ฉันเข้าใจผิด แต่ในทางทฤษฎีฉันมองไม่เห็นว่ามันใช้งานไม่ได้)
ง่ายต่อการปรับขนาดจำนวนเครื่อง
ความคิดปัจจุบันของฉัน: สคริปต์ทุบตี "Deployer" สามารถระบุจำนวนเครื่องที่จะปรับใช้และเปิดใช้งานโดยอัตโนมัติสำหรับแต่ละฟังก์ชันฉันนึกไม่ออกว่าจะปรับขนาดขึ้น/ลงได้ง่ายขึ้นเมื่อใช้คอนเทนเนอร์ได้อย่างไร
ปรับใช้ได้เร็วขึ้น
ความคิดปัจจุบันของฉัน: ค่าใช้จ่ายหลักในสคริปต์ "Deployer" ของฉันคือการคัดลอกไฟล์เนื้อหาขนาดใหญ่ผ่านเครือข่าย ฉันไม่เห็นว่าสิ่งนี้จะลดลงอย่างมากได้อย่างไรเมื่อใช้คอนเทนเนอร์
การพัฒนาท้องถิ่นอย่างบูรณาการมากขึ้น
ความคิดปัจจุบันของฉัน: การพัฒนาในพื้นที่ปัจจุบันเสร็จสิ้นโดยใช้เครื่องเสมือนคนจรจัด (ทั้งหมดที่มี CentOS7) แทนที่จะใช้คอนเทนเนอร์ และฉันไม่พบว่าไม่สะดวกนัก
ในทางกลับกัน ฉันได้เรียนรู้ว่าข้อบกพร่องสามารถแก้ไขได้ยากมากเมื่อใช้คอนเทนเนอร์ และไฟล์บันทึกอาจจัดการได้ยากมาก ซึ่งเป็นปัญหาร้ายแรง
ฉันค่อนข้างใหม่สำหรับคอนเทนเนอร์และฉันยอมรับว่าฉันเป็นหนึ่งในผู้ที่ดูโฆษณาและพิจารณาที่จะเปลี่ยนจากกระบวนการพัฒนา/การปรับใช้ที่ฉันคุ้นเคย อย่างไรก็ตาม การพิจารณาในปัจจุบันของฉันดูเหมือนจะแนะนำว่าฉันไม่ควรทำตามโฆษณา อาจเป็นเพราะฉันขาดความรู้ มีอะไรที่ฉันพลาดไปไหม ที่เป็นประโยชน์จริงๆ ถ้าฉันเปลี่ยนมาใช้คอนเทนเนอร์