การจัดเตรียมสภาวะแวดล้อม vs สภาวะแวดล้อมการใช้งานจริง


80

ฉันทำงานให้กับ บริษัท ที่เราสร้างแอพพลิเคชั่นระดับองค์กรและเรารักษาสภาพแวดล้อมสามประการ: การพัฒนา (หรือdev ) การจัดเตรียม (หรือขั้นตอน ) และการผลิต (หรือแยง )

ความหมายของdevนั้นใช้งานง่าย: เป็นสภาพแวดล้อมที่ใช้ระหว่างการพัฒนาแอปพลิเคชัน

ความแตกต่างระหว่างสภาพแวดล้อมการจัดเตรียมและการผลิตคืออะไร

คำตอบ:


122

สำหรับ บริษัท ขนาดเล็ก (ไม่ชัดเจนว่า บริษัท ของคุณใหญ่แค่ไหน) สภาพแวดล้อมทั้งสาม (dev, stage, production) เป็นเรื่องธรรมดา บริษัท ขนาดใหญ่มักจะมีสภาพแวดล้อมการประกันคุณภาพระหว่าง dev และ stage

โดยทั่วไปแล้วสิ่งเหล่านี้จะพังดังนี้:

dev : การคัดลอกรหัสการทำงาน การเปลี่ยนแปลงที่ทำโดยนักพัฒนาจะถูกปรับใช้ที่นี่เพื่อให้สามารถทำการทดสอบการรวมและคุณสมบัติ สภาพแวดล้อมนี้มีการปรับปรุงอย่างรวดเร็วและมีแอพพลิเคชั่นเวอร์ชันล่าสุด

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

การ staging : นี่คือตัวเลือกรีลีสและโดยปกติสภาพแวดล้อมนี้จะเป็นมิเรอร์ของสภาพแวดล้อมการใช้งานจริง พื้นที่การจัดเตรียมประกอบด้วยแอปพลิเคชัน "รุ่นถัดไป" และใช้สำหรับการทดสอบความเครียดขั้นสุดท้ายและการอนุมัติลูกค้า / ผู้จัดการก่อนที่จะเผยแพร่

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


7
สิ่งนี้ถูกต้องในแง่ของซอฟต์แวร์ นอกจากนี้ยังมีข้อมูล: dev และ qa เชื่อมต่อกับฐานข้อมูลทดสอบเพื่อให้นักพัฒนาและผู้ทดสอบไม่ต้องกังวลเกี่ยวกับการแนะนำการเปลี่ยนแปลงในขณะที่ staging และการผลิตใช้ฐานข้อมูลการผลิต นึกถึงธนาคาร
Juan Lanus

4
มีอีกมิติหนึ่ง: ใครคือผู้ใช้ dev: นักพัฒนา; qa (ฉันชอบ qc): ผู้ทดสอบ; การจัดเตรียมและการผลิต: ผู้ใช้จริง ในแอปพลิเคชันธุรกิจที่มีฐานข้อมูลเฉลี่ยผู้พัฒนาไม่ได้รับอนุญาตให้ดูฐานข้อมูลการผลิตแบบสัมผัสเพียงอย่างเดียวพวกเขาได้รับการตกแต่งด้วยเวอร์ชันที่ไม่ระบุชื่อ
Juan Lanus

3
@JuanLanus: โดยปกติสภาพแวดล้อมการจัดเตรียมจะใช้สำเนาของข้อมูลการผลิต - โดยทั่วไปคุณไม่ต้องการเปลี่ยนข้อมูลการผลิตจากการจัดเตรียม
sleske

1
@JuanLanus: ขออภัยฉันหมายถึง "คุณไม่ต้องการให้การแก้ไขในสภาพแวดล้อมการแสดงละครปรากฏในสภาพแวดล้อมการผลิต" - ดังนั้นการแสดงละครจะใช้สำเนาข้อมูลการผลิต แต่ (โดยทั่วไป) สำเนาที่แก้ไขได้
sleske

2
เราเรียก qa 'test': dev (me), test (ทีม), staging (ลูกค้า), prod (โลก)
Rudie

13

ฉันรู้สึกประหลาดใจเล็กน้อยที่สภาพแวดล้อมการทดสอบไม่ปรากฏเช่นเดียวกับที่ตั้งของรหัสที่จะไปก่อนที่จะได้รับการเลื่อนขั้นเป็น staging

ในการตอบคำถาม:

สภาพแวดล้อมบนเวทีควรสะท้อนสภาพแวดล้อมการผลิตให้ใกล้เคียงที่สุด

มันถูกใช้สำหรับการตรวจสอบขั้นตอนการปรับใช้ - ทำให้แน่ใจว่าเมื่อรหัสพร้อมใช้งานแล้วสามารถนำไปใช้ได้โดยไม่ทำให้เกิดปัญหา

นั่นคือรหัสไปที่การแสดงละคร - นี่คือการทดสอบอย่างครอบคลุมและถดถอยเพื่อให้แน่ใจว่าการปรับใช้เป็นไปตามแผนที่วางไว้ (และขจัดปัญหาใด ๆ หากไม่มี)


1
แน่นอน - มีอยู่ที่จะนำโค้ดออกจากสภาพแวดล้อม dev ไปสู่สภาพแวดล้อมที่มีการควบคุมมากกว่าสิ่งอื่นใดแสดงการพึ่งพาใด ๆ ที่ไม่ได้รับในเอกสารประกอบ
Danny Staple

สิ่งนี้ไม่เกี่ยวกับคำถามที่ว่า ...
nbro

4

สภาพแวดล้อมแบบสเตจเป็นสภาพแวดล้อมแบบ preprod ที่สะท้อนการผลิต บ่อยครั้งที่มันอาจมีข้อมูลการผลิตบางอย่างเพื่อให้กลุ่มการทดสอบที่ประกอบด้วยผู้ใช้จริงและผู้ทดสอบ QA สามารถยืนยันได้ว่ารหัสฐาน / ข้อมูลที่วางจำหน่ายล่วงหน้าจะนำไปใช้และทำงานอย่างถูกต้องในสภาพแวดล้อมที่มีสภาพเหมือน prod การทดสอบ

ในฐานะที่เป็น @Oded notes มักจะมีสภาพแวดล้อม QA ที่ผู้ทดสอบ QA ใช้ในการทดสอบรหัส


3

ประสบการณ์ของฉันกับรัฐบาลสหรัฐฯ / กระทรวงกลาโหมมันคือ:

  1. DEVELOPMENT / TEST สำหรับนักพัฒนาและผู้พัฒนาแอปพลิเคชัน พวกเขาสร้างและทดสอบแอปพลิเคชันห่างจากระบบองค์กร
  2. เมื่อแอปพลิเคชันเสร็จสมบูรณ์แอปพลิเคชันจะถูกปรับใช้กับสภาพแวดล้อมไอทีลงในเซิร์ฟเวอร์บรรจุภัณฑ์
  3. จากนั้นเป็นต้นมาแอพพลิเคชั่นได้รับการสนับสนุนจาก IT, ย้ายเข้าสู่ STAGING (ซึ่งช่วยให้ฝ่ายไอทีสามารถพัฒนา / ตรวจสอบแนวทางการนำไปใช้งานการกำหนดค่า ฯลฯ ) การทดสอบผู้ใช้อาจเกิดขึ้นในระดับนี้ในระดับหนึ่งเพื่อตรวจสอบว่าแอปพลิเคชันจะทำงานตามที่คาดไว้ในระบบที่จำลองการผลิต
  4. หากแผนการทดสอบทั้งหมดเสร็จสมบูรณ์และดีต่อการใช้งานแอปพลิเคชันจะถูกย้ายไปที่ PRODUCTION และเข้าสู่โหมดการพัฒนา (เช่นการปฏิบัติงานและการบำรุงรักษาหรือ O&M)
  5. การอัปเดตใหม่จากนักพัฒนาจะถูกปรับใช้ในการบรรจุภัณฑ์และกระบวนการดำเนินการต่อ

2
ยินดีต้อนรับสู่โปรแกรมเมอร์ เว็บไซต์ของเรามุ่งเน้นไปที่คำถามและคำตอบคุณภาพสูง มันไม่เหมือนฟอรัมทั่วไป โปรดดูศูนย์ช่วยเหลือสำหรับข้อมูลเพิ่มเติม ฉันไม่เห็นว่าคำตอบของคุณตอบคำถามใด ๆ ที่ยังไม่ได้รับคำตอบสำหรับคำถามนี้

2

ในฐานะนักพัฒนาเว็บมีสามสภาพแวดล้อมส่วนใหญ่ที่จะต้องพิจารณาในทางปฏิบัติ :

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

การจัดเตรียม : สภาพแวดล้อมที่กำหนดค่าให้โฮสต์ผู้สมัครที่ได้รับการอนุมัติของแอปพลิเคชันหลังจากประกาศการแช่แข็งรหัส มันกำหนดเป้าหมายผู้จัดการโครงการ / เจ้าของร่วมกับทีมพัฒนาเพื่อยอมรับขอบเขตของการเปิดตัวผู้สมัคร มันเกี่ยวข้องกับการประกันคุณภาพและทีมพัฒนาเพื่อทำการแก้ไขขั้นสุดท้ายและการตกแต่งขั้นสุดท้ายก่อนที่จะปล่อยสู่การผลิต แนวทางปฏิบัติที่ดีที่สุดคือการเลียนแบบสภาพแวดล้อมการผลิตโดยใช้ข้อมูลล่าสุดที่มีอยู่จากฐานข้อมูลสดที่คัดลอกมาจากสภาพแวดล้อมการผลิต โดยทั่วไปสภาพแวดล้อมการจัดเตรียมนั้นสามารถเข้าถึงได้โดยทีมงานภายในและผู้มีส่วนได้ส่วนเสียเท่านั้นดังนั้นจึงปลอดภัยบนเซิร์ฟเวอร์สาธารณะหรือเผยแพร่บนระบบอินทราเน็ตหากผู้มีส่วนได้ส่วนเสียทุกคนสามารถเข้าถึงเครือข่ายท้องถิ่นได้ สภาวะแวดล้อม staging ถูกกำหนดค่าเพื่อแสดงข้อผิดพลาดทางเทคนิคปานกลางหรือเต็ม

การพัฒนา : สภาพแวดล้อมส่วนตัวที่กำหนดค่าโดยผู้พัฒนารายเดียวบนเครื่องของเขาเพื่อตรวจสอบงานของตนเองระหว่างรอบการพัฒนาซึ่งปกติเรียกว่าการวิ่งในสภาพแวดล้อมการต่อสู้ สภาพแวดล้อมการพัฒนาได้รับการกำหนดค่าให้แสดงข้อผิดพลาดทางเทคนิคแบบเต็ม

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