"เราไม่ใช่โปรแกรมเมอร์เราเป็นผู้ดูแลระบบ"
ฉันว่าเวลามีการเปลี่ยนแปลงที่เลวร้ายกว่าที่: greybeard เหมือนผมได้รับการคาดหวังว่าจะเป็นโปรแกรมเมอร์ที่ดีกว่าโปรแกรมเมอร์มืออาชีพหรืออื่น ๆ จะไม่เคยได้รับสามารถที่จะผ่านสำหรับผู้ดูแลระบบ
ตอนนี้เรามี "ผู้ดูแลระบบ" ซึ่งโดยทั่วไปคือผู้ใช้เดสก์ท็อป Windows ที่มีบางจุดที่แปลงเป็น Linux และไม่สามารถโปรแกรมได้และไม่พบสิ่งใด ๆ ที่ผิดปกติ
ช้างในห้องพักเป็นเหตุผลที่ผู้บริหารทนต่อทัศนคติที่ทำลายล้างเช่นนี้ เป็นอันตรายต่อใครหรืออะไร เพื่อธุรกิจและโครงสร้างพื้นฐาน
กลับไปที่ Puppet [, CFEngine, Chef] หัวเรื่อง: ทันทีที่คนหนึ่งตั้งค่าวิธีแก้ปัญหาแบบนั้น ทุกคนแพ้ ทำไม? เนื่องจากผู้ใดก็ตามที่มีแนวคิดนี้ไม่สามารถออกแบบการจัดการการกำหนดค่าที่ห่อหุ้มในรูปแบบของดี, สะอาด, Kickstart [, JumpStart, โปรแกรมติดตั้งอัตโนมัติ, AutoYaST, Ignite-UX, NIM] แพ็คเกจระบบปฏิบัติการ เมื่อคุณต้องใช้เครื่องมือแฮ็คอัตโนมัติเช่น Puppet (หรือ Chef หรือ CFEngine) นั่นหมายความว่าคุณขาดเครื่องมือที่จะออกแบบและใช้กระบวนการที่จะทำให้การออกแบบสมบูรณ์แบบและสมบูรณ์แบบด้วยระบบการจัดการที่สมบูรณ์ อัตโนมัติและไม่โต้ตอบทั้งหมด
อีกจุดที่สำคัญคือถ้าคุณต้องมีหุ่นหรือวิธีการแก้ปัญหาดังกล่าวเพื่อแก้ไขคนแฮ็คระบบหรือการตั้งค่าโปรแกรมด้วยมือที่ยังกลับไปไม่ได้มีประสบการณ์ในการออกแบบกระบวนการและในกระบวนการที่กรอบที่กำหนดค่าเป็นแพคเกจ เป็นองค์ประกอบที่ไม่ต่อเนื่อง ใครก็ตามที่ใช้ Puppet และที่คล้าย ๆ กันนั้นไม่มีแนวคิดของเจ้าของส่วนประกอบ, การเผยแพร่, การจัดการการกำหนดค่า, Capability Maturity Model นี่คือการพัฒนาอย่างรวดเร็วเป็นปัญหาที่ร้ายแรงมากในอุตสาหกรรม
การทำงานกับ Puppet ช่วยให้ฉันเรียนรู้ Ruby ซึ่งมาแทนที่ Bash เป็นภาษาเครื่องมือระบบเริ่มต้นของฉัน "
เหตุใดจึงจำเป็นต้องใช้ Ruby เมื่อการจัดการการกำหนดค่าแบบครบวงจรสามารถครอบคลุมในการติดตั้ง preinstall poster preremove และ postremove ส่วนของแพ็คเกจระบบปฏิบัติการเพียงแค่ใช้โปรแกรม Bourne shell, AWK, และ sed? คนนั้นจะต้องเรียนรู้ภาษารูบีที่ลึกลับและภาษาถิ่นในบริบทของ Puppet นั้นไม่จำเป็นเลย ปัญหาของการจัดการการกำหนดค่าสามารถแก้ไขได้อย่างง่ายดาย (และปัญญาได้รับการแก้ไข) ด้วยโปรแกรมเชลล์และ AWK และสิ่งเล็กน้อย (1) ที่นี่และที่นั่นเป็นกาว
มันเป็นความรู้สึกที่ยอดเยี่ยมที่จะเห็นหุ่นกระบอกของคุณกำหนดค่าเครื่องทั้งหมดหรือบริการใหม่ตั้งแต่เริ่มต้น
มันเป็นสิ่งที่เย็นเห็นมันทำโดยการกระตุ้น AutoYaST หรือ JumpStart, โดยไม่ต้องมีบรรทัดเดียวของรหัสและความสามารถในการค้นหาระบบปฏิบัติการโดยใช้สร้างขึ้นในเครื่องมือโดยไม่จำเป็นต้องซอฟต์แวร์ลึกลับหรือเพิ่มเติมใด ๆ , ไม่มีไคลเอนต์เซิร์ฟเวอร์ สถาปัตยกรรมที่ต้องการ (SSH นั้นดีกว่าดีกว่าดีกว่า) และเห็นระบบปฏิบัติการของคุณตระหนักถึงการเปลี่ยนแปลงทุกครั้งที่เกิดขึ้น
5. แยกรหัสออกจากข้อมูล นี่เป็นหนึ่งในแนวคิดที่ยากต่อการเรียนรู้ ค่า Hardcoding เช่น Monitoring Hosts ในโค้ดโมดูลของคุณไม่ดี วางไว้ในแหล่งข้อมูล (db, yaml (Hiera ใช้สิ่งนี้เป็นค่าเริ่มต้น), csv, อะไรก็ตาม) ที่โมดูลของคุณสามารถใช้งานได้ดี ตัวอย่างคือเว็บแอปที่ใช้ Mysql สิ่งนี้ทำให้ความสามารถในการส่งรหัสและข้อมูลแยกจากกัน ทำให้กระบวนการพัฒนาของคุณง่ายขึ้น
... หรือคุณสามารถเทมเพลตไฟล์การตั้งค่าของคุณด้วยตัวแปรเชลล์แม้แต่แบ็คโค๊ต (ตัวอย่างls -1 ...
) และเขียนเชลล์สคริปซึ่งใช้ AWK เพื่อเรียก eval (1) และขยายตัวแปรทั้งหมดในเทมเพลต parser ที่เชลล์มีอยู่แล้ว ทำไมต้องทำให้มันซับซ้อนเมื่อมันง่ายจริง ๆ จริง ๆ ? คุณจะเก็บค่าการตั้งค่าไว้ที่ไหน ทำไมทุกที่ที่คุณโปรดเช่นตัวอย่างเช่น pkginfo (4) ไฟล์หรือฐานข้อมูลเช่น Oracle หรือสวยมากทุกที่ ไม่จำเป็นต้องใช้โซลูชั่น ultracomplex ไลบรารี่ที่ฉันพูดถึงข้างต้นนั้นอาจจะมาจากส่วน preinstall หรือ postinstall ในแพ็คเกจระบบปฏิบัติการซึ่งจะเป็นการลบการทำซ้ำและใช้ประโยชน์จากรหัสกลาง ...
แต่เหนือสิ่งอื่นใดผมพบว่าคำพูดดังกล่าวข้างต้นเป็นตัวอย่างของรุ่นต่อไปของผู้ดูแลระบบต้องสอนไม่ได้โดยผู้ดูแลระบบ แต่โดยวิศวกรระบบ พบว่าตัวเองเป็นสีเทาและลงนามในฐานะผู้ฝึกงาน