เชฟ - ภาพรวม

Chef เป็นเทคโนโลยีโอเพ่นซอร์สที่พัฒนาโดย Opscode Adam Jacob ผู้ร่วมก่อตั้ง Opscode เป็นที่รู้จักในฐานะผู้ก่อตั้ง Chef เทคโนโลยีนี้ใช้การเข้ารหัส Ruby เพื่อพัฒนาส่วนประกอบพื้นฐานเช่นสูตรอาหารและตำราอาหาร Chef ใช้ในโครงสร้างพื้นฐานอัตโนมัติและช่วยในการลดงานที่ต้องทำเองและซ้ำ ๆ สำหรับการจัดการโครงสร้างพื้นฐาน

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

ทำไมต้องเป็นเชฟ

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

ใน DevOps เราใช้ Chef เพื่อปรับใช้และจัดการเซิร์ฟเวอร์และแอปพลิเคชันภายในองค์กรและบนคลาวด์

คุณสมบัติของเชฟ

ต่อไปนี้เป็นคุณสมบัติที่โดดเด่นที่สุดของเชฟ -

  • Chef ใช้ภาษา Ruby ที่เป็นที่นิยมเพื่อสร้างภาษาเฉพาะโดเมน

  • เชฟไม่ได้ตั้งสมมติฐานเกี่ยวกับสถานะปัจจุบันของโหนด ใช้กลไกเพื่อรับสถานะปัจจุบันของเครื่อง

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

ข้อดีของเชฟ

เชฟเสนอข้อดีดังต่อไปนี้ -

  • Lower barrier for entry - เนื่องจาก Chef ใช้ภาษา Ruby ดั้งเดิมในการกำหนดค่าภาษาการกำหนดค่ามาตรฐานจึงสามารถหยิบขึ้นมาได้โดยทุกคนที่มีประสบการณ์ในการพัฒนา

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

ข้อเสียของเชฟ

ข้อเสียที่สำคัญบางประการของ Chef มีดังนี้ -

  • หนึ่งในข้อเสียอย่างมากของ Chef คือวิธีควบคุมตำราอาหาร ต้องเลี้ยงลูกอย่างต่อเนื่องเพื่อไม่ให้คนที่ทำงานยุ่งกับตำราอาหารของคนอื่น

  • มีเพียง Chef Solo เท่านั้น

  • ในสถานการณ์ปัจจุบันเหมาะสำหรับ AWS Cloud เท่านั้น

  • ไม่ใช่เรื่องง่ายที่จะเรียนรู้หากบุคคลนั้นไม่คุ้นเคยกับ Ruby

  • เอกสารประกอบยังขาด

องค์ประกอบสำคัญของเชฟ

สูตรอาหาร

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

หนังสือสอนทำอาหาร

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

ทรัพยากร

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

  • package - จัดการแพ็คเกจบนโหนด

  • service - จัดการบริการบนโหนด

  • user - จัดการผู้ใช้บนโหนด

  • group - จัดการกลุ่ม

  • template - จัดการไฟล์ด้วยเทมเพลต Ruby ที่ฝังอยู่

  • cookbook_file - ถ่ายโอนไฟล์จากไดเร็กทอรีย่อยของไฟล์ในตำราอาหารไปยังตำแหน่งบนโหนด

  • file - จัดการเนื้อหาของไฟล์บนโหนด

  • directory - จัดการไดเรกทอรีบนโหนด

  • execute - ดำเนินการคำสั่งบนโหนด

  • cron - แก้ไขไฟล์ cron ที่มีอยู่บนโหนด

แอตทริบิวต์

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

ไฟล์

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

เทมเพลต

คล้ายกับไฟล์ แต่ไม่คงที่ ไฟล์เทมเพลตลงท้ายด้วยนามสกุล. ebr ซึ่งหมายความว่ามี Ruby ฝังอยู่ ส่วนใหญ่จะใช้แทนค่าแอตทริบิวต์ในไฟล์เพื่อสร้างไฟล์เวอร์ชันสุดท้ายที่จะวางบนโหนด

Metadata.rb

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

โครงสร้างตำราอาหารเริ่มต้น

C:\chef\cookbooks\nginx>tree 
Folder PATH listing for volume Local Disk 
Volume serial number is BE8B-6427 
C: ├───attributes 
├───definitions 
├───files 
│   └───default 
├───libraries 
├───providers 
├───recipes 
├───resources 
└───templates 
    └───default

เชฟ - เทคโนโลยีที่เกี่ยวข้อง

ต่อไปนี้เป็นรายการเทคโนโลยีที่เกี่ยวข้องกับเชฟ

หุ่น

Puppet เป็นวิธีมาตรฐานในการส่งมอบและใช้งานซอฟต์แวร์ไม่ว่าจะทำงานที่ใด เป็นเอ็นจิ้นการดูแลระบบอัตโนมัติสำหรับระบบ Linux, Unix และ Windows ที่ทำงานด้านการดูแลระบบตามข้อกำหนดแบบรวมศูนย์

หลัก features of Puppet มีดังนี้ -

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

ตอบได้

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

หลัก features of Ansible มีดังนี้ -

  • ง่ายและสะดวกในการเรียนรู้
  • เขียนด้วยภาษา Python
  • Agentless
  • Playbooks ที่ใช้ YAML
  • กาแล็กซี่ Ansible

SaltStack

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

ผ้า

Fabric เป็นภาษาโปรแกรมที่ใช้ Python ซึ่งได้รับการพัฒนาเป็น API ของ Python ซึ่งจำเป็นต้องนำเข้าในโค้ด Python เพื่อกำหนดค่าและจัดการโครงสร้างพื้นฐาน