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.