สคริปต์การปรับใช้ควรเป็นสิ่งประดิษฐ์ของบิลด์หรือไม่


13

นี่เป็นโครงการเว็บที่เขียนด้วย Java

ดังนั้นฉันจึงเขียน build และสคริปต์การปรับใช้ ในการสร้างงานสร้างฉันใช้มด การสร้างอย่างต่อเนื่องจะทำกับเจนกินส์

บิลด์สร้างสิ่งประดิษฐ์ 3 แบบที่แตกต่างกัน:

  1. ไฟล์สงคราม
  2. ซิปพร้อมโครงร่าง
  3. ซิปพร้อมรูปภาพ

จนถึงตอนนี้ดีมาก แต่ตอนนี้ฉันต้องเขียนสคริปต์การปรับใช้ซึ่งควรจะ:

  • ปรับใช้ war (ส่วนที่ 1) กับ tomcat ที่รันที่เซิร์ฟเวอร์ 1
  • วางส่วนที่2ที่เซิร์ฟเวอร์ 1ในไดเร็กทอรีเฉพาะ
  • วางส่วนที่3ที่เซิร์ฟเวอร์ 2ในไดเร็กทอรีเฉพาะ

ดังนั้นฉันจึงได้พูดคุยกับเพื่อนร่วมงานของฉันและเขาบอกว่าเราควรสร้างสิ่งประดิษฐ์ (บางทีdeploy.xml ) ที่ปรับใช้สิ่งประดิษฐ์เหล่านี้เมื่อวางไว้ที่เซิร์ฟเวอร์ที่ถูกต้อง

ดังนั้นจะมีสคริปต์อื่นที่จะ:

  • ดาวน์โหลดสิ่งประดิษฐ์เจนกินส์
  • scp ไปยังแต่ละเซิร์ฟเวอร์และวาง deploy.xml ที่นั่น
  • เรียกใช้ deploy.xml แบบรีโมต

สิ่งที่ทำให้ฉันรู้สึกไม่สบายใจเล็กน้อยคือการมี deploy.xml เป็นงานสร้าง แรงจูงใจที่อยู่เบื้องหลังสิ่งนี้จะทำให้สามารถปรับใช้โดยไม่จำเป็นต้องเข้าถึงคลังเก็บ VCS ดังนั้นงานสร้างจะต้องมีในตัวเองกล่าวคืองานสร้างใด ๆ ที่สามารถเข้าสู่การผลิตได้เฉพาะสิ่งที่เจนกินส์สร้างขึ้น

ควรวางสคริปต์การปรับใช้ไว้ที่ใด พวกเขาควรจะเพียงที่ VCS หรือพวกเขาควรจะสร้างสิ่งประดิษฐ์เกินไป?


คำถามนี้เป็นสิ่งที่ดี / มันทำให้เราต้องการที่จะบวกหนึ่ง / หวังว่าฉันสามารถตอบ
อมรา

คำตอบ:


6

ประสบการณ์ของฉันที่ทุกอย่างที่สามารถเป็นไปโดยอัตโนมัติควรจะเป็น หากคุณสามารถอธิบายมันเป็นขั้นตอนที่ 1 ขั้นตอนที่ 2, ....ก็ควรเป็นสคริปต์ หากสคริปต์สามารถสร้างขึ้นโดยอัตโนมัติเพื่อรวมข้อมูลเฉพาะการสร้าง (เช่นแท็กการแก้ไข) นั่นคือสิ่งที่คุณควรทำ นี่ไม่ใช่เพื่อการขี้เกียจ แต่เพื่อการคาดเดาและทำซ้ำได้

ข้อควรทราบ: คุณควรมีสคริปต์การย้อนกลับที่สร้างขึ้นโดยอัตโนมัติซึ่งทุกคนในทีมสามารถใช้งานได้ในกรณีที่สคริปต์การปรับใช้ที่สร้างขึ้นโดยอัตโนมัตินั้นเป็นไปอย่างบ้าคลั่งและหยุดการทำงานของเซิร์ฟเวอร์การผลิต


3

สิ่งที่ Peter Rowell เขียนนั้นถูกต้องนอกจากนี้ฉันจะ:

สำหรับไฟล์สคริปต์การปรับใช้

  • ถ้ามันถูกเขียนโดยใครบางคนมันจะต้องอยู่ในการควบคุมเวอร์ชัน
  • ถ้ามันถูกสร้างขึ้นและสามารถสร้างได้อีกครั้งก็มักจะไม่เข้าสู่การควบคุมเวอร์ชัน

สำหรับกระบวนการปรับใช้:

  • หากคุณต้องการให้สิ่งประดิษฐ์ของคุณอยู่ในตัวเองและสามารถทำได้อย่างง่ายดายไฟล์นั้นอาจเป็นสิ่งประดิษฐ์ที่สร้างขึ้นซึ่งหมายความว่าไฟล์นั้นบรรจุด้วยผลการสร้างในลักษณะที่สามารถนำไปใช้งานได้
  • ในทางกลับกันการปรับใช้มีความซับซ้อนมากขึ้นเรื่อย ๆ ไม่ช้าก็เร็วคุณจะต้องใช้โปรแกรมเฉพาะ (อ่านรหัส) ที่ใช้งานและการสร้างสิ่งประดิษฐ์ของ Jenkins ไม่ได้บรรจุอยู่ในตัวเองอีกต่อไป

สิ่งนี้ค่อนข้างขึ้นอยู่กับกระบวนการของคุณและวิธีการจัดการการปรับใช้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.