คำถามติดแท็ก deployment

การปรับใช้เป็นกิจกรรมทั้งหมดที่ทำให้ระบบซอฟต์แวร์พร้อมใช้งาน คำถามเกี่ยวกับการปรับใช้ซอฟต์แวร์จะอยู่ภายใต้แท็กนี้

7
วัตถุประสงค์ของการสร้างเครื่องจักรเฉพาะคืออะไร?
เนื่องจากสถานการณ์หลายอย่างที่นำไปสู่วงจรการปรับใช้ที่ไม่ดีครั้งล่าสุดฉันจึงรณรงค์ในสำนักงานของเราเพื่อดำเนินการปรับใช้ในอนาคตทั้งหมดด้วยเครื่องสร้างเฉพาะและเจ้านายของฉันยอมรับข้อเสนอนี้ อย่างไรก็ตามแทนที่จะใช้เครื่องจริงในสำนักงานของเราเพื่อใช้งานเราต้องแชร์เครื่องเดียวกับกลุ่มอื่น ๆ - และความยุ่งยากในการออกจากสำนักงานของฉันพร้อมกับข้อมูลที่จำเป็นทั้งหมดแล้วเดินลงบันได ไปที่สำนักงานอื่นเพื่อดำเนินการสร้างอย่างง่ายทำให้ฉันสงสัยว่าทำไมฉันจึงเสนอสิ่งนี้ตั้งแต่แรก แนวคิดของการมีเครื่องบิลด์แยกต่างหากเดิมคือเพื่อแยกโค้ดที่เขียนในเครื่องของฉันออกจากรหัสของนักพัฒนาอื่น ๆ และเพื่อแยกไฟล์ hijacked ใด ๆ ที่ฉันมีบนเครื่องออกจากการปรับใช้ นอกจากนี้ยังเป็นการแก้ไขข้อกังวลที่เพิ่มขึ้นที่ฉันเคยมีกับระบบจัดการไฟล์ ClearCase ของเราซึ่งมักจะปฏิเสธที่จะให้ฉันปรับใช้กิจกรรมบิลด์บางอย่างยกเว้นว่าฉันได้รวมกิจกรรมอื่นที่ 'พึ่งพา' ด้วย ตอนนี้ฉันกำลังจะไปข้างหน้ากับกระบวนการนี้ฉันสงสัยว่าฉันเข้าใจผิดวัตถุประสงค์ทั้งหมดของการใช้เครื่องสร้าง - และเนื่องจากเราใช้เครื่องนี้สำหรับการปรับใช้รหัสในสภาพแวดล้อมการทดสอบการจัดเตรียมและการผลิตของเราและ ไม่ใช่สำหรับการปรับใช้การทดสอบนักพัฒนาส่วนบุคคลของเราฉันไม่แน่ใจว่าจะใช้เพื่อวัตถุประสงค์ใด ๆ เลย ดังนั้นอะไรคือเหตุผลที่แท้จริงของการใช้เครื่องสร้างและฉันได้เข้ามาใช้อย่างถูกต้องหรือไม่

4
ประโยชน์ในการพัฒนาของการใช้ Docker เป็นโมฆะเมื่อใช้ Java เมื่อเปรียบเทียบกับภาษาอื่น ๆ ใกล้กับระบบปฏิบัติการ Unix หรือไม่?
ฉันมีเพื่อนที่พูดว่า: นักเทียบท่าเป็นที่น่าอัศจรรย์ คุณสามารถใช้มันเพื่อทำซ้ำการผลิตและนิสัยใจคอของมันทั้งหมดในเครื่องท้องถิ่นของคุณ จากนั้นคุณสามารถปรับใช้อินสแตนซ์ที่ตรงผ่านทุกขั้นตอนการทำงานการแสดงละครซุปเปอร์รวดเร็ว ตอนนี้สิ่งนี้จะเป็นจริงถ้านักพัฒนาเขียน Ruby, PHP หรือGo - ที่ซึ่งมีการเชื่อมโยงแบบไบนารีทิศทางไปยังระบบปฏิบัติการ แต่เมื่อใช้Java - มีเลเยอร์เสมือนระหว่างระบบปฏิบัติการและภาษาอยู่แล้วทำให้การดำเนินงานสอดคล้องกันโดยไม่คำนึงถึงระบบปฏิบัติการพื้นฐาน ในกรณีนี้ประโยชน์ของการรัน Docker สำหรับนักพัฒนาในท้องถิ่นเพื่อทำซ้ำสภาพแวดล้อมการผลิตจะถูกทำให้ไร้ผล (เทียบกับ Ruby, PHP หรือ Go) ฉันเปิดให้มีการอภิปรายเกี่ยวกับเรื่องนี้และกระตือรือร้นที่จะได้ยินมุมมองที่ไม่เห็นด้วย (มีหลักฐาน) ประโยชน์ในการพัฒนาของการใช้ Docker เป็นโมฆะเมื่อใช้ Java เมื่อเปรียบเทียบกับภาษาอื่น ๆ ใกล้กับระบบปฏิบัติการ Unix หรือไม่?
53 java  deployment  jvm  docker 

7
แสดงความคิดเห็นสิ่งที่ต้องทำด้วยกำหนดเวลา?
พื้นหลัง ฉันกำลังทำงานในทีมที่ต้องการปรับใช้การปรับใช้แบบไม่ต้องหยุดทำงาน เราวางแผนที่จะใช้กลยุทธ์การปรับใช้สีน้ำเงิน / เขียวเพื่อให้บรรลุเป้าหมายนี้ สิ่งหนึ่งที่ฉันตระหนักในการทำวิจัยคือความซับซ้อนของการเปลี่ยนแปลงฐานข้อมูล การดำเนินการอย่างง่ายเช่นการเปลี่ยนชื่อคอลัมน์อาจใช้เวลา3 รอบเต็มจนกว่าจะเสร็จสมบูรณ์! สำหรับฉันดูเหมือนว่าการมีการเปลี่ยนแปลงอย่างเต็มรูปแบบนั้นต้องใช้เวลาหลายรอบการเปิดตัวทำให้เกิดข้อผิดพลาดของมนุษย์ได้มาก ในบทความที่เชื่อมโยงมันแสดงให้เห็นว่าการเปลี่ยนแปลงรหัสมีความจำเป็นสำหรับ 2 รุ่นและการโยกย้ายฐานข้อมูลเป็นสิ่งจำเป็นสำหรับ 3 รุ่น สิ่งที่ฉันกำลังมองหา ในปัจจุบันหากเราต้องการจำบางสิ่งเราสามารถสร้างตั๋วในระบบการจัดการปัญหาของเราซึ่งสร้างความยุ่งเหยิงและอาจถูกย้ายไปที่การวิ่งในภายหลังหรือการค้างโดยผู้บริหาร หรือเราสามารถสร้างความคิดเห็นสิ่งที่ต้องทำซึ่งอาจจะถูกลืมไปโดยสิ้นเชิง สิ่งที่ฉันกำลังมองหาคือวิธีที่ความคิดเห็นของ TODO สามารถกำหนดเส้นตายได้และระบบการรวมอย่างต่อเนื่องของเรา (ไม่แน่ใจว่าเราจะใช้ในปัจจุบัน) จะปฏิเสธการสร้างหากกำหนดเวลานี้หมดอายุ ตัวอย่างเช่นถ้าเราเปลี่ยนชื่อคอลัมน์เราสามารถสร้างการโยกย้ายครั้งแรกสำหรับมันและจากนั้นสองความคิดเห็นสิ่งที่ต้องทำเพื่อให้แน่ใจว่าการย้ายสองที่เหลือจะถูกสร้างขึ้น: // TODO by v55: Create migration to move constraints to new column, remove references to old column in app // TODO by v56: Create migration to drop …

4
คุณจะอัปเดตสคีมาฐานข้อมูล / ฐานข้อมูลการผลิตของคุณโดยไม่ทำให้หยุดทำงานได้อย่างไร
เทคนิคใดบ้างสำหรับการอัพเดตสกีมาโค้ดฐาน / ฐานข้อมูลของเซิร์ฟเวอร์ที่ใช้งานจริงโดยไม่ทำให้เครื่องหยุดทำงาน
42 deployment 

4
บรรลุการปรับใช้เป็นศูนย์การหยุดทำงาน
ฉันกำลังพยายามทำให้การปรับใช้ไม่ทำงานเป็นศูนย์เพื่อให้ฉันสามารถปรับใช้น้อยลงในช่วงนอกเวลาทำงานและอื่น ๆ ในช่วงเวลาที่ "ช้าลง" - หรือทุกเวลาตามทฤษฎี การตั้งค่าปัจจุบันของฉันค่อนข้างง่าย: เว็บเซิร์ฟเวอร์ A (. NET App) เว็บเซิร์ฟเวอร์ B (แอพ. NET) เซิร์ฟเวอร์ฐานข้อมูล (SQL Server) กระบวนการปรับใช้ปัจจุบันของฉัน: "หยุด" ไซต์บนทั้งเว็บเซิร์ฟเวอร์ A และ B อัพเกรดสกีมาฐานข้อมูลสำหรับเวอร์ชันของแอปที่กำลังปรับใช้ อัปเดตเว็บเซิร์ฟเวอร์ A อัปเดตเว็บเซิร์ฟเวอร์ B นำทุกอย่างกลับมาออนไลน์ ปัญหาปัจจุบัน สิ่งนี้นำไปสู่การหยุดทำงานเล็กน้อยในแต่ละเดือน - ประมาณ 30 นาที ฉันทำสิ่งนี้ในช่วงนอกเวลางานดังนั้นมันจึงไม่ใช่ปัญหาใหญ่ แต่เป็นสิ่งที่ฉันอยากหลีกหนี นอกจากนี้ - ไม่มีทางที่จะ 'กลับ' จริงๆ โดยทั่วไปฉันไม่ได้สร้างสคริปต์ฐานข้อมูลย้อนกลับ - อัปเกรดสคริปต์เท่านั้น การใช้ประโยชน์จาก Load Balancer …

15
ฉันจะทำให้การปรับใช้การผลิตเป็นไปโดยอัตโนมัติโดยไม่ต้องกังวลมากได้อย่างไร
ที่ร้านของเราเราใช้ SVN สำหรับการควบคุมแหล่งที่มาและ CruiseControl สำหรับ CI ในการจัดการการสร้างและการปรับใช้อัตโนมัติเพื่อการพัฒนาการทดสอบและการรวมระบบของเรา ทั้งหมดนี้ทำงานได้อย่างราบรื่น แต่เนื่องจากข้อ จำกัด ด้านฮาร์ดแวร์และทรัพยากรสภาพแวดล้อมการรวมระบบของเราไม่ได้เป็น 2 สภาพแวดล้อมที่สมดุลของเซิร์ฟเวอร์เช่นสภาพแวดล้อมการผลิตของเรา ในขณะที่ทุกสิ่งทุกอย่างมีค่าเท่ากันนั่นจะเป็นความแตกต่างเพียงอย่างเดียวระหว่างสภาพแวดล้อมการรวมและการผลิตของเรา (แม้ว่าจะเป็นเรื่องใหญ่!) ในทางทฤษฎีความแตกต่างคือการกำหนดค่าที่แตกต่างกันเล็กน้อยของเซิร์ฟเวอร์แอปของเราและสคริปต์การปรับใช้จะต้องวางสิ่งประดิษฐ์บิลด์ลงในเซิร์ฟเวอร์สองเครื่องแทนที่จะเป็นเพียงเซิร์ฟเวอร์เดียว แต่ทำไมฉันถึงกังวลมาก โดยทั่วไปฉันไม่ได้เป็นคนที่คลั่งไคล้การควบคุม แต่ฉันมักรู้สึกว่าไม่เพียงพอที่จะปรับใช้การผลิตเพื่อการผลิตด้วยตนเอง ฉันได้ยินมาจากเพื่อนร่วมงานว่านี่เป็นสิ่งที่น่ากลัวจริงๆแต่พวกเขาล้มเหลวในการฟ้องร้อง ฉันรู้ว่าเมื่อฉันทำด้วยตนเองฉันสามารถดูได้ว่าฉันกำลังคัดลอกไฟล์ที่ถูกต้องฉันกำลังปิดเซิร์ฟเวอร์แอปและทำให้แน่ใจว่าปิดเรียบร้อยแล้วฉันกำลังเริ่มเซิร์ฟเวอร์สำรองและตรวจสอบบันทึกทางกายภาพแล้ว ตรวจสอบให้แน่ใจว่ามันเริ่มดีแล้ว มันทำให้ฉันสบายใจ อะไรคือข้อโต้แย้งหรือข้อโต้แย้งนี้สำหรับการปรับใช้การผลิตสคริปต์อัตโนมัติ?

7
เป็นวิธีปฏิบัติที่ดีที่สุดในการปรับใช้โครงการไปยังไฟล์เซิร์ฟเวอร์ด้วยไฟล์ด้วยตนเองหรือไม่?
บริษัท ที่ฉันทำงานอยู่ตอนนี้ยังไม่ได้ใช้การจัดส่งอย่างต่อเนื่อง เรายังคงปรับใช้โครงการด้วยตนเองไปยังเซิร์ฟเวอร์โดยไฟล์ วิธีปฏิบัติที่ดีที่สุด: การปรับใช้สิ่งประดิษฐ์โครงการหนึ่งด้วยตนเองสำหรับการปรับใช้แต่ละครั้งหรือทำการปรับใช้แบบไฟล์ต่อไฟล์

10
คุณจะอัพเดตเว็บไซต์สดด้วยการเปลี่ยนรหัสได้อย่างไร
ฉันรู้ว่านี่เป็นคำถามพื้นฐานมาก หากมีใครสามารถตลกฉันและบอกฉันว่าพวกเขาจะจัดการกับเรื่องนี้ฉันจะยิ่งใหญ่ ฉันตัดสินใจที่จะโพสต์สิ่งนี้เพราะฉันกำลังจะติดตั้ง SynchToy เพื่อแก้ไขปัญหาด้านล่างและฉันรู้สึกไม่เป็นมืออาชีพเล็กน้อยเมื่อใช้ "ของเล่น" แต่ฉันไม่คิดว่าจะดีไปกว่านี้ หลายครั้งที่ฉันพบว่าเมื่อฉันอยู่ในสถานการณ์นี้ฉันพลาดวิธีที่ชัดเจนในการทำสิ่งต่าง ๆ - มาจากการเป็นนักพัฒนาเพียงคนเดียวใน บริษัท แอปพลิเคชันเว็บ ASP.NET ที่พัฒนาบนคอมพิวเตอร์ของฉันในที่ทำงาน โซลูชันมี 2 โครงการ: เว็บไซต์ (ไฟล์) WebsiteLib (C # / dll) ใช้ที่เก็บ Git นำไปใช้งานบนเว็บเซิร์ฟเวอร์ GoGrid 2008R2 การใช้งาน: ทำการเปลี่ยนแปลงรหัส กดเพื่อ Git รีโมตเดสก์ท็อปไปยังเซิร์ฟเวอร์ ดึงจาก Git เขียนทับไฟล์สดด้วยการลาก / วางด้วย windows explorer ในขั้นตอนที่ 5 ฉันลบไฟล์ทั้งหมดออกจากรูทเว็บไซต์ .. นี่เป็นสิ่งที่ไม่ควรทำ นั่นเป็นเหตุผลที่ฉันกำลังจะติดตั้ง SynchToy ... …

4
เวอร์ชันการอัพเดทหมายถึงอะไรจริง ๆ ?
จำนวนมากของการปรับปรุงซอฟต์แวร์ทำตามรูปแบบของ v0.1 เพื่อ v0.2 เพื่อv2.6.5.6 "อัพเดต" ของซอฟต์แวร์เหล่านี้มีความหมายอย่างไร มีมาตรฐานอุตสาหกรรมเสมอหรือโปรแกรมเมอร์ทำยก update # หรือเพิ่มทศนิยมเพิ่มเติมหรือไม่

2
วิธีจัดโครงสร้างโซลูชัน / โครงการที่ทับซ้อนกันหลายรายการใน. Net
ฉันเพิ่งเริ่มทำงานกับลูกค้าใหม่ที่มีมรดกเก่า codebaseซึ่งมีโซลูชัน. net หลายรายการโดยทั่วไปแต่ละโฮสต์โฮสต์บางโครงการที่ไม่ซ้ำกันกับโซลูชันนั้น แต่แล้วลิงก์ "ยืม" / "ใน" (เพิ่มโครงการที่มีอยู่) บางโครงการอื่น ๆ ซึ่งทางเทคนิคเป็นของโซลูชั่นอื่น ๆ (อย่างน้อยถ้าคุณไปตามโครงสร้างโฟลเดอร์ใน TFS) ฉันไม่เคยเห็นการตั้งค่านี้พันกันไม่มีคำสั่งสร้างที่ชัดเจนบางครั้งโครงการในการแก้ปัญหาการอ้างอิงที่กำลังโดยตรงจากไดเรกทอรีผลลัพธ์ของโครงการที่โฮสต์ในโซลูชัน B บางครั้งโครงการได้รวมโดยตรงแม้ว่ามันจะอยู่ ไกลออกไปในโครงสร้างโฟลเดอร์ ดูเหมือนว่าทุกอย่างได้รับการปรับปรุงเพื่อความเกียจคร้านของนักพัฒนาซอฟต์แวร์ เมื่อฉันเผชิญหน้ากับพวกเขาว่าทำไมพวกเขาถึงไม่มีเซิร์ฟเวอร์ CI พวกเขาตอบว่ามันยากที่จะตั้งค่าด้วยรหัสที่จัดระเบียบแบบนี้ (ฉันกำลังตั้งค่าตอนนี้และสาปแช่งรหัสองค์กร) การแก้ปัญหาถูกจัดระเบียบรอบ ๆ สิ่งประดิษฐ์การปรับใช้ (สิ่งที่ต้องมีการปรับใช้ร่วมกันอยู่ในโซลูชันเดียวกัน) ซึ่งฉันคิดว่าเป็นการตัดสินใจที่ชาญฉลาด แต่เนื้อหาของการแก้ปัญหาเหล่านั้น (โครงการ) อยู่ทั่วสถานที่ มีมติของวิธีปฏิบัติที่ดีที่สุดที่จะใช้เมื่อนำไลบรารีคลาสทั่วไปกลับมาใช้ซ้ำในหลายโซลูชัน / การปรับใช้ส่วน วิธีการโครงสร้างรหัสใน VCS วิธีอำนวยความสะดวกในการแบ่งปันตรรกะทางธุรกิจระหว่างส่วนการปรับใช้แยกต่างหาก

2
การย้ายฐานข้อมูลและสล็อตการปรับใช้ Azure
ฉันวางแผนที่จะส่งแอปพลิเคชันเว็บใหม่ไปยังบริการ Azure Web App (เว็บไซต์ Azure เดิม) ฉันต้องการใช้ประโยชน์จากสล็อตการปรับใช้เพื่อให้สามารถทดสอบการใช้งานของฉันก่อนที่จะผลักดันมันไปสู่การผลิต นั่นคือทั้งหมดที่ดีตราบใดที่ไม่มีการเปลี่ยนแปลง DB schema จำเป็นต้องใช้ แต่ถ้ามีการเปลี่ยนแปลงสกีมาฉันไม่สามารถมีซอฟต์แวร์เวอร์ชันสองเวอร์ชันที่ทำงานบน db เวอร์ชันเดียวกันได้ เนื่องจากฉันใช้ EF Migrations การกดไปที่สล็อตชั่วคราวจะส่งผลให้มีการอัปเดตฐานข้อมูลเป็นเวอร์ชันล่าสุดทันที ดังนั้นคำถามของฉันคือว่ามีการใช้สล็อตการปรับใช้ใด ๆ หรือไม่เมื่อต้องการโอนย้ายฐานข้อมูล ทำอย่างไรกับผู้ให้บริการ SaaS ขนาดใหญ่ พวกเขาทำการย้ายฐานข้อมูลทันทีด้วยเวอร์ชันใหม่หรือไม่ นั่นจะทำให้การหยุดทำงานของบางอย่างแน่นอน ฉันสามารถนึกถึงวิธีแก้ปัญหาที่ค่อนข้างซับซ้อนสำหรับปัญหานี้มีอะไรที่ง่ายบ้างไหม?

5
ฉันควรปล่อยซอร์สโค้ดเพื่อแก้ไขข้อบกพร่อง
ฉันมีข้อบกพร่องในแอปพลิเคชันของฉันที่ฉันกำลังสร้าง ฉันถามคำถามเกี่ยวกับ SO และผู้ใช้คนหนึ่งขอให้ฉันโพสต์หรือส่งรหัสทั้งหมดให้เขาเพื่อที่เขาจะได้ดู ฉันเข้าใจคำขอโดยสิ้นเชิง มันถูกต้องและเข้าใจได้ อย่างไรก็ตามฉันมีข้อสงสัยถ้าฉันควร เห็นได้ชัดว่าฉันให้กุญแจแก่อาณาจักรและเขาจะไม่ขอความช่วยเหลือถ้าเขา / เธอจะทำสิ่งที่เป็นอันตราย ฉันต้องการเพิ่มว่าฉันหมายถึงไม่เคารพผู้ใช้ใน SO ที่เสนอความช่วยเหลือ ฉันแค่ออกอากาศข้อกังวล ฉันต้องการแก้ไขข้อบกพร่องของฉันแล้ว แต่ไม่มีการรับประกันว่าบุคคลนี้จะสามารถแก้ไขได้ ฉันควรปล่อยซอร์สโค้ดทั้งหมดและหวังว่าจะดีที่สุด? หรือเก็บมันไว้และลองคิดดูด้วยตัวเอง? คุณจะทำอย่างไร

4
Windows Installers สำหรับแอปพลิเคชันธุรกิจภายในเหมาะสมหรือไม่
ฉันกำลังพยายามสร้างความเข้าใจโดยทั่วไปสำหรับสิ่งที่พบได้ทั่วไปในสถานการณ์นี้เพื่อให้ฉันสามารถตัดสินใจได้ว่ามันจะเหมาะสมหรือไม่ที่จะดำเนินการต่อไป โปรแกรมติดตั้งยินดีต้อนรับในสภาพแวดล้อมขององค์กรทั่วไปด้วยสิ่งต่อไปนี้หรือไม่? เปลี่ยนกระบวนการควบคุม สภาพแวดล้อม Dev / QA / การผลิต กำหนดทีมปรับใช้สำหรับพื้นที่ต่าง ๆ (ไฟร์วอลล์ฐานข้อมูล windows ฯลฯ ) มี "การทดสอบสารสีน้ำเงิน" ที่สามารถนำไปใช้กับแอปพลิเคชันเพื่อดูว่ามันเป็นตัวเลือกที่ดีสำหรับการสร้างตัวติดตั้งหรือไม่? * * * * โปรแกรมติดตั้งนั้นง่ายพอที่ทุกแอปพลิเคชั่นควรมีหรือไม่ ตัวติดตั้งเป็นเครื่องมือที่ใช่หรือไม่? มันสมเหตุสมผลหรือไม่ที่นักพัฒนาคาดว่าจะเรียนรู้บางอย่างเช่น WiX เพื่อสนับสนุนตัวติดตั้ง? การบำรุงรักษาโดยทั่วไปเป็นเรื่องที่ต้องคำนึงถึงนั่นคือการสร้างโปรแกรมติดตั้งให้เป็นทักษะเฉพาะหรือไม่? * * * * ตัวอย่างเช่นฉันมีชุดของแอปพลิเคชัน winform ที่อยู่ในไดเรกทอรีที่ใช้ร่วมกันบนเซิร์ฟเวอร์ที่ใช้งานจริง กลุ่มเฉพาะสามารถเรียกใช้แอปพลิเคชันจากไดเรกทอรีนี้ แต่ผู้ดูแลระบบเท่านั้นที่สามารถแก้ไขไฟล์ปฏิบัติการได้ กระบวนการปรับใช้ปัจจุบันเกี่ยวข้องกับการมีผู้ดูแลระบบคัดลอก / วางไฟล์ปฏิบัติการและไลบรารีไปยังไดเรกทอรีที่ใช้ร่วมกัน เนื่องจากไม่ได้ติดตั้งแอปพลิเคชั่นในเครื่องของผู้ใช้แต่ละคนคุณควรสร้างตัวติดตั้งสำหรับการปรับใช้แอปพลิเคชันรุ่นใหม่เหล่านี้ไปยังไดเรกทอรีที่ใช้ร่วมกันหรือไม่ Edit-- ฉันรู้สึกว่าคำตอบที่นี่ให้คำแนะนำที่มั่นคงดังนั้นฉันต้องการแบ่งปันสิ่งที่ฉันเกิดขึ้นสำหรับโครงการปัจจุบันของฉันที่ฉันต้องการสร้างแอปพลิเคชั่นจำนวนมากและปรับใช้กับโฟลเดอร์แต่ละโฟลเดอร์ ฉันพบแพ็คเกจ NuGet ชื่อ_PublishedApplicationsซึ่งเลียนแบบพฤติกรรมของ _PublishedWebsites สำหรับโครงการเว็บ แนวคิดคือคุณติดตั้งแพ็กเกจ NuGet …

2
การปรับใช้เป็นศูนย์การหยุดทำงาน - Schema Db การนำส่ง
การใช้ Zero Downtime Deploymentประสบปัญหาเดียวกัน แต่ฉันต้องการคำแนะนำเกี่ยวกับกลยุทธ์ที่ฉันกำลังพิจารณา บริบท แอปพลิเคชันบนเว็บพร้อม Apache / PHP สำหรับการประมวลผลฝั่งเซิร์ฟเวอร์และฐานข้อมูล MySQL / ระบบไฟล์เพื่อการคงอยู่ ขณะนี้เรากำลังสร้างโครงสร้างพื้นฐาน ฮาร์ดแวร์ระบบเครือข่ายทั้งหมดจะมีความซ้ำซ้อนและสายเคเบิลเครือข่ายหลักทั้งหมดจะถูกใช้ในคู่ที่ถูกผูกมัดสำหรับการป้องกันความผิดพลาด เซิร์ฟเวอร์กำลังได้รับการกำหนดค่าให้เป็นคู่ที่มีความพร้อมใช้งานสูงสำหรับความทนทานต่อข้อผิดพลาดของฮาร์ดแวร์และจะมีความสมดุลของโหลดสำหรับทั้งการยอมรับข้อบกพร่องของเครื่องเสมือนและประสิทธิภาพทั่วไป มันเป็นความตั้งใจของฉันที่เราสามารถใช้การปรับปรุงกับแอปพลิเคชันโดยไม่ต้องหยุดทำงาน ฉันใช้ความเจ็บปวดอย่างมากเมื่อออกแบบโครงสร้างพื้นฐานเพื่อให้แน่ใจว่าฉันสามารถให้เวลาได้ 100% มันน่าผิดหวังอย่างยิ่งที่มีเวลาหยุดทำงาน 10-15 นาทีทุกครั้งที่มีการอัปเดต สิ่งนี้มีความสำคัญอย่างยิ่งเนื่องจากเราตั้งใจที่จะมีวงจรการเผยแพร่ที่รวดเร็วมาก (บางครั้งอาจถึงหนึ่งหรือมากกว่านั้นต่อวัน โครงสร้างเครือข่าย นี่เป็นบทสรุปของเครือข่าย: Load Balancer |----------------------------| / / \ \ / / \ \ | Web Server | DB Server | Web Server | DB Server …

3
เราจะติดตามเวอร์ชันของรหัสของเราในแต่ละสภาพแวดล้อมได้อย่างไร
ขณะนี้ทีมของฉันใช้กระบวนการแยก / ปรับใช้ที่ค่อนข้างง่ายซึ่งมีลักษณะดังนี้: ┌────────┐ ┌────┐ ┌──────┐ Environments: │ DEV │ │ QA │ │ PROD │ └────────┘ └────┘ └──────┘ ▲ ▲ ▲ │ │ │ ┌────────┐ ┌────┐ ┌──────┐ Builds: │ DEV │ │ QA │ │ PROD │ └────────┘ └────┘ └──────┘ ▲ ▲ ▲ │ │ │ ┌────────┐ ┌────┐ ┌──────┐ …

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