มีหลายสิ่งที่คุณสามารถทำได้เพื่อปรับปรุงกระบวนการปรับใช้ของคุณ บางส่วนของพวกเขาคือ:
ตรวจสอบให้แน่ใจว่ารหัสของคุณผ่านการทดสอบอย่างดี
เป็นการดีที่คุณควรมีความคุ้มครองการทดสอบหน่วย 100% เช่นเดียวกับการทดสอบการรวมสำหรับทุกสถานการณ์เป็นไปได้
หากคุณไม่ได้รับสิ่งนี้คุณควรทิ้งทุกอย่างไว้และจัดการเรื่องนี้
ดูการพัฒนาที่ขับเคลื่อนด้วยพฤติกรรม
การมีชุดทดสอบที่สมบูรณ์จะช่วยให้คุณ ...
เรียกใช้การรวมอย่างต่อเนื่อง
เมื่อใดก็ตามที่มีคนทำการเปลี่ยนแปลง CI จะสามารถเรียกใช้ชุดทดสอบได้โดยอัตโนมัติ หากชุดการทดสอบผ่านไปจะสามารถนำไปใช้งานได้ทันที (หรือกำหนดเวลาการปรับใช้) สำหรับการเปลี่ยนแปลงที่ไม่ต้องการการเปลี่ยนแปลงที่สำคัญกับฐานข้อมูลของคุณเพียงอย่างเดียวนี้จะช่วยให้คุณประหยัดเวลาและปวดหัว
ในกรณีที่มีปัญหา CI สามารถให้การย้อนกลับแบบคลิกเดียว
CI จะมากน้อยประโยชน์ถ้าชุดทดสอบของคุณไม่สมบูรณ์และถูกต้องในขณะที่พักผ่อนสถานที่ทั้งในความสามารถในการตรวจสอบรหัสของคุณในทางอัตโนมัติ
ทำการอัปเดตอะตอมมิก
เป็นการดีที่คุณไม่ควรคัดลอกไฟล์ใหม่ทับไฟล์เก่าบนเซิร์ฟเวอร์ที่ใช้งานจริง ให้ใช้เครื่องมือเช่น capistrano ซึ่งคัดลอกทุกไฟล์ไปยังตำแหน่งใหม่จากนั้นใช้ลิงก์สัญลักษณ์เพื่อชี้ไปที่การปรับใช้ที่ต้องการ การย้อนกลับเป็นเรื่องทันทีเนื่องจากเป็นการเปลี่ยน symlink ให้ชี้ไปที่การปรับใช้ก่อนหน้า (แม้ว่าจะไม่ครอบคลุมการย้ายฐานข้อมูลของคุณ)
ดูว่าคอนเทนเนอร์เช่น Docker สามารถช่วยคุณได้หรือไม่
ทำการเปลี่ยนแปลงที่เล็กลงและบ่อยขึ้น
ไม่ว่าคุณจะมีการทดสอบ, CI, หรืออะไรก็ตามเพียงอย่างเดียวนี้สามารถช่วยคุณได้อย่างมาก การเปลี่ยนแปลงทุกครั้งควรมีสาขาคอมไพล์ของตนเองและการปรับใช้ควรมีการเปลี่ยนแปลงเล็กน้อยเท่าที่จะทำได้ เนื่องจากการเปลี่ยนแปลงมีขนาดเล็กลงจึงมีโอกาสน้อยที่จะผิดพลาดระหว่างการปรับใช้
ในบันทึกนั้นทำการเปลี่ยนแปลงที่แยกได้มากขึ้นทุกครั้งที่ทำได้ หากคุณทำการเปลี่ยนแปลงกับเกมโอมาฮาและมันไม่ส่งผลกระทบต่อ Texas Hold'em สตั๊ดการ์ด 5 ใบหรืออะไรอย่างอื่นนั่นเป็นเกมเดียวที่จำเป็นต้องระงับเพื่อการบำรุงรักษา
วิเคราะห์สิ่งที่ใช้เวลานาน
คุณกล่าวถึงบางส่วนของการปรับใช้ของคุณใช้เวลานาน นี่อาจเป็นการเปลี่ยนแปลงสกีมาฐานข้อมูล เป็นเรื่องดีที่จะต้องดู DBA ที่ฐานข้อมูลของคุณพร้อมกับการเปลี่ยนแปลง schema แต่ละครั้งเพื่อดูว่าอะไรจะทำงานได้ดีขึ้น
มีผู้เชี่ยวชาญเฉพาะด้านให้ตรวจสอบส่วนอื่น ๆ ของการปรับใช้ซึ่งใช้เวลานานมาก
ทำงานหลายชั่วโมง
คุณอาจกำลังทำสิ่งนี้อยู่ แต่มันก็พูดถึง นักพัฒนา (และผู้ดูแลระบบ!) ไม่ควรได้รับการคาดหวังให้ทำงาน "9 ถึง 5" อีกต่อไปโดยเฉพาะอย่างยิ่งสำหรับการดำเนินการ 24x7 หากคาดว่าจะมีใครบางคนใช้เวลาข้ามคืนเพื่อช่วยดูแลการใช้งานแก้ไขปัญหาใด ๆ และจากนั้นจัดตารางเวลากลางวันความคาดหวังของคุณจะไม่สมจริงและคุณกำลังตั้งค่าบุคคลนั้นให้เหนื่อยหน่าย