Juju กับ Puppet / Chef ต่างกันอย่างไร


80

ลองถามบุคคลที่สามเกี่ยวกับความแตกต่างที่สำคัญระหว่างJujuและ Puppet / Chef บุคคลที่สามไม่คุ้นเคยกับ Juju มากเกินไปและไม่สามารถพูดได้ พวกเขากล่าวว่าคนอื่นมีแรงผลักดันมากมายและมันยากที่จะเอาชนะผู้นำของพวกเขา

ผู้ที่อยู่ใกล้เคียงกับ Juju จะยินดีที่จะเน้นถึงข้อดีของซอฟต์แวร์นี้และทำไมมันจะแซง Puppet / Chef ในเวทีการจัดการ config

คำตอบ:


48

มาร์คนี่เป็นคำถามที่ยอดเยี่ยมและเป็นคำถามแรกที่ฉันถามเมื่อมีคนบอกฉันเกี่ยวกับ Juju นี่คือความแตกต่างที่สำคัญบางประการ

  • Juju encapsulate services - เสน่ห์กำหนดวิธีการบริการที่ต้องการเปิดเผยหรือใช้ข้อมูลการกำหนดค่าไปยัง / จากบริการอื่น ๆ เสน่ห์นั้นเป็นธุรกิจของเสน่ห์ มันสามารถใช้เครื่องมือใด ๆ จากเชลล์สคริปต์ถึง Chef ในโหมดเดี่ยวเพื่อทำสิ่งนั้น

  • Juju วางแผนการจัดสรร - juju ติดตามทรัพยากรที่มีอยู่และสามารถเพิ่มหรือลบออกได้ตามต้องการ ปัจจุบันทรัพยากรเหล่านี้คือเครื่อง AWS EC2, OpenStack clouds (เช่น HP Cloud), Microsoft Azure, Joyent, เครื่องโลหะเปลือยผ่าน MAAS และผู้ให้บริการท้องถิ่น LXC / KVM

  • Juju ทำให้การแบ่งปันเป็นเรื่องง่าย - ทุกคนสามารถมีส่วนร่วมในเสน่ห์ได้ที่Juju Charm Store ; เครื่องรางเหล่านี้ได้รับการตรวจสอบและตรวจสอบโดยชุมชน Juju

นี่คือการเปรียบเทียบอื่น ๆ ที่ผู้คนทำจากทั่วทั้งเว็บ:


1
หุ่นกระบอกเกี่ยวข้องกับการอธิบายทรัพยากรการจัดสรร VMและโมดูลการแชร์เช่นกัน คุณสามารถอธิบายได้ว่า Juju ทำมันแตกต่างหรือดีกว่าหรือแก้ไขปัญหาที่แตกต่างกันอย่างไร
poolie

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

มี namespaces ในหุ่นอยู่ ฉันไม่ได้ใช้ Puppet มากนัก แต่ความเข้าใจของฉันก็คือปัญหาส่วนใหญ่เกิดขึ้นเมื่อสองโมดูลกำลังพยายามจัดการกับตรรกะแบบเดียวกัน Juju มีวิธีป้องกันอย่างเป็นระบบหรือไม่?
poolie

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

1
สวัสดี @SpapapS เรื่องนี้เกี่ยวข้องกับประเด็นที่สองของคุณ (หรือที่รู้จักว่า Juju เตรียมการจัดเตรียม) ในหุ่นเราสามารถกำหนดความสัมพันธ์โดยใช้ "ต้องการ", "แจ้งเตือน" ฯลฯ เราไม่สามารถใช้โครงสร้างนี้ในการจัดสรรการเตรียมการได้หรือไม่ หรือ Juju ให้ความหมายของการประสานระดับต่างกันหรือไม่?
เดนิสวีราสิริ

33

(ข้อสงวนสิทธิ์ - ฉันเป็นผู้ก่อตั้ง Puppet และ CEO ของ Puppet Labs)

ฉันไม่รู้จักjujuมากชะมัด แต่จากสิ่งที่ฉันสามารถบอกได้พวกเขาค่อนข้างนั่งที่ชั้นที่แตกต่างกัน Puppet นั้นยอดเยี่ยมในการจัดการพฤติกรรมและความสามารถของเครื่องจักรเองในขณะที่ juju ดูเหมือนจะอุทิศตนเพื่อพูดคุยเกี่ยวกับชุดของเครื่องจักรและส่วนใหญ่ punts วิธีการทำให้เครื่องจักรมีพฤติกรรมที่เฉพาะเจาะจงกับเครื่องมือภายนอกเช่น Puppet หรือเชลล์สคริปต์

กลยุทธ์ของเรากับ Puppet คือสร้างกองที่ดีที่สุดจากพื้นดินขึ้นมาในขณะที่ juju ดูเหมือนจะเป็นชั้นที่เฉพาะเจาะจงของกองและปล่อยให้ชั้นอื่น ๆ ไปยังเครื่องมืออื่น ๆ ดังนั้นในขณะที่คุณสามารถแก้ปัญหาทั้งหมดด้วย Puppet (แม้ว่าบางครั้งจะมีงานมากกว่าที่คุณต้องการ) คุณจะต้องรวม juju กับเครื่องมืออื่น ๆ เพื่อให้งานสำเร็จลุล่วง

จริงๆแล้ว juju ดูเหมือนว่ารุ่นCloudFormation ในสถานที่จาก Amazon แม้ว่าจะไม่มีกราฟและเช่นนั้น ดังนั้นใช้งานได้กับ Puppet เป็นต้น แต่ไม่สามารถทดแทนได้


6
ไม่แน่ใจว่าการ punting เป็นคำที่ถูกต้องหรือไม่ .. เช่นเดียวกับการพูดว่า package ที่ใช้ในการสร้างซอฟต์แวร์ไปยัง autotools / scons / setup.py หากแพ็กเกจพยายามทำทุกขั้นตอนของบิลด์เราจะไม่มีแพ็คเกจ!
SpamapS

9

ต่อไปนี้เป็นอีกวิธีที่ Juju เหมาะสมกับเครื่องมืออัตโนมัติอื่น ๆ :

ฉันรับผิดชอบเกี่ยวกับ Cloud Strategy ที่ Canonical บริษัท ที่อยู่เบื้องหลัง Ubuntu และ Juju Juju ไม่ใช่คู่แข่งของ Puppet หรือ Chef Juju สามารถติดตั้ง Puppet หรือ Chef และจากบริการห่อหุ้มเสน่ห์ของ Juju คุณสามารถโทรหาโมดูล Puppet ที่มีอยู่หรือใบเสร็จรับเงินของ Chef ได้

Juju คืออะไร Juju ช่วยให้คุณสามารถปรับใช้รวมและปรับขนาดสแต็ก / บริการ / แอปพลิเคชันไอทีของคุณได้ทันที รับไอทีทันทีโดยไม่ต้องเจ็บปวด ทั้งผ่านทางบรรทัดคำสั่งหรือ GUI

ดังนั้น Juju จึงอยู่ใกล้กับ PaaS มากกว่าเครื่องมือ Devops เนื่องจากคุณสามารถสร้างระบบคลาวด์ของคุณ (Juju เป็นตัวติดตั้ง OpenStack เริ่มต้นของ Canonical) โครงสร้างพื้นฐานที่อยู่ด้านบนสุดของมัน (เซิร์ฟเวอร์เว็บ / แอป / ฐานข้อมูล Hadoop, MongoDB เป็นต้น) Juju ช่วยให้แอปพลิเคชั่นสามารถติดตั้งและรวมเข้าด้วยกันได้ทันที (ส่วนเสริมระหว่าง Wordpress และ MySQL จะตั้งค่าตาราง Wordpress และข้อมูลภายใน MySQL โดยอัตโนมัติ)

นอกจากนี้เซิร์ฟเวอร์แอป (java, php, node.js, scala และอื่น ๆ ) สามารถทำงานร่วมกับการควบคุมเวอร์ชันดังนั้นการปรับใช้และปรับขนาดแอพของคุณโดยอัตโนมัติจึงเป็นไปได้ ซึ่งแตกต่างจาก PaaS คุณไม่ได้ จำกัด อยู่เฉพาะซอฟต์แวร์สแต็ก แต่ยังได้รับประโยชน์จากการปรับใช้การรวมและการปรับขนาดได้ทันที คิดว่าเป็น PaaS หรือ FlexiPaaS ที่ยืดหยุ่นซึ่งปรับใช้รวมและปรับขนาดบริการซอฟต์แวร์ของคุณโดยไม่ถูก จำกัด หรือถูกล็อคอินทันที

ที่มา - คำเตือน: จำเป็นต้องเข้าสู่ระบบ


3

ในแง่ที่ง่ายที่สุด juju สรุปการค้นพบบริการที่เก็บค่าคีย์และการจัดการการกำหนดค่า Puppet / chef etc เป็นการจัดการ config ที่บริสุทธิ์

Juju เป็นไปตามเหตุการณ์และใช้ส่วนกลาง "bootstrap node" เพื่อติดตามและประสานงานเหตุการณ์ หุ่นและพ่อครัวสามารถสร้างให้ปรากฏตามเหตุการณ์ได้อย่างไรก็ตามโดยทั่วไปแล้วจะเป็นเพียงแค่เรียกใช้งานที่เกี่ยวข้องตามกำหนดเวลา

ตอนนี้, คุณไม่สามารถรัน juju ในสถานะกระจายหรือแบบไม่ใช้เอเจนต์ได้และนี่เป็นไปได้กับระบบการจัดการการกำหนดค่าส่วนใหญ่

สำหรับหุ่นเชิดส่วนใหญ่นั้นเป็นภาษาเฉพาะโดเมนในขณะที่ juju เป็นระบบไม่ใช่ภาษา

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