การแสดงละครคืออะไร


18

ฉันคิดว่าฉันทำสิ่งนี้ได้ แต่หลังจากอ่านการจัดส่งอย่างต่อเนื่อง (หนังสือยอดเยี่ยม) ฉันสับสนเล็กน้อย พวกเขาพูดคุยเกี่ยวกับการมีเซิร์ฟเวอร์สำหรับ:

  • พัฒนาการ
  • การทดสอบอัตโนมัติในรูปแบบต่าง ๆ
  • การทดสอบการยอมรับของผู้ใช้ (UAT) - เช่นนั่งกับลูกค้าและแสดงให้พวกเขาและให้พวกเขาทำการทดสอบเชิงสำรวจ ผู้ทดสอบภายในสามารถใช้การตั้งค่านี้สำหรับการทดสอบเชิงสำรวจ
  • จัดฉาก
  • การผลิต

ฉันมักจะคิดว่าการจัดเตรียมเป็นการจัดหาฟังก์ชั่น UAT แต่พวกเขาดูเหมือนจะจัดเตรียมเป็นระดับแยกต่างหาก ดังนั้นในรูปแบบนั้นเซิร์ฟเวอร์ staging จะมีฟังก์ชันอะไรให้บ้าง


10
ฉันไม่สามารถพูดได้ว่าฉันเห็นด้วยกับวิธีการนั้น UAT ควรทำตามข้อกำหนดที่ใกล้เคียงกับระบบถ่ายทอดสดมากที่สุดเท่าที่จะทำได้ (เช่นการจัดเตรียม) ฉันไม่สามารถนับจำนวนครั้งที่เราได้ทำ UAT และให้ทุกคนบ่นเรื่องความเร็วซึ่งเราต้องอธิบายพันครั้งว่า "ระบบสดจะเร็วขึ้น" และเมื่อระบบถ่ายทอดสดไม่เร็วขึ้นเนื่องจากข้อผิดพลาดในรหัสหรือแบบสอบถาม SQL คุณต้องกินคำพูดของคุณเอง
Mark Henderson

เอือด = การทดสอบการยอมรับของผู้ใช้ใช่ไหม
Martin Thoma

คำตอบ:


13

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

UAT โดยทั่วไปใช้สภาพแวดล้อม "การทดสอบ" ที่แตกต่างจากฮาร์ดแวร์ / ซอฟต์แวร์ / การกำหนดค่าที่จะใช้ในการผลิตอย่างมีนัยสำคัญ

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


การทดสอบเพิ่มเติมมักจะเกิดขึ้นบนเซิร์ฟเวอร์ staging เช่นกันไม่ใช่เฉพาะที่ UAT - ก่อนที่จะเริ่มใช้งานจริง
jftuga

3
@jftuga ดูประโยคสุดท้ายของย่อหน้าแรก ...
คริส S

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

1
@Brandon จากประสบการณ์ของคุณ "Staging Server" คืออะไร? นี่อาจเป็นความแตกต่างในระดับภูมิภาคเช่น "ตีกลับ" เซิร์ฟเวอร์
Chris S

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

17

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

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

ดังนั้นนี่คือสิ่งที่เราทำ:

  • พัฒนาการ
    • รวมถึงการรวมอย่างต่อเนื่องและการทดสอบอัตโนมัติ
  • ปล่อยการทดสอบ
    • กลุ่มของฉันวิเคราะห์การเปิดตัว
    • ตรวจสอบบันทึกการติดตั้ง
    • การทดสอบย้อนกลับ
  • ระบบประกันคุณภาพ
    • การทดสอบการยอมรับของผู้ใช้

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

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

จากนั้นทุกคนเข้าใจว่าเมื่อการฝึกครั้งต่อไปเริ่มขึ้นมันจะลบล้างสิ่งที่อยู่บนเซิร์ฟเวอร์การจัดเตรียมและตั้งกลับไปที่พื้นฐานการรถไฟ นักพัฒนามั่นใจว่าการเปลี่ยนแปลงของพวกเขาเกิดขึ้นบนรถไฟหรือตัดสินใจว่าพวกเขายังไม่พร้อมสำหรับการใช้งานทั่วไปซึ่งในกรณีนี้การเปลี่ยนแปลงเหล่านั้นจะถูกลบบนเซิร์ฟเวอร์จัดเตรียม

สรุปแล้วคำตอบสั้น ๆ (อย่างน้อยสำหรับเรา) คือเป็นไปไม่ได้ที่จะทดสอบระบบที่ซับซ้อนใน QA อย่างสมบูรณ์ การจัดเตรียมเป็นวิธีที่ปลอดภัยในการทำการทดสอบการผลิตอย่าง จำกัด

ในบันทึกที่เกี่ยวข้องนี่คือสไลด์ของฉันจากงานนำเสนอที่ฉันเพิ่งให้กับกระบวนการปล่อยของเราทำงาน


5

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

ตัวอย่างนี้จะเป็น Windows Azure ซึ่งต้องใช้เวลา 5-25 นาทีในการปรับใช้เวอร์ชันใหม่ แต่คุณสามารถปรับใช้กับสภาพแวดล้อมการแสดงละครทำการทดสอบแล้วเปลี่ยนสภาพแวดล้อมการผลิตและการจัดเตรียมทันที


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