ดูแลระบบเปรียวและ devops - วิธีการบรรลุ? [ปิด]


18

ทุกวันนี้การดูแลระบบและความคล่องตัวของระบบ agile เป็นหัวข้อที่ได้รับความนิยมสูงสุดเกี่ยวกับการบริหารระบบและการปฏิบัติงาน แนวคิดทั้งสองนี้เน้นไปที่การลดช่องว่างระหว่างการปฏิบัติงาน / การดูแลระบบและโครงการ (นักพัฒนาธุรกิจ ฯลฯ ) แม้ว่าคุณจะไม่เคยได้ยินแนวคิด devops แต่ฉันแน่ใจว่าหัวข้อนี้เป็นความกังวลของคุณเช่นกัน

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


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

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

คำตอบ:


30
  • svn / git - การควบคุมการแก้ไขอย่างชัดเจน

  • trac / redmine / jira - การออกตั๋ว

  • cobbler - สำหรับการจัดเตรียมเซิร์ฟเวอร์ระบบปฏิบัติการพื้นฐาน Cobbler เป็นผลิตภัณฑ์ที่เน้นครอบครัวสีแดง แต่ฉันแน่ใจว่ามีบางอย่างที่คล้ายกันสำหรับเดเบียน / อูบุนตู ในทำนองเดียวกัน บริษัท "แผงควบคุมคลาวด์" ส่วนใหญ่อย่าง RightScale จะจัดหาสิ่งนี้ให้คุณ คำหลักที่นี่คือ "JEOS" หรือ "ระบบปฏิบัติการที่เพียงพอ" เส้นทางของฉันคือใช้บรรทัด "% packages --nobase" ใน kickstarts ของฉันและสร้าง stack เฉพาะของฉันผ่าน ...

  • puppet / chef - สำหรับการจัดการการกำหนดค่าและการบังคับใช้ความสอดคล้อง มีตัวเลือกอื่น ๆ ที่นี่เช่นกันมันสำคัญมากกว่าที่คุณใช้อย่างใดอย่างหนึ่ง เคล็ดลับหนึ่งที่ฉันพบว่ามีความสำคัญอย่างยิ่งคือการจัดเก็บการกำหนดค่าในระบบควบคุมเวอร์ชันเดียวกับที่นักพัฒนาใช้ สิ่งนี้ช่วยดึงเวิร์กโฟลว์ทั้งสองทีมเข้าด้วยกันและทำให้มองเห็นซึ่งกันและกัน

  • func (หรือ capistrano หรือ cluster-ssh) - สำหรับการเรียกใช้สคริปต์การปรับใช้ทั่วทั้งคลัสเตอร์ เคล็ดลับที่นี่คือการทำให้บางสิ่งบางอย่างที่นักพัฒนาอาวุโสสามารถรันตัวเองเพื่อผลักดันสิ่งใหม่ให้มีชีวิตและผลักดันการแก้ไขที่หลีกเลี่ยงไม่ได้
    นี่เป็นแกนหลักของการเบี่ยงเบนจริง ๆ ช่วยให้นักพัฒนาสามารถทำลายและแก้ไขสภาพแวดล้อมได้ sysadmins จำนวนมากมีพลังหิวเกินกว่าที่จะปล่อยให้เป็นเช่นนี้หรือการจัดการของพวกเขายังคงทำงานบนความคิดที่ผิดพลาดที่ sysadmins ควรเป็นนักพัฒนาการรักษา (ราวกับว่าเราสามารถอ่านครึ่งหนึ่งของสิ่งที่พวกเขากำลังทำอยู่)

  • cacti / ganglia / collectd / munin - กราฟเป็นสิ่งที่สำคัญมาก มูลค่าทางธุรกิจของตัวชี้วัดที่มีค่ามนุษย์ของภาพที่เรียบง่าย การเชื่อมโยงการประทับเวลาของรหัสผลักกับการประทับเวลาของการเปลี่ยนแปลงในกราฟมีคุณค่าอย่างมากในการแก้ไขปัญหาการถดถอยของประสิทธิภาพและการเห็นข้อเท็จจริงที่แท้จริงเกี่ยวกับการตัดสินใจด้านประสิทธิภาพ มีจุดสำคัญอยู่ที่นี่ที่กราฟจะต้องง่ายต่อการมองเห็นและใช้งานโดยนักพัฒนาและการจัดการของพวกเขาต้องคาดหวังของพวกเขา

  • nagios / zabbix / smokeping / etc - การตรวจสอบสิ่งที่เซิร์ฟเวอร์และตัวชี้วัดประสิทธิภาพประเภท "หน้าฐาน" กราฟเป็นกุญแจอีกครั้ง สิ่งเหล่านี้มีมากสำหรับด้านของทีม

  • gomez / keynote / browsermob - การตรวจสอบประสิทธิภาพเบราว์เซอร์ภายนอกโดยคำนึงถึงบริการของบุคคลที่สาม CDN และปัญหาเวลาแสดงผล สิ่งเหล่านี้มีมากขึ้นสำหรับฝั่ง dev ของทีม

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


2
+1 "แกนหลักของนักพัฒนาช่วยให้นักพัฒนาสามารถทำลายและแก้ไขสภาพแวดล้อมได้"
Ryan Gibbons

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

4

เรากำลังทำสิ่งนี้ที่ National Instruments คุณสามารถอ่านเพิ่มเติมเกี่ยวกับสิ่งที่เรากำลังทำอยู่ได้ที่http://dev2ops.org/blog/2010/4/27/qa-ernest-mueller-on-bringing-agile-to-operations.html

การผสมผสานของเครื่องมือที่ cagenut กล่าวถึงที่นี่โดยพื้นฐานแล้วจะเป็นไปในทิศทางที่เรากำลังเคลื่อนเข้ามาที่นี่


2

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

จากนั้นเริ่มดูแอปพลิเคชันและแนะนำแอปพลิเคชั่นทีละรายการเพื่อแก้ไขปัญหา


introduce them one at a time to solve problems.+1
Banjer

0

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

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