คุณใช้แนวทางการพัฒนาเช่นการควบคุมเวอร์ชันการทดสอบและการรวม / ปรับใช้อย่างต่อเนื่องกับการบริหารระบบอย่างไร


18

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

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

โดยทั่วไปหรือโดยเฉพาะคุณจะประสบความสำเร็จในการบริหารระบบได้อย่างไร

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


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

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

คำตอบ:


15

คำตอบสั้น ๆ คือ "การจัดการการปรับใช้ระบบปฏิบัติการ", "การจัดการการกำหนดค่า" และ "บรรจุภัณฑ์ซอฟต์แวร์" คำตอบยาวดังนี้

ฉันต้องการเพิ่มการตอบกลับของ Daniel Pittman โดยแยกย่อยของสิ่งที่เป็น "ระบบ" ในการบริหารระบบ

ระบบหรือสภาพแวดล้อมจะประกอบด้วย:

  • เซิร์ฟเวอร์
  • ระบบปฏิบัติการ
  • องค์ประกอบ
  • แพ็คเกจผู้ขาย; และ
  • แพ็คเกจท้องถิ่น

การห่อหุ้มสิ่งเหล่านี้จะเป็นกระบวนการเช่น:

  • การปรับใช้หรือการสร้างภาพของระบบปฏิบัติการ
  • การจัดการการตั้งค่า
  • การจัดการซอฟต์แวร์สำเร็จรูป
  • การตรวจสอบ / การเข้าสู่ระบบ
  • การตรวจสอบ
  • การสำรองข้อมูล

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

  • การทำซ้ำ
  • การบำรุงรักษา
  • วัด
  • ประสิทธิภาพ
  • Trackability
  • การตรวจสอบได้
  • ความไม่แน่นอน

นี่คือการถ่ายโอนข้อมูลสมองอย่างรวดเร็ว ฉันแน่ใจว่าสามารถเพิ่มในรายการทั้งหมดได้อีก

คำถามของคุณสัมผัสกับจำนวนเหล่านี้โดยไม่ต้องใช้คำเฉพาะ ตัวอย่างเช่นคุณต้องการที่จะสามารถปรับใช้งานได้อย่างง่ายดายและเปลี่ยนกลับเช่นต้องการการบำรุงรักษา; คุณต้องการที่จะทำในสภาพแวดล้อมการทดสอบและการทดสอบจนผ่านเช่นการทำซ้ำการทดสอบและการวัด คุณกำลังคิดที่จะวางอิมเมจ vm ไว้ในการควบคุมเวอร์ชันเพราะคุณต้องการความสามารถในการทำซ้ำของระบบปฏิบัติการและการปรับใช้การกำหนดค่า

มีเครื่องมือมากมายที่จะช่วยคุณในเรื่องนี้บางคนพูดถึงโดยแดเนียล บางคนอื่น ๆ :

  • คิกสตาร์ท (ตาม RedHat), พรีด (อิงเดเบียน), WDS (MS Windows) สำหรับการปรับใช้สภาพแวดล้อมระบบปฏิบัติการที่รู้จัก
  • Spacewalk / Satellite (RedHat based), นโยบายกลุ่ม (MS Windows) สำหรับการกำหนดค่าและการจัดการแพ็คเกจ
  • ระบบบรรจุภัณฑ์ YUM และ APT สำหรับการสร้างการใช้งานการอัพเกรดและการลบแพ็คเกจ (ชุดของไบนารีข้อมูลและการกำหนดค่าที่ประกอบด้วยซอฟต์แวร์หนึ่งชิ้น)
  • Nagios, OpenNMS และ SCOM สำหรับการตรวจสอบ
  • Amanda, Bacula และ Windows Backup Server สำหรับการสำรองข้อมูล
  • Munin, PCP และ Hyperic สำหรับการตรวจสอบประสิทธิภาพ
  • CVS, SVN, GIT หรือ Bazaar สำหรับการควบคุมเวอร์ชัน
  • ฮัดสันและเจนกินส์สำหรับการสร้างงาน
  • ซีลีเนียมและหุ่นยนต์สำหรับการทดสอบ
  • Bugzilla, Request Tracker และ Jira สำหรับการบันทึก, การสื่อสารและการติดตาม

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


มาร์วินคืออะไร ฉันไม่พบการอ้างอิงถึงหรือว่าเป็นตัวพิมพ์ผิด
thelsdj

s / Marvin / Hudson / - ขอบคุณสำหรับการระบุว่า @thelsdj :-)
nearora

16

คำเตือน: ฉันเป็นหนึ่งในนักพัฒนาของ Puppet

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

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

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

การเคลื่อนไหวDevOpsเป็นอีกแหล่งข้อมูลที่ดีเกี่ยวกับวิธีการทำเช่นนี้ ในขณะที่กฎเกณฑ์นั้นเป็นความร่วมมือที่ดีขึ้นระหว่างนักพัฒนาและพนักงานฝ่ายปฏิบัติการ


15
ตอนนี้เรารู้แล้วว่าใครจะรบกวนคำถามหุ่นกระบอกของเรา ...
ewwhite

1

ในโลก Windows ปัญหาเหล่านี้เกี่ยวกับการจัดการวงจรชีวิตของแอปพลิเคชันจะได้รับการแก้ไขด้วย System Center 2012

ใน System Center Virtual Machine Manager (SCVMM) บริการจะถูกกำหนดโดยใช้ 'Service Templates' (เช่นบริการสามระดับแบบคลาสสิก) และสภาพแวดล้อมการดำเนินการถูกกำหนดเป็น 'Clouds' (เช่นการพัฒนาการจัดเตรียมการผลิต) เทมเพลตบริการสามารถกำหนดเวอร์ชันและใช้งานได้ (ในรูปแบบอัตโนมัติ) ไปยังระบบคลาวด์ที่แตกต่างกัน ภายใต้หน้าปก SCVMM จะทำงานเพื่อจัดเตรียมปรับใช้และกำหนดค่าฮาร์ดแวร์เสมือน (VMs ฯลฯ ) และซอฟต์แวร์ (OS, ส่วนประกอบของแอพ ฯลฯ )

System Center Service Manager เป็นส่วนที่เชื่อมโยงสิ่งนี้เข้าด้วยกันจากมุมมองกระบวนการ ตัวอย่างเช่นการจัดการปัญหาและการควบคุมการเปลี่ยนแปลง

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