สภาพแวดล้อมการพัฒนาแบบเสมือนจริงในเครือข่ายองค์กร


11

เราพยายามที่จะใช้สภาพแวดล้อมการพัฒนาโดยใช้ระบบเสมือนจริงสำหรับทีมเล็ก ๆ ของ 4 นักพัฒนาภายในองค์กรองค์กร สิ่งนี้จะช่วยให้เราสามารถตั้งค่าการพัฒนาทดสอบและสภาพแวดล้อมแบบแยกต่างหากรวมถึงการอนุญาตให้เข้าถึงระบบปฏิบัติการใหม่ที่เป็นข้อกำหนดสำหรับระบบหรือเครื่องมือที่เรากำลังประเมินอยู่ เรานำเสนอเครื่องเวิร์คสเตชั่นที่มีอยู่เดิมอีกครั้งโดยโยนในหน่วยความจำ 24GB และ RAID-10 และทำได้ดีจนกระทั่งเราพยายามเพิ่มเครื่องในโดเมน

ตอนนี้เรากำลังเริ่มสงครามที่นักพัฒนาองค์กรทุกคนตั้งแต่เริ่มต้นต้องต่อสู้ - การต่อสู้เพื่อการควบคุมท้องถิ่นของสภาพแวดล้อมการพัฒนาและการทดสอบ เครือข่ายและผู้ดูแลระบบไอทีได้หยิบยกข้อกังวลต่าง ๆ ตั้งแต่ "ESX Server เป็นมาตรฐานขององค์กร" ถึง "เซิร์ฟเวอร์ไม่ได้รับอนุญาตบนไคลเอนต์ VLAN" ถึง "[กรอกแบบเติมเปล่า] ไม่ใช่ทักษะที่ตั้งอยู่ในท้องถิ่น หรือองค์กรไอทีขององค์กร "

เราสามารถปรับระดับฮาร์ดแวร์ระดับการผลิตและการสนับสนุนด้านไอทีอย่างเป็นทางการหากเราจำเป็นต้องใช้ แต่ต้องใช้เวลาและมีอาการปวดหัวทั้งหมด แม้ว่าจะใช้เวลาหลายเดือนกว่าจะได้รับทรัพยากรไอทีอย่างเป็นทางการจากการปฏิบัติเช่นนี้ในฐานะระบบการผลิต - และแม้ว่าเราจะทำก็ตามเราอาจสูญเสียการควบคุมในท้องถิ่นที่เราต้องการ

ฉันจินตนาการว่าคุณหลายคนมีความลำบากคล้ายกันในการควบคุมนักพัฒนาของสภาพแวดล้อมที่ไม่ใช่การผลิต - และการจำลองเสมือนโดยเฉพาะ - ดังนั้นคำถามของฉันมีดังนี้:

  1. กลยุทธ์และข้อโต้แย้งใดที่ช่วยให้คุณชนะโครงสร้างพื้นฐาน (IT & เครือข่าย) เพื่อให้ไซโลประเภทนี้มีอยู่ในองค์กรที่มีเครือข่ายมาตรฐานและนโยบายความปลอดภัยในสถานที่ซึ่งโดยทั่วไป (และเข้าใจได้) ห้ามประเภทนี้ โครงสร้างส่วนกลางที่มีการจัดการ?
  2. คุณพบสิ่งนี้เป็นเรื่องของเหตุผลทางเทคนิคหรือมากกว่าของการต่อสู้ทางการเมืองเพื่อการควบคุมและความเป็นเจ้าของ?
  3. หากคุณลงเอยด้วยสภาพแวดล้อมการพัฒนาที่จัดการโดย IT สิ่งกีดขวางบนถนนนั้นมีไว้สำหรับการพัฒนาและทดสอบในแต่ละวันเป็นอย่างไร
  4. มีใครที่จะย้ายสภาพแวดล้อมการพัฒนาของพวกเขาไปยัง VLAN ที่ถูกตัดการเชื่อมต่อหรือเครือข่ายที่แยกจากกันทั้งหมดเพื่อหลีกเลี่ยงปัญหาการเข้าถึงเครือข่ายเหล่านี้หรือไม่?

และนี่ไม่ใช่ Hyper-V vs. สงคราม ESX อันศักดิ์สิทธิ์ (เราน่าจะใช้ได้ดี - แต่ Hyper-V ถูกเลือกเพราะมันเป็น "ฟรี" กับ MSDN สำหรับวัตถุประสงค์เหล่านี้ [ใช่ VMWare มีเครื่องมือฟรีเช่นกัน - แต่ โดยทั่วไปเครื่องมือการจัดการที่ดีไม่ใช่] และจะง่ายต่อการจัดการโดยนักพัฒนาท้องถิ่นใน "ร้านค้าของ Microsoft") - ดังนั้นข้อโต้แย้งสำหรับหรือต่ออาจอยู่นอกขอบเขตของคำถามนี้

นี่คือ virtualization น้อยกว่าเมื่อเทียบกับฮาร์ดแวร์ทางกายภาพ - ฉันคิดว่าคำถามเดียวกันสามารถถามได้โดยไม่ต้องส่วนประกอบเสมือนจริงเพื่อสมการ

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


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

ดูเพิ่มเติมที่programmers.stackexchange.com/questions/108435
Robert Harvey


2
ตกลงชัดเจน: เราต้องการความสามารถในการแยกการพัฒนาตามความต้องการการทดสอบและสภาพแวดล้อมการผลิต การทดสอบหน่วยอัตโนมัติ / CI; การเข้าถึงระบบปฏิบัติการและ / หรือเครื่องมือที่เราไม่ได้ทำงานในสภาพแวดล้อมการผลิตของเราในขณะนี้ แต่เป็นข้อกำหนดสำหรับระบบหรือเครื่องมือที่เรากำลังประเมิน จริงๆแล้วฉันคิดว่าประโยชน์ของนักพัฒนาที่มีสภาพแวดล้อมแบบฉากสำหรับการทดสอบและการปรับใช้รวมถึงการใช้ virtualization โดยทั่วไปนั้นเป็นที่ยอมรับและได้รับการยอมรับ ที่ได้รับการควบคุมดูแลระบบท้องถิ่นไม่จำเป็นสำหรับทุกคน แต่มันเป็นของบางอย่าง
ScottBai

1
คุณสร้างประเด็นที่ถูกต้องเกี่ยวกับการระบุกรณีของฉัน (ผลประโยชน์) - อย่างไรก็ตามนั่นเป็นส่วนหนึ่งของคำถาม สภาพแวดล้อมการพัฒนาปัจจุบันประกอบด้วยเวิร์คสเตชั่นของนักพัฒนาควบคู่ไปกับการปรับใช้กับเซิร์ฟเวอร์การผลิตซึ่ง devs มีสิทธิ์ จำกัด (คิดว่าคัดลอกไฟล์ + ฐานข้อมูล SQL ส่วนตัว DBO) เห็นได้ชัดว่านี่ไม่เหมาะสม (ฉันใหม่ที่นั่น แต่ทุกคนรู้แล้วว่านี่เป็นปัญหาใหญ่) นั่นเป็นคำถามที่ดีเพราะส่วน virtualization นั้นไม่ได้เป็นปัจจัยที่แตกต่างอย่างมีนัยสำคัญมากกว่าถ้าเรามีเครื่องทางกายภาพที่มีอยู่เล่นบทบาทนี้
ScottBai

คำตอบ:


7

คุณได้ "เลิกจอง" ไปแล้วและกำลังพยายามหาเหตุผล

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

เหตุผลทั่วไปที่โปรแกรมเมอร์ต้องการระบบของตัวเองจากประสบการณ์ของฉันคือ:

  • ไอทีไม่ตอบสนอง ใช้เวลาหลายสัปดาห์กว่าจะได้รับสภาพแวดล้อมใหม่ แต่คุณต้องการตอนนี้
  • คุณต้องการการควบคุม พวกเขาจะไม่มอบให้คุณ คุณต้องสามารถตั้งค่าการอนุญาตติดตั้งส่วนประกอบและอื่น ๆ ไอทีจะไม่ยอมให้คุณ

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

  • ทำความรู้จักกับเพื่อน. ทำความรู้จักกับบางคนในไอที คุยกับพวกเขาแบบตัวต่อตัว อธิบายสถานการณ์ของคุณและถามพวกเขาว่าสามารถทำได้ คุณอาจได้รับสิทธิ์ผู้ดูแลระบบไปยังเซิร์ฟเวอร์ dev เพียงแค่ถาม
  • เรียกใช้ Local หากคุณสามารถเรียกใช้บางส่วนของแอปพลิเคชันบนเครื่องท้องถิ่นของคุณคุณอาจไม่จำเป็นต้องใช้เซิร์ฟเวอร์หรือคุณสามารถหลบหนีด้วยอินสแตนซ์ DB ที่ถูกล็อค
  • รับสปอนเซอร์ ไม่มีอะไรทำให้ฝ่ายไอทีเคลื่อนไหวเหมือน VP ที่เข้ามาและพูดว่า "ทำไมคุณบล็อกโครงการของฉัน" ใช้อิทธิพลของผู้สนับสนุนโครงการของคุณ
  • สู่คลาวด์! หากงบประมาณโครงการของคุณครอบคลุมเพียงแค่โฮสต์ใน EC2 คุณจะข้ามแผนกไอทีทั้งหมดของคุณ ความเสี่ยงกำลังถูกแฮ็กและถูกไล่ออกเพราะให้ข้อมูล บริษัท นอกไฟร์วอลล์
  • เรียกใช้เกมยาว ใส่ในคำขอสำหรับเซิร์ฟเวอร์ที่ได้รับอนุญาตและดูแลอย่างถูกต้องก่อน เมื่อคุณได้รับการร้องเรียนเกี่ยวกับ homebrew ของคุณบอกว่าคุณยังคงรอเซิร์ฟเวอร์อย่างเป็นทางการ
  • Preallocate ขอเซิร์ฟเวอร์ที่คุณคิดว่าคุณอาจต้องการในอนาคต จากนั้นนำไปใช้อีกครั้งเมื่อคุณมีความต้องการที่แท้จริง

คะแนนที่ถูกต้องมาก +1 สำหรับเคล็ดลับของสปอนเซอร์มันใช้งานได้อย่างยอดเยี่ยมที่สุด!
Saul Delgado

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

2

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

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

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

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

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

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

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

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

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

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

Mihaly


1

แผนกไอทีมีจุดจริง

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

หากคุณทำตามเส้นทางนี้คุณจะพบปัญหามากขึ้นเรื่อย ๆ เมื่อคุณเข้าใกล้การผลิตมากขึ้น - ในสถานการณ์กรณีที่เลวร้ายที่สุดคุณจะต้องคำนึงถึงปัจจัยทั้งหมดของแอปพลิเคชันเพื่อให้ทำงานในสภาพแวดล้อมการผลิตมาตรฐาน

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

โปรแกรมเมอร์ควรเขียนโปรแกรมปล่อยให้โครงสร้างพื้นฐานด้านไอทีจัดเตรียมโครงสร้างพื้นฐานและเครือข่ายกำหนดค่าเครือข่าย - วิธีที่ บริษัท ทำงาน!

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


0

คุณจะต้องทำกรณีของคุณด้วยการจัดการที่:

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

  2. คุณสามารถใช้งานได้ในเวลาที่เหมาะสมโดยมีค่าใช้จ่ายน้อยกว่า IT และ

  3. การมีการควบคุมในท้องถิ่นจะลดต้นทุนและลดความล่าช้าในการออกสู่ตลาดและ

  4. คุณสามารถตอบสนองความกังวลด้านความปลอดภัยและการบำรุงรักษาและ

  5. ผลผลิตของโปรแกรมเมอร์จะไม่ได้รับผลกระทบ

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

ดังนั้นการประหยัดต้นทุนที่แสดงให้เห็นของคุณจะต้องมาในรูปแบบของความยืดหยุ่นในการกำหนดค่าและความสามารถในการเปลี่ยนการกำหนดค่าเหล่านั้นทันที


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