เชฟ - ภาพรวม
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 เพื่อกำหนดค่าและจัดการโครงสร้างพื้นฐาน