หุ่นเชิดและนักเทียบท่าสามารถทำสิ่งเดียวกันหลายอย่างอย่างไรก็ตามพวกเขาเข้าหาพวกเขาในวิธีที่แตกต่าง
Puppet จัดการไฟล์ + แพ็คเกจ + บริการ (เรียกว่า trifecta) นักเทียบท่าแค็ปซูลไบนารีและไฟล์การกำหนดค่าภายในของภาชนะ
ในช่วงเวลาของการเขียนนี้นักเทียบท่ายังไม่เสถียรและไม่ควรใช้ในการผลิต API จำนวนมากมีแนวโน้มที่จะเปลี่ยนแปลงจนกว่าจะมีการเปิดตัวเวอร์ชัน 1.0
แม้ว่านักเทียบท่าจะมีความเสถียร แต่ก็มีงานใหญ่สำหรับการแปลงทุกขั้นตอนและตั้งค่าไฟล์เป็นคอนเทนเนอร์นักเทียบท่า
ในทางกลับกันหุ่นเป็นผลิตภัณฑ์ที่มีเสถียรภาพและมาพร้อมกับระบบนิเวศทั้งหมดของเครื่องมือ (heira, mcollective, facter, razor) เครื่องมือเหล่านี้สามารถนำไปใช้งานได้อย่างรวดเร็วและไม่ต้องกังวลกับสิ่งต่าง ๆ
ฉันขอแนะนำแหล่งข้อมูลต่อไปนี้
วิดีโอเกี่ยวกับวิธีจัดการกองซ้อนแอปพลิเคชันด้วยหุ่นกระบอก
https://www.youtube.com/watch?v=KSo_mcJxFIA
พอดคาสต์เกี่ยวกับวิธีที่นักเทียบท่าและหุ่นกระบอกสามารถทำงานร่วมกันได้
http://devopscafe.org/show/2014/1/23/devops-cafe-episode-46.html
บทความบล็อกหุ่นกระบอกเกี่ยวกับวิธีรวมเข้ากับนักเทียบท่า
http://puppetlabs.com/blog/building-puppet-based-applications-inside-docker
บทความบล็อกอื่นเกี่ยวกับหุ่นเชิดและนักเทียบท่าอยู่ร่วมกัน
http://puppetlabs.com/blog/can-containers-and-configuration-management-co-exist
โมดูลหุ่นสำหรับการโต้ตอบกับนักเทียบท่า
http://docs.docker.io/use/puppet/
การแก้ไขเล็กน้อยเกี่ยวกับคำศัพท์ของนักพัฒนา Devops เป็นวิธีการพัฒนาซอฟต์แวร์ที่นักพัฒนาและการดำเนินงานร่วมมือกันมากกว่าเครื่องมือเฉพาะ
ปรับปรุง
ปัจจุบัน บริษัท ของฉันใช้ทั้งหุ่นเชิดและนักเทียบท่า นี่เป็นการนำเสนอที่ยอดเยี่ยมที่หุ่นเชิด conf 2014 ว่าทำไมคุณถึงใช้หุ่นเชิดกับนักเทียบท่า มอบให้โดย James Turnbull อดีตนายจ้างหุ่นกระบอกและผู้แต่งหนังสือนักเทียบท่า
https://puppetlabs.com/presentations/using-docker-puppet-james-turnbull-kickstarter
นอกจากนี้ยังมีวิดีโอสอนสั้น ๆ ที่ดีเกี่ยวกับนักเทียบท่าที่กำหนดโดย sysadmincasts.com
https://sysadmincasts.com/episodes/31-introduction-to-docker
ข้อดีนักเทียบท่า:
- สามารถหมุนตัวอย่างได้เร็ว
- เรียนรู้ง่ายกว่าหุ่นกระบอก
- ง่ายต่อการหยุดทำงาน 0 ครั้ง
ข้อเสีย Docker:
- ตู้คอนเทนเนอร์มีขีด จำกัด 10GB เมื่อใช้แบ็กเอนด์ devicemapper
- การเปลี่ยนแปลงการกำหนดค่าขนาดเล็กใช้เวลานานในการสร้างคอนเทนเนอร์ใหม่
- เงินค่าใช้จ่ายในการใช้รีจิสทรีนักเทียบท่าเช่น hub.docker.com, quay.io (รีจิสทรีของนักเทียบท่าที่โฮสต์ด้วยตนเองนั้นมีราคาแพงมากและไม่มีกุย)
- ไม่มีระบบ init ที่เหมาะสม แอปพลิเคชั่นบางตัวเล่นได้ไม่ดี
- ไม่มีการควบคุมผ่านเครือข่ายอย่างละเอียด
- แอปพลิเคชั่นที่ต้องการ subshells (มองคุณ RVM + ruby) นั้นยุ่งยากมากในการทำงานอย่างถูกต้อง
- ไม่สามารถจัดการโฮสต์ windows ได้ไม่มี SLES หรือระบบปฏิบัติการอื่นที่ได้รับความนิยมน้อย
- นักเทียบท่าในปัจจุบันยังเด็กมาก
- ขณะนี้ไม่สามารถตั้งค่า /etc/resolv.conf ของคุณในเวลาบิลด์อิน
- ข้อบกพร่องต่าง ๆ ที่เราต้องเมาท์ / etc / localtime และ / dev / urandom เพื่อแมปไปยังโฮสต์ localtime และไดเรกทอรี urandom
- ประสิทธิภาพไม่เร็วนัก (แม้จะมีการอ้างสิทธิ์ทั้งหมดที่นักเทียบท่าควรมีความเร็ว 99% ของโลหะเปลือย แต่บางครั้งก็ช้ากว่าเครื่องอื่น ๆ 30%)
- ภาชนะบรรจุขนาดเล็กยังคงมีค่าใช้จ่ายหลายร้อยเมกะไบต์ ภาชนะของเรามีหลายกิกะไบต์
ข้อดีหุ่น:
- ง่ายต่อการปรับขนาด
- ทำงานร่วมกับเซิร์ฟเวอร์ที่มีอยู่ (windows, linux, sles)
- รวดเร็วในการเปลี่ยนแปลงเล็กน้อย
- ชุมชนที่เข้มแข็งของผู้ใช้และโมดูลหุ่นเชิดอื่น ๆ
- API มาตรฐานสำหรับการติดตั้งแพ็คเกจบนแพลตฟอร์มทั้งหมด
ข้อเสียหุ่น:
- โครงสร้างพื้นฐานขนาดใหญ่ซับซ้อนมาก
- การพึ่งพาโมดูลเงื่อนไขสร้างรหัส spagetti
- น้ำหนักมากขึ้น
ขณะนี้เราใช้หุ่นเชิดเพื่อจัดเตรียมคอนเทนเนอร์นักเทียบท่าของเรา คอนเทนเนอร์นักเทียบท่าใช้สำหรับงานสร้างเจนกินส์และถูกทำลายหลังจากงานสร้างแต่ละครั้ง มันทำงานได้ดีและทำให้เรามีสภาพแวดล้อมที่สอดคล้องกัน นั่นหมายความว่าเราต้องเขียนโค้ดเพียงครั้งเดียวจากนั้นสร้างทั้งเครื่องอูบุนตู sles และ centos ใหม่ การสร้างตู้คอนเทนเนอร์ใหม่ใช้เวลาประมาณ 15 ถึง 30 นาทีและยังคงเป็นกระบวนการที่ทำด้วยมือ นักเทียบท่านั้นยอดเยี่ยมสำหรับการหมุนทดสอบ vm อย่างรวดเร็ว
ดังนั้นในระยะสั้นหุ่นก็ยอดเยี่ยมในการจัดการโครงสร้างพื้นฐานที่มีอยู่ของคุณ นักเทียบท่านั้นดีถ้าคุณมีกรีนฟิลด์ที่เป็นลินุกซ์ 100% พร้อมสแต็คเทคโนโลยีที่สามารถล้อมรอบในอินสแตนซ์ชั่วคราวขนาดเล็ก แม้ว่าฟังก์ชันการทำงานบางอย่างจะทับซ้อนกัน แต่ก็ไม่ได้เกิดขึ้นพร้อมกัน