Có bất kỳ lý do để sử dụng Puppet cùng với Docker không?


16

Tôi đã thử Ops một phần của DevOps một thời gian trước và nó khá thú vị, nhưng tôi không có thời gian và lý do để thử nó trong bất kỳ dự án nào. Nhưng tuần trước tôi đã bắt đầu công việc mới, nơi ông chủ hỏi tôi có thể cấu hình máy chủ để tạo ra thứ gì đó giống như môi trường dàn dựng cho các dự án của công ty không. Cùng với đó, tôi đã bắt đầu nghĩ về việc di chuyển dự án thành nhiều DevOps hơn là chỉ dev.

Tôi đã đến với Docker, điều này thật tuyệt vời và siêu dễ dàng đối với tôi. Nhưng một thời gian trước, tôi đã thử dùng Puppet, vì vậy câu hỏi xuất hiện trong đầu tôi: "Có lý do nào để sử dụng Puppet với Docker không?". Docker dường như làm tất cả những việc mà Puppet sẽ làm, nhưng theo cách dễ dàng hơn.

PS Trước đây trên Hacker News có Consul , đó là cấu hình và khám phá dịch vụ tốt, do đó, ngay cả cấu hình cũng có thể được giải quyết (và tôi cũng nghĩ về việc thực hiện điều này).

Câu trả lời:


18

Con rối và bến tàu có thể làm nhiều việc giống nhau, tuy nhiên họ tiếp cận chúng theo một cách khác.

Con rối quản lý tập tin + gói + dịch vụ. (Được gọi là trifecta). Docker đóng gói nhị phân và các tệp cấu hình bên trong một container.

Tại thời điểm viết bài này, docker vẫn không ổn định và không nên được sử dụng trong sản xuất. Nhiều API có thể sẽ được thay đổi cho đến khi phiên bản 1.0 được phát hành.

Ngay cả khi docker trở nên ổn định, nó sẽ là một công việc lớn để chuyển đổi mọi tiến trình và tập tin cấu hình thành các container docker.

Mặt khác, con rối là một sản phẩm ổn định và đi kèm với toàn bộ hệ sinh thái của các công cụ (heira, mcollective, facter, dao cạo râu). Những công cụ này có thể được thực hiện nhanh chóng và không lo bị vỡ.

Tôi rất muốn đề xuất các tài nguyên sau đây.

Video về cách quản lý ngăn xếp ứng dụng với con rối
https://www.youtube.com/watch?v=KSo_mcJxFIA

Một podcast về cách docker và con rối có thể làm việc cùng nhau
http://devopscafe.org/show/2014/1/23/devops-cafe-epiT-46.html

Một bài viết trên blog về con rối về cách tích hợp với docker
http://puppetlabs.com/blog/building-puppet-basing-appluggest-inside-docker

Một bài viết blog khác về con rối và docker cùng tồn tại
http://puppetlabs.com/blog/can-containers-and-configuration-man Quản trị-co-exist

Một mô-đun con rối để tương tác với docker
http://docs.docker.io/use/puppet/

Một sửa chữa nhỏ về thuật ngữ của devops. Devops là một phương pháp phát triển phần mềm nơi các nhà phát triển và hoạt động hợp tác, hơn bất kỳ công cụ cụ thể nào.

Cập nhật

Hiện tại công ty tôi sử dụng cả con rối và docker. Dưới đây là một bài thuyết trình tuyệt vời được đưa ra tại Puppet conf 2014 về lý do tại sao bạn sẽ sử dụng Puppet vs docker. Được đưa ra bởi James Turnbull, một cựu chủ nhân của múa rối và là tác giả của cuốn sách docker.

https://puppetlabs.com/presentations/USE-docker-puppet-james-turnbull-kickstarter

Cũng là một video hướng dẫn ngắn về docker được cung cấp bởi sysadmincasts.com

https://sysadmincasts.com/episodes/31-int sinhtion-to-docker

Docker Ưu điểm:

  • Có thể quay nhanh lên
  • Dễ học hơn con rối
  • Dễ làm 0 thời gian chết

Nhược điểm Docker:

  • Các container có giới hạn 10GB khi sử dụng phụ trợ devicemapper
  • Thay đổi cấu hình nhỏ mất nhiều thời gian để xây dựng lại container
  • Chi phí tiền để sử dụng một đăng ký docker như hub.docker.com, quay.io (Đăng ký docker tự lưu trữ là rất lỗi, và không có gui)
  • Không có hệ thống init thích hợp. Một số ứng dụng không chơi tốt.
  • Không kiểm soát hạt mịn trên mạng
  • Các ứng dụng yêu cầu subshells (nhìn vào bạn RVM + ruby) rất khó để hoạt động bình thường
  • Không thể quản lý máy chủ windows, không có SLES hoặc các hệ điều hành ít phổ biến khác
  • Hiện tại dàn nhạc docker còn rất trẻ.
  • Hiện tại không thể đặt /etc/resolv.conf tại thời điểm xây dựng
  • Nhiều lỗi khác nhau mà chúng ta phải gắn kết / etc / localtime và / dev / urandom để ánh xạ tới các thư mục lưu trữ cục bộ và urandom.
  • Hiệu suất không nhanh bằng (mặc dù tất cả các tuyên bố rằng docker phải là 99% tốc độ của kim loại trần, đôi khi nó chậm hơn 30% so với các máy khác).
  • Các container nhỏ vẫn có hàng trăm megabyte trên không. Container của chúng tôi là tất cả nhiều gigabyte.

Con rối Ưu điểm:

  • Dễ dàng chia tỷ lệ
  • Hoạt động với các máy chủ hiện có (windows, linux, sles)
  • Nhanh chóng thực hiện những thay đổi nhỏ
  • Cộng đồng mạnh mẽ của những người sử dụng và mô đun con rối khác
  • API chuẩn hóa để cài đặt các gói trên tất cả các nền tảng

Nhược điểm:

  • Cơ sở hạ tầng lớn rất phức tạp
  • Phụ thuộc mô-đun có điều kiện tạo mã spagetti
  • Nặng hơn

Hiện tại chúng tôi sử dụng con rối để cung cấp container docker của chúng tôi. Các container docker được sử dụng cho các bản dựng jenkins và bị phá hủy sau mỗi bản dựng. Nó hoạt động tốt, và cho chúng ta một môi trường nhất quán. Điều đó có nghĩa là chúng ta chỉ phải viết mã một lần, và sau đó xây dựng lại cả máy ubfox, sles và centos. Việc xây dựng lại các container mất khoảng 15 đến 30 phút và vẫn là một quy trình thủ công. Docker là tuyệt vời để quay nhanh vm thử nghiệm nhanh,

Vì vậy, trong ngắn hạn, con rối rất tốt trong việc quản lý cơ sở hạ tầng hiện tại của bạn. Docker là tốt nếu bạn có một trường xanh 100% linux với ngăn xếp công nghệ có thể được bao trong các trường hợp phù du nhỏ. Trong khi một số chức năng chồng chéo, chúng không loại trừ lẫn nhau.


5
Tôi thấy câu trả lời này là chủ quan và suy đoán. Tôi không tin nó thực sự trả lời tại sao người ta có thể tiếp tục sử dụng Puppet bên cạnh / kết hợp với Docker, khi Docker xuất hiện, ở cấp độ cao, là một công cụ đơn giản hơn cho cùng mục đích.
8bitjunkie

1
@ 7 Đặc biệt Cập nhật với nhiều sự kiện hơn.
kẻ lừa đảo

1
thật tuyệt vời khi xem đánh giá về câu trả lời này trên thế giới năm 2015 và mọi thứ đã thay đổi như thế nào
Oliver Bayes-Shelton

Là câu hỏi / câu trả lời vẫn còn tương đối trong năm 2019? Điều gì đã thay đổi?
Md. Abu Taher

2

Docker giúp bạn cung cấp và ban đầu cấu hình các container, nhưng nó chạy các lệnh một lần khi khởi tạo container.

Con rối mạnh nhất khi bạn chạy nó dưới dạng daemon, nó đảm bảo rằng cấu hình của bạn vẫn giữ nguyên như bạn chỉ định, vì vậy, ví dụ nếu dịch vụ của bạn ngừng chạy, nó sẽ khởi động lại.

Một trong những điều tốt nhất về các biểu hiện cấu hình con rối (được thiết kế chính xác) là chúng không hoạt động ; nó được cho là mô tả trạng thái bạn muốn ở và không nhất thiết phải là các bước để đạt được điều đó.

Nó cũng cho phép bạn cấu hình trừu tượng và tham số và bạn có thể xuất các tham số được tạo trên một máy chủ hoặc vùng chứa và sử dụng chúng trong một máy chủ khác (ví dụ: thu thập danh sách các tên máy chủ nút cho ứng dụng giám sát).

Tôi muốn nói rằng họ chắc chắn phục vụ các mục đích khác nhau nhưng có liên quan. Tôi hiện đang xem xét sử dụng các bảng kê khai con rối hiện có để bắt đầu cấu hình các thùng chứa để môi trường phát triển giống với môi trường sản xuất hơn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.