คุณจะทำเว็บไซต์ depoys ผลิต IIS ได้อย่างไร


15

ดังนั้นไม่แน่ใจว่านี่เป็นคำถาม Stack Overflow หรือ Server Fault หากฉันมีเว็บไซต์. NET ที่ฉันต้องการปรับใช้กับสภาพแวดล้อมการผลิตสิ่งที่ดีที่สุดคือทำเช่นนั้น ฉันควรจัดแพคเกจเป็น MSI & ติดตั้งหรือไม่ ใช้ nant เพื่อเพิ่มไฟล์ที่ต้องการ เพียง FTP ไฟล์ขึ้นโดยใช้ Beyond Compare?

คุณจะปรับใช้รหัสการผลิตได้อย่างไร นี่เป็นกรณีเฉพาะของ Windows ที่ฉันกำลังดูที่นี่

คำตอบ:


15

IIS สนับสนุนการปรับใช้ xcopy ดังนั้นเพียงคัดลอกไฟล์ควรเป็นสิ่งที่คุณต้องการเว้นแต่คุณจะมีข้อกำหนดพิเศษ

วิธีหนึ่งที่ทำได้คือสคริปต์ง่ายๆที่ใช้ROBOCOPYเพื่อคัดลอกไฟล์ใหม่ไปยังเซิร์ฟเวอร์

หากไซต์มีขนาดใหญ่และใช้เวลานานเกินไปให้ใช้ระบบควบคุมเวอร์ชัน ฉันชอบMercurialสำหรับจุดประสงค์นี้แม้ว่าคุณจะต้องระวังว่าไฟล์การกำหนดค่าของระบบควบคุมเวอร์ชันไม่ได้ถูกส่งไปยังสาธารณะ การปรับใช้นั้นเป็นเรื่องของการยอมรับการเปลี่ยนแปลงจากนั้นตรวจสอบเวอร์ชันล่าสุดบนเซิร์ฟเวอร์ นอกจากจะมีประสิทธิภาพแล้วยังช่วยให้ย้อนกลับได้อย่างรวดเร็ว (หากคุณติดแท็กเวอร์ชันที่ดีที่สุด) ในกรณีที่ล่าสุดและดีที่สุดของคุณมีบั๊ก showstopper

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


1
ระบบควบคุมเวอร์ชันน่าสนใจ แต่สำหรับเว็บไซต์ที่ต้องการการรวบรวมอาจไม่ได้ผลดีนัก นอกจากว่ารุ่นที่รวบรวมจะถูกเก็บไว้ภายใต้การควบคุมเวอร์ชันแน่นอน
Jonathon Watney

1
ฉันไม่เคยคิดถึงการวางระบบควบคุมแหล่งที่มาในการผลิต ที่น่าสนใจก็คือคุณต้องเก็บไฟล์ซิปไว้มากมาย
JoshBerke

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

13

พิจารณาใช้เครื่องมือการปรับใช้เว็บจาก Microsoft ได้รับการออกแบบมาโดยเฉพาะเพื่อช่วยปรับใช้เว็บแอปพลิเคชั่นและอัพเดทไปยังเว็บแอปพลิเคชั่นเหล่านั้นเพื่อผลิต IIS 6 และ 7 เว็บเซิร์ฟเวอร์และทำงานได้ดีกว่า MSI (Windows Installer), IMHO

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


+ อินฟินิตี้ เครื่องมือนี้เป็นเครื่องช่วยชีวิตและช่วยให้ทุกแผนก (a la tsilb) สามารถแก้ไขปัญหาที่น่าสนใจได้
Portman

4

ฉันต้องการคำตอบของโจเอลเพิ่มเติมโดยแนะนำเซิร์ฟเวอร์การรวมอย่างต่อเนื่องรับการเปลี่ยนแปลงของคุณจากระบบควบคุมแหล่งที่มาของคุณ จากนั้นจะสร้างโครงการ จากนั้นให้ทำสำเนาผลลัพธ์ของบิลด์ไปยังโฟลเดอร์ใหม่ จากนั้นคุณสามารถทำการเปลี่ยนแปลงการกำหนดค่าด่วน (web.config และ app.config) Voila พร้อมสำหรับ Xcopy!

ลองใช้งานCruiseControl.NET


3

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

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

มีสิ่งที่สนุกสนานมากมายให้ทำในฐานะนักพัฒนาเว็บ แต่นี่เป็นส่วนที่สำคัญที่สุดในการทำงานของฉัน


1

โอ้ jeeez ที่ทำงานเรามีทีมทั้งหมดสำหรับเรื่องนี้ พวกเขามีเครื่องมือในบ้านที่นำเซิร์ฟเวอร์ออกจากคลัสเตอร์ / ฟาร์มเผยแพร่ไฟล์เรียกใช้ NUnits และเพิ่มกลับเข้าไปในคลัสเตอร์ / ฟาร์ม พวกเขาทำสิ่งนี้สำหรับแต่ละเซิร์ฟเวอร์ 16 แห่ง ใช้เวลาหลายชั่วโมง พวกเราที่เหลือไม่มีแม้แต่ "มองไปรอบ ๆ "

สำหรับโครงการส่วนบุคคลของฉันฉันเผยแพร่จาก VS2005 โดยตรงไปยังเว็บเซิร์ฟเวอร์ของฉัน คินดามีความปลอดภัยที่เข้มงวดน้อยกว่า

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