บริษัท ที่ฉันทำงานอยู่ตอนนี้ยังไม่ได้ใช้การจัดส่งอย่างต่อเนื่อง เรายังคงปรับใช้โครงการด้วยตนเองไปยังเซิร์ฟเวอร์โดยไฟล์ วิธีปฏิบัติที่ดีที่สุด: การปรับใช้สิ่งประดิษฐ์โครงการหนึ่งด้วยตนเองสำหรับการปรับใช้แต่ละครั้งหรือทำการปรับใช้แบบไฟล์ต่อไฟล์
บริษัท ที่ฉันทำงานอยู่ตอนนี้ยังไม่ได้ใช้การจัดส่งอย่างต่อเนื่อง เรายังคงปรับใช้โครงการด้วยตนเองไปยังเซิร์ฟเวอร์โดยไฟล์ วิธีปฏิบัติที่ดีที่สุด: การปรับใช้สิ่งประดิษฐ์โครงการหนึ่งด้วยตนเองสำหรับการปรับใช้แต่ละครั้งหรือทำการปรับใช้แบบไฟล์ต่อไฟล์
คำตอบ:
แนวปฏิบัติที่ดีที่สุดคืออะไร การปรับใช้สิ่งประดิษฐ์โครงการหนึ่งด้วยตนเองในแต่ละการปรับใช้หรือทำไฟล์โดยการปรับใช้ไฟล์?
ทั้ง
แนวทางปฏิบัติที่ดีที่สุดคือทำให้การใช้งานของคุณเป็นไปโดยอัตโนมัติสมบูรณ์และเฉพาะเจาะจง นั่นหมายความว่าไม่มีใครสามารถวางอะไรบนเซิร์ฟเวอร์ด้วยตนเอง
"เพื่อสรุปผลสรุปของสรุป: ผู้คนมีปัญหา" (ดักลาสอดัมส์)
ผู้คนทำผิดพลาด หากหนึ่งในไฟล์ที่คุณลืมที่จะคัดลอกข้ามเป็น "ห้องสมุด" ที่แชร์กันซึ่งมีการเปลี่ยนแปลงอย่างกว้างขวางคุณสามารถทำให้ไซต์การผลิตทั้งหมดหยุดทำงาน
ขั้นตอนแบบแมนนวลใช้ความพยายามอย่างมากและมีความเสี่ยง: คุณอาจลืมไฟล์ที่จำเป็น บางทีทุกคนในทีมของคุณอาจไม่รู้ว่าต้องคัดลอกไฟล์ใด ปัญหาทั้งหมดเหล่านี้ทำให้การปรับใช้มีขนาดใหญ่น่ากลัวและหายาก - ไม่จำเป็นอย่างสมบูรณ์ ระบบอัตโนมัติจัดการกับสิ่งเหล่านี้
แม้แต่ขั้นตอนอัตโนมัติที่ง่ายที่สุดยังมีประโยชน์มากเพราะการปรับใช้กลายเป็นเรื่องเล็กน้อย สคริปต์ที่คัดลอกไฟล์หรือสิ่งประดิษฐ์ผ่าน (S) FTP หรือ Rsync หรือเทคโนโลยีอื่นเป็นขั้นตอนแรกที่ยอดเยี่ยม คุณสามารถขยายสคริปต์นั้นเพื่อดำเนินการขั้นตอนก่อนการปรับใช้และหลังการปรับใช้บนเซิร์ฟเวอร์โดยอัตโนมัติเช่นเริ่มบริการใหม่
วิธีปฏิบัติที่ดีที่สุดคือการใช้กระบวนการอัตโนมัติบางประเภท
โปรดระมัดระวังในการตรวจสอบว่าไม่มีเหตุผลพิเศษสำหรับวิธีการ 'file by file' ซึ่งคุณต้องคำนึงถึง
ด้วยการจัดส่งอย่างต่อเนื่อง (หรือการใช้งานจริง) และย้ายแต่ละไฟล์ด้วยมือคุณกำลังดูสองสุดขั้ว เป็นที่เข้าใจได้อย่างสมบูรณ์แบบว่าคุณไม่สามารถ / ไม่ต้องการสร้างไปป์ไลน์อัตโนมัติเต็มรูปแบบ (ยัง) อย่างไรก็ตามคุณควรพิจารณาดำเนินการบางส่วนของกระบวนการโดยอัตโนมัติ
การย้ายแต่ละไฟล์ด้วยมือนั้นค่อนข้างมีความเสี่ยงและคุณสามารถลดความเสี่ยงดังกล่าวได้เช่นการติดแท็กที่เก็บรหัสตรวจสอบแท็กนั้นในคอมพิวเตอร์ของคุณสร้างสิ่งประดิษฐ์และอัปโหลดไปยังเซิร์ฟเวอร์ของคุณ แต่ละขั้นตอนเหล่านี้สามารถดำเนินการอัตโนมัติเพื่อให้สามารถดำเนินการได้ด้วยการคลิกเมาส์เพียงไม่กี่ครั้งและจะช่วยลดความเสี่ยงในการลืมไฟล์หรือผลักดันไฟล์บางไฟล์โดยไม่ตั้งใจ
ทำสิ่งที่คุณทำได้โดยอัตโนมัติทีละขั้นตอน ความจริงที่ว่าคุณไม่สามารถจ่ายให้กับไปป์ไลน์ CD อัตโนมัติเต็มรูปแบบไม่ควรกีดกันคุณจากการทำให้บางส่วนเป็นอัตโนมัติ
แนวทางปฏิบัติที่ดีที่สุดคือการวิเคราะห์ต้นทุน / ผลประโยชน์สำหรับการปรับใช้เฉพาะสำหรับ บริษัท ของคุณ
คำตอบทั่วไปคือ "อย่าทำสิ่งต่าง ๆ ด้วยตนเองอัตโนมัติ" นี่เป็นคำตอบที่เหมาะสมสำหรับ บริษัท ทั่วไป ความสม่ำเสมอของคำตอบที่คุณได้รับควรเป็นตัวบ่งชี้ว่าชุมชนพบว่านี่เป็นแนวทางปฏิบัติที่ดีที่สุด หาก บริษัท ของคุณรู้สึกว่าระบบอัตโนมัติไม่ใช่เครื่องมือที่เหมาะสมพวกเขาควรเข้าใจว่าอะไรทำให้พวกเขามีเอกลักษณ์ เอกลักษณ์นั้นควรนำมาพิจารณาในกระบวนการตัดสินใจของคุณ ไม่มี "แนวปฏิบัติที่ดีที่สุด" เมื่อชุดตัวอย่างคือ 1
คำถามเช่น "จำนวนไฟล์" และ "สิ่งที่อัปเดตบ่อยแค่ไหน" และ "ผลที่ตามมาจากการทำลายสิ่งต่าง ๆ " และ "คุณสามารถย้อนกลับการเปลี่ยนแปลงที่ไม่ดีได้อย่างรวดเร็ว" เป็นคำถามสำคัญที่จะต้องตอบ หากคุณดำเนินการโดยอัตโนมัติคำถามเหล่านี้จำนวนมากจะไม่สำคัญ แต่จำเป็นสำหรับการกำหนดต้นทุนและผลประโยชน์สำหรับกระบวนการอัปเดตด้วยตนเองอย่างเหมาะสม
มีเฉดสีเทามากมายระหว่างการคัดลอกไฟล์ต่อไฟล์แบบแมนนวลและการส่งต่อเนื่อง
เริ่มต้นด้วยการลดความซับซ้อนของกระบวนการปรับใช้ตัวอย่างเช่นโดยใช้ไฟล์ zip, บรรจุภัณฑ์สไตล์ rpm, infrastruture เป็นเครื่องมือการจัดการรหัส (เช่นหุ่นเชิดหรือพ่อครัว) หรือแม้แต่สคริปต์ง่ายๆที่คัดลอกไฟล์ให้คุณจาก การจัดเตรียมพื้นที่บนเซิร์ฟเวอร์ ftp
กระบวนการปรับใช้ที่มีขั้นตอนแบบแมนนวลมีแนวโน้มที่จะมีข้อผิดพลาดมากขึ้น (และทำให้ล้มเหลว) - เหมือนที่คนอื่น ๆ พูดเอาองค์ประกอบของมนุษย์ออกไป
คุณไม่จำเป็นต้องดำเนินการจัดส่งอย่างต่อเนื่องเต็มรูปแบบ (ซึ่งมีราคาแพงและต้องใช้ความพยายาม / การลงทุน / นวัตกรรมเมื่อเวลาผ่านไป) - เริ่มต้นง่ายทำให้มันทำงานแสดงให้เห็นถึงประโยชน์ - และไปจากที่นั่น
ขึ้นอยู่กับเทคโนโลยีซอฟต์แวร์ (หรือสแต็ค) ที่คุณใช้ (ภาษาที่ถูกตีความภาษาที่คอมไพล์แอพเดสก์ท็อปมือถือ ฯลฯ ) นุ่ม dev นโยบายแผนกหากคุณมีเครื่องมือสำหรับทำให้เป็นแบบอัตโนมัติความสำคัญของแอพของคุณและสิ่งสำคัญที่ต้องพิจารณาคือสถาปัตยกรรมซอฟต์แวร์ของคุณ (วิธีที่แอพของคุณออกแบบมา) นี่คือเหตุผลที่คุณมีคำตอบที่แตกต่างกันที่นี่ ตามหลักการง่ายๆวิธีที่ดีที่สุดคือลดการแทรกแซงของมนุษย์ในการปรับใช้งานเพื่อหลีกเลี่ยงข้อผิดพลาด แนวปฏิบัติที่ดีคือการทดสอบทุกอย่างในเซิร์ฟเวอร์ QA (พิจารณาใช้เซิร์ฟเวอร์เสมือนถ้างบประมาณเป็นปัญหา) ก่อนการปรับใช้และมีกระบวนการย้อนกลับเพื่อกู้คืนเป็นเวอร์ชันก่อนหน้าในกรณีที่เกิดภัยพิบัติ ( ALWAYSมีการสำรองข้อมูล)