กลยุทธ์ที่ดีที่สุดเพื่อให้พ่อครัวตำรารุ่นภายใต้การควบคุม


10

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

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

นอกจากนี้เรายังมีตำราเฉพาะเว็บไซต์ที่กำหนดเองซึ่งเราจะรวมตำราชุมชน ( include_recipe)

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

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

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

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

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

คำตอบ:


11

ไม่นานหลังจากที่ฉันเริ่มใช้ Chef อย่างจริงจังว่าฉันกำลังเผชิญหน้ากับปัญหาเดียวกันนี้ ฉันรู้สึกมีสติเมื่อเริ่มทำสิ่งต่าง ๆ สี่อย่างเท่านั้น โปรดทราบว่าสิ่งเหล่านี้อาจไม่ถือเป็น "แนวปฏิบัติที่ดีที่สุด" โดยบางคนในชุมชนเชฟ อย่างไรก็ตามนี่คือวิธีที่ฉันนำความมีสติการทำซ้ำและการสั่งซื้อมาสู่โลกของฉัน

  1. สร้างสูตรของคุณเอง ฉันหยุดใช้ตำราชุมชนโดยสิ้นเชิงและสร้างสูตรของตัวเองตามข้อกำหนดของฉัน วิธีนี้ฉันจัดการและควบคุมการพึ่งพาของตัวเอง หลายคนอาจโต้เถียงเรื่องนี้ แต่โดยสุจริต - ถ้าฉันอ่าน Opscode และสูตรอาหารชุมชนก่อนฉันคงไม่ได้เลือกเชฟเป็นวิธีแก้ปัญหาของฉัน ฉันทำสูตรอาหารของฉันให้เรียบง่ายและสอดคล้องกับวิธีการทำงานของฉัน ฉันมีตำราอาหารชุมชนเป็นศูนย์ในที่เก็บของฉันไม่ได้
  2. มีระเบียบวินัยเกี่ยวกับการอัพเกรด ถ้าฉันอัปเดตสูตรฉันต้องแน่ใจว่ามันใช้ได้ทุกที่และต้องผ่านความยุ่งยากเป็นพิเศษในการปรับใช้ทุกที่แม้ว่ามันจะขัดจังหวะกระบวนการทำงานของฉันและเพิ่มแรงเสียดทาน ในระยะยาวนี่คือกุญแจสำคัญในการทำให้เชฟมีสติ ในกรณีที่รุนแรงหากฉันต้องการความหลากหลายสำหรับโฮสต์บางตัวเช่นสภาพแวดล้อมการทดสอบเทียบกับการใช้งานจริงฉันจะกำหนดรหัสเหล่านั้นลงในตำราอาหาร แต่ปรัชญาของฉันคือตำราอาหารทุกเล่มเวอร์ชันล่าสุดควรสามารถนำไปใช้ได้อย่างปลอดภัยทุกที่ที่ต้องการ
  3. ใช้ Chef Solo สำหรับทุกสิ่ง ทุก ๆ สองสามเดือนที่ฉันได้รับในหัวของฉันที่ฉันควรลองใช้ Chef Server อีกครั้ง ฉบับชุมชนกำลังพัฒนาขึ้น แต่กระบวนทัศน์ทั้งหมดไม่เคยเหมาะกับโลกของฉัน และทุกครั้งที่ฉันพยายามฉันจะเผชิญหน้ากับตัวเองและเตะตัวเอง กระบวนทัศน์ Chef Server เหมาะสำหรับโลกที่มีเซิร์ฟเวอร์อายุการใช้งานยาวนานซึ่งต้องการการเปลี่ยนแปลงระบบบ่อยครั้ง ฉันทำการเปลี่ยนแปลงระบบบ่อยครั้งมากที่การที่เซิร์ฟเวอร์ของฉันเช็คอินเซิร์ฟเวอร์เชฟอย่างต่อเนื่องสำหรับการอัพเดทเป็นเรื่องโง่ และฉันมีเครื่องมือที่ดีกว่าเพื่อให้แน่ใจว่าโฮสต์ของฉันแข็งแรง งานของฉันอยู่ในโลกของเครื่องเสมือนที่ใช้แล้วทิ้งซึ่งพวกเขาอาจรอดจากการเปลี่ยนแปลงการกำหนดค่าเพียงหนึ่งหรือสองครั้งเท่านั้น ตอนนี้ฉันใช้ Chef Solo โดยเฉพาะและผลักดันการเปลี่ยนแปลงไปยังโฮสต์ของฉันในขณะเดียวกันก็ผลักดันตำราอาหารที่เหมือนกันให้กับโฮสต์ทั้งหมดที่ต้องการ
  4. หลีกเลี่ยงการรวบรวมซอฟต์แวร์ในระหว่างการทำงานของ Chef กรณีที่รุนแรงที่สุด (เช่นโง่) สำหรับฉันที่เกี่ยวข้องกับการรวบรวมทับทิม-1.9.3 จากแหล่งที่มาทุกครั้งที่ฉันบูตกล่องใหม่ แต่การสร้างแพ็คเกจที่กำหนดเองมักจะเป็นความเจ็บปวดในก้น เมื่อฉันค้นพบเครื่องมือที่ยอดเยี่ยมต่อนาทีมันกลายเป็นเรื่องง่ายที่จะทำแพ็คเกจ rpms, debs และอัญมณีของตัวเองและทำให้ชีวิตของฉันมีประสิทธิภาพและง่ายขึ้นมาก

หวังว่านี่จะช่วยใครซักคน!

- อัปเดต -

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

  1. ใช้งานทดแทนได้

3

มี 2 ​​ปัญหา:

  1. จัดการรุ่นตำราอาหารในวัตถุสภาพแวดล้อมที่แตกต่างกัน
  2. จัดการเวอร์ชันของสูตรในโหนด run_list

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

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

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