มาตรฐานการตั้งชื่อสภาพแวดล้อมในการพัฒนาซอฟต์แวร์?


15

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

คำนี้รวมถึง "Local", "Sand", "Dev", "Test", "ผู้ใช้", "QA", "Staging" และ "Prod" (บวกอีกสองสามอย่างที่คนอื่นถาม)

ฉันไม่ได้มองหาความคิดเห็นเพียงอย่างเดียวแม้ว่าจะมีใครบางคนที่นั่น "ทุกคน" มีฉันจะเอามัน - ฉันพยายามที่จะหาคำจำกัดความขั้นสูงโดยผู้มีอำนาจบางอย่างแม้ว่ามันจะไม่เป็นทางการ

นี่คือสภาพแวดล้อมที่เราใช้ในปัจจุบัน:

  1. สภาพแวดล้อมบนพีซีของผู้พัฒนา
  2. สภาพแวดล้อมที่ใช้ร่วมกันซึ่งนักพัฒนาซอฟต์แวร์อัปโหลดรหัสไปยังการทดสอบตัวเองโดยตรง
  3. สภาพแวดล้อมที่ใช้ร่วมกันที่มีการทดสอบมาตรฐานและฟังก์ชั่นการใช้งานโดยพนักงาน QA
  4. สภาพแวดล้อมที่ใช้ร่วมกันซึ่งเสร็จสมบูรณ์และรหัสตรวจสอบ QA ได้รับการอนุมัติจากผู้ขอโครงการ
  5. สภาพแวดล้อมที่สะท้อนสภาพแวดล้อมสุดท้ายเป็นการตรวจสอบขั้นสุดท้ายและเตรียมการปรับใช้
  6. สภาพแวดล้อมสุดท้ายที่มีการใช้รหัส

ฉันรู้ว่าสิ่งที่ฉันเรียกพวกเขา แต่มีมาตรฐานบางอย่างเกี่ยวกับเรื่องนี้? ขอบคุณล่วงหน้า.


ขอบคุณ ฉันไม่ทราบว่าทางทิศตะวันออก ฉันรู้ว่ามันไม่ได้อยู่ใน ServerFault หรือ SuperUser แต่ฉันไม่เคยได้ยิน programmers.se มาก่อน

ฉันตั้งค่าสถานะสำหรับการย้ายดังนั้นควรจะหาทางไปยังเว็บไซต์ที่เหมาะสม
Ricardo Altamirano

ขึ้นอยู่กับขอบเขตของโครงการคุณอาจมีสภาพแวดล้อมน้อยลงหรือมากขึ้น
Yusubov

คำตอบ:


11

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

ฉันได้ทำงานกับสภาพแวดล้อมเพียงหนึ่งเดียวและ 13 ให้มากที่สุด

ในลำดับที่คุณอธิบายฉันมักจะเห็นพวกเขาตั้งชื่อพวกเขาบางอย่างเช่น

  1. local หรือ dev หากคุณไม่ได้ใช้ dev ในขั้นตอนถัดไป
  2. dev หรือการรวมหากนี่เป็นการปรับใช้ครั้งแรกหลังจากการผสาน
  3. ทดสอบหรือ QA
  4. uat หรือ accept หรือ QA ถ้าคุณไม่ได้ใช้ QA ในขั้นตอนที่ 3
  5. pre-prod, staging หรือประสิทธิภาพหากเป็นขั้นตอนการปฏิบัติสำหรับการออกจากระบบครั้งสุดท้าย
  6. แยง

คำแนะนำของฉันคือการยอมรับชื่อวัตถุประสงค์และเกณฑ์ในการเข้าและออกแต่ละผลิตภัณฑ์หรือต่อโครงการเมื่อคุณรู้ว่าคุณต้องการสภาพแวดล้อมที่ 7 หรือต้องการเพียง 5 ในกรณีเดียวด้วยเหตุผลอื่นในอนาคตหารืออีกครั้งด้วย ทีมงาน.

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

หากคุณต้องการตั้งชื่อเซิร์ฟเวอร์ด้วยตนเองฉันมักจะแนะนำให้ตั้งชื่อพวกเขาโดยใครเป็นผู้มีอำนาจ โดยปกติแล้วสิ่งนี้จะเป็นดังนี้:

  • เครื่อง dev สามารถจัดการได้โดยนักพัฒนา
  • นักพัฒนาซอฟต์แวร์ไม่สามารถควบคุมเครื่อง QA ได้ แต่ไม่ได้รับการตรวจสอบโดยฝ่ายสนับสนุนการผลิต
  • เครื่องจักรแยงเป็นธุรกิจของฝ่ายสนับสนุน

คนส่วนใหญ่จบลงด้วยการใช้ชื่อเหล่านั้นเป็นคำนำหน้าหรือคำต่อท้ายเพื่อให้คุณมีห่วงโซ่เช่น "devsqllweb" "qasqlweb" "prodsqlweb" หรืออะไรทำนองนั้น


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

ฉันเห็นมาตรฐานนี้แล้ว เป็นมาตรฐานที่มีทั้งความคิดเห็นหรือเฉพาะเจาะจงกับสถานการณ์บางอย่างโชคไม่ดี
Bill

2

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

สิ่งที่เราทำไปแล้วคือเส้นทางของชื่อ DNS และชื่อแทน กฎคือตัวอักษรตัวแรกระบุบทบาททั่วไปของเซิร์ฟเวอร์ในกระบวนการพัฒนา (โซน)

  • p = การผลิต
  • d = การพัฒนา
  • s = การจัดเตรียม
  • t = การทดสอบ

จากนั้นเรามีชื่อตัวอักษรสูงสุดสามตัวเพื่อระบุบทบาทของเครื่อง

  • แอพพลิเคชั่น =
  • db = ฐานข้อมูล
  • web = ส่วนหน้า / เว็บ
  • kas = การแคช

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

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

สิ่งนี้นำไปสู่สิ่งที่น่าสนใจบางอย่างรายการโปรดสองรายการของฉันคือ Cerberus (Internal proxy) และ hades (เซิร์ฟเวอร์เอกสาร / อินทราเน็ต)

ฉันแน่ใจว่านี่ไม่ใช่วิธีปฏิบัติที่ดีที่สุด แต่นี่คือสิ่งที่เราใช้และทำงานได้ดีสำหรับเรา


1

ไม่มีคำจำกัดความคงที่ มีบางอย่างที่ใช้โดยทั่วไป (ซึ่งคุณได้ระบุไว้) หากคุณต้องการให้ชื่อของตัวละครใน Toy Story แต่ละสภาพแวดล้อมคุณสามารถทำได้ (จะไม่แนะนำ)

สิ่งที่ฉันจะทำคือสร้างอภิธานศัพท์สำหรับ บริษัท ซึ่งเราจะให้ชื่อที่เราต้องการใช้

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