Chef là gì? - Một công cụ được sử dụng để quản lý cấu hình



Blog này trên What is Chef là blog đầu tiên của loạt blog Chef. Nó nói về Quản lý cấu hình và cách Chef đạt được điều đó bằng cách sử dụng một ca sử dụng.

Chef là một công cụ được sử dụng để quản lý cấu hình và đang cạnh tranh chặt chẽ với Con rối . Trong blog này, tôi sẽ giải thích Chef là gì, Quản lý cấu hình và cách Chef đạt được Quản lý cấu hình với một ca sử dụng.

Chef là gì?

Chef là một công cụ tự động hóa cung cấp cách xác định cơ sở hạ tầng dưới dạng mã. Cơ sở hạ tầng dưới dạng mã (IAC) đơn giản có nghĩa là quản lý cơ sở hạ tầng bằng cách viết mã (Cơ sở hạ tầng tự động hóa) thay vì sử dụng các quy trình thủ công. Nó cũng có thể được gọi là cơ sở hạ tầng có thể lập trình được. Chef sử dụng một ngôn ngữ thuần Ruby, dành riêng cho miền (DSL) để viết các cấu hình hệ thống. Dưới đây là các loại tự động hóa do Chef thực hiện, bất kể quy mô cơ sở hạ tầng:





  • Cấu hình cơ sở hạ tầng
  • Triển khai ứng dụng
  • Cấu hình được quản lý trên mạng của bạn

Giống Con rối có kiến ​​trúc Master-Slave thậm chí Chef có kiến ​​trúc Client-Server. Nhưng Chef có một thành phần phụ được gọi là Workstation. Tôi sẽ nói về máy trạm trong blog tiếp theo của tôi. Tham khảo sơ đồ bên dưới:

Chef vs Puppet - What Is Chef - Edureka



Trong Chef, các nút được cập nhật động với các cấu hình trong Máy chủ. Đây được gọi là Cấu hình kéo có nghĩa là chúng ta không cần phải thực thi dù chỉ một lệnh trên máy chủ Chef để đẩy cấu hình lên các nút, các nút sẽ tự động cập nhật với các cấu hình có trong Máy chủ. Blog tiếp theo của tôi trên Hướng dẫn đầu bếp sẽ giải thích kiến ​​trúc Chef cùng với tất cả các thành phần Chef một cách chi tiết.

Bây giờ, chúng ta hãy xem xét lý do đằng sau sự phổ biến của Chef.

Chef là gì - Các chỉ số chính của Chef

  • Chef hỗ trợ nhiều nền tảng như AIX, RHEL / CentOS, FreeBSD, OS X, Solaris, Microsoft Windows và Ubuntu. Các nền tảng khách hàng bổ sung bao gồm Arch Linux, Debian và Fedora.
  • Chef có thể được tích hợp với các nền tảng dựa trên đám mây như Internap, Amazon EC2, Google Cloud Platform, OpenStack, SoftLayer, Microsoft Azure và Rackspace để tự động cung cấp và cấu hình máy mới.
  • Chef có một cộng đồng hỗ trợ tích cực, thông minh và phát triển nhanh chóng.
  • Vì sự thành thục và linh hoạt của Chef, nó đang được sử dụng bởi những người khổng lồ như Mozilla, Expedia, Facebook, HP Public Cloud, Prezi, Xero, Ancestry.com, Rackspace, Get Satisatis, IGN, Đại học Marshall, Socrata, Đại học Minnesota, Trường Wharton của Đại học Pennsylvania, Bonobos, Splunk, Citi, DueDil, Disney và Cheezburger.

Theo Phil Dibowitz, Kỹ sư sản xuất, Facebook



sort () c ++

“Có ba khía cạnh quy mô mà chúng tôi thường xem xét đối với cơ sở hạ tầng - số lượng máy chủ, khối lượng các cấu hình khác nhau trên các hệ thống đó và số lượng người cần thiết để duy trì các cấu hình đó. Chef đã cung cấp một giải pháp tự động hóa đủ linh hoạt để phù hợp với động lực quy mô của chúng tôi mà không yêu cầu chúng tôi thay đổi quy trình làm việc của mình ”.

Không nghi ngờ gì nữa, Chef là một trong những công cụ Quản lý cấu hình nổi tiếng nhất và đang cạnh tranh chặt chẽ với Con rối . Tuy nhiên, trước khi đi sâu vào “Đầu bếp là gì”, thật công bằng khi tôi giải thích trước về Quản lý cấu hình là gì và tại sao nó lại quan trọng.

Quản lý cấu hình

Đừng lo lắng, sẽ không có bất kỳ định nghĩa nặng nề nào về Quản lý cấu hình trong blog này :)

Hãy để chúng tôi hiểu Quản lý cấu hình theo cách này - giả sử bạn phải triển khai một phần mềm trên hàng trăm hệ thống. Phần mềm này có thể là hệ điều hành hoặc mã hoặc nó có thể là bản cập nhật của phần mềm hiện có. Bạn có thể thực hiện công việc này theo cách thủ công, nhưng điều gì sẽ xảy ra nếu bạn phải hoàn thành công việc này qua đêm vì ngày mai có thể là Ngày lớn hàng tỷ đồng bán trong công ty hoặc một số M hoặc là Giảm giá vv trong đó lưu lượng truy cập đông đúc dự kiến. Ngay cả khi bạn có thể làm điều này theo cách thủ công, khả năng cao sẽ xảy ra nhiều lỗi trong ngày trọng đại của bạn. Điều gì sẽ xảy ra nếu phần mềm bạn cập nhật trên hàng trăm hệ thống không hoạt động, sau đó bạn sẽ hoàn nguyên về phiên bản ổn định trước đó, bạn có thể thực hiện công việc này bằng tay không? AF-tất nhiên là không!

Để giải quyết vấn đề này, Quản lý cấu hình đã được giới thiệu. Bằng cách sử dụng các công cụ Quản lý cấu hình như Chef, Puppet, v.v., bạn có thể tự động hóa tác vụ này. Tất cả những gì bạn phải làm là chỉ định cấu hình trong một máy chủ tập trung và theo đó tất cả các nút sẽ được cấu hình. Nó cho phép truy cập vào hồ sơ lịch sử chính xác về trạng thái hệ thống cho các mục đích quản lý và kiểm toán dự án. Vì vậy, về cơ bản, chúng ta cần chỉ định cấu hình một lần trên máy chủ trung tâm và sao chép cấu hình đó trên hàng nghìn nút. Quản lý cấu hình giúp thực hiện các tác vụ dưới đây một cách rất có cấu trúc và dễ dàng:

  • Tìm ra thành phần nào cần thay đổi khi yêu cầu thay đổi.
  • Làm lại quá trình triển khai vì các yêu cầu đã thay đổi kể từ lần triển khai cuối cùng.
  • Hoàn nguyên về phiên bản trước của thành phần nếu bạn đã thay thế bằng phiên bản mới nhưng có sai sót.
  • Thay thế sai thành phần vì bạn không thể xác định chính xác thành phần nào cần được thay thế.

Tham khảo blog của tôi trên Puppet để tìm hiểu cách NYSE tiết kiệm hàng triệu đô la với sự trợ giúp của Quản lý cấu hình

Có hai cách để quản lý cấu hình của bạn, đó là cấu hình Đẩy và Kéo.

  • Cấu hình kéo: Trong kiểu Quản lý cấu hình này, các nút thăm dò ý kiến ​​máy chủ tập trung theo định kỳ để cập nhật. Các nút này được cấu hình động nên về cơ bản chúng đang kéo các cấu hình từ máy chủ tập trung. Cấu hình kéo được sử dụng bởi các công cụ như Chef, Puppet, v.v.
  • Cấu hình đẩy: Trong kiểu Quản lý cấu hình này, Máy chủ tập trung đẩy các cấu hình đến các nút. Không giống như cấu hình kéo, có một số lệnh nhất định phải được thực thi trong máy chủ tập trung để cấu hình các nút. Cấu hình đẩy được sử dụng bởi các công cụ như Ansible.

Tìm hiểu các thành phần khác nhau của Quản lý cấu hình trong Blog hướng dẫn về con rối của tôi

Bây giờ là thời điểm chính xác tôi đưa bạn đi trước trong hành trình tìm hiểu “Đầu bếp là gì” bằng cách giải thích cách Đầu bếp đạt được Quản lý cấu hình.

Chef là gì - Quản lý cấu hình với Chef

Chúng ta đã hiểu Chef là gì, bây giờ tôi sẽ giải thích cho bạn cách Chef đạt được Quản lý cấu hình với use-case. Gannett là một công ty cổ phần truyền thông của Mỹ được giao dịch công khai. Đây là nhà xuất bản báo lớn nhất của Hoa Kỳ tính theo tổng lượng phát hành hàng ngày.

Quy trình triển khai truyền thống của Gannett được đặc trưng bởi nhiều phân phối và kiểm tra thủ công. Hãy để chúng tôi xem những vấn đề họ gặp phải trong quá trình này là gì:

  • Việc duy trì các bản dựng chính xác, có thể lặp lại là rất khó.
  • Có nhiều lỗi xây dựng và các bài kiểm tra thường chạy trong môi trường sai.
  • Thời gian triển khai và cung cấp có thể từ vài ngày đến vài tuần.
  • Nhóm vận hành không có quyền truy cập vào đám mây hoặc môi trường phát triển.
  • Mỗi nhóm đều sử dụng bộ công cụ của riêng mình và không có trách nhiệm giải trình về tài chính hoặc bảo mật. Không ai biết một ứng dụng thực sự có giá bao nhiêu. Bảo mật không có cách nào để kiểm tra các ngăn xếp phần mềm.

Gannett đã sẵn sàng cho sự thay đổi. Các nhà phát triển muốn triển khai các ứng dụng của họ một cách nhanh chóng. Các hoạt động muốn có một cơ sở hạ tầng ổn định, nơi họ có thể xây dựng và triển khai theo cách có thể lặp lại. Tài chính muốn biết chi phí thực sự của một ứng dụng. Bảo mật muốn xem và kiểm tra tất cả các ngăn xếp và có thể theo dõi các thay đổi.

Gannett thấy rằng đám mây là một dịch vụ mang lại nhiều lợi ích. Các nhà phát triển đã có quyền truy cập vào các tài nguyên được chuẩn hóa. Việc xử lý lưu lượng truy cập cao điểm trở nên dễ dàng hơn vì mô hình điện toán theo yêu cầu của đám mây và việc xử lý đã được giảm thiểu.

Chef cho phép bạn cung cấp động và giảm cung cấp cơ sở hạ tầng của bạn theo yêu cầu để theo kịp với mức sử dụng và lưu lượng truy cập cao nhất. Nó cho phép các dịch vụ và tính năng mới được triển khai và cập nhật thường xuyên hơn, với ít rủi ro về thời gian chết. Với Chef, bạn có thể tận dụng tất cả sự linh hoạt và tiết kiệm chi phí mà đám mây mang lại.

Hãy cùng chúng tôi xem những chức năng được thực hiện bởi Chef tại Gannett:

  • Gannett bắt đầu xây dựng VPC (Đám mây riêng ảo) cho môi trường phát triển bắt chước quá trình sản xuất. Không có công cụ nào mà họ đã sử dụng phù hợp. Nhưng họ nhận thấy rằng Chef hoạt động tốt với đám mây và cả môi trường Linux và Windows. Họ đã sử dụng Chef để xây dựng một môi trường phát triển phù hợp hoàn hảo với môi trường sản xuất.
  • Đối với một ứng dụng để chuyển vào VPC, nó phải được cung cấp và triển khai với Chef.
  • Bảo mật sẽ sớm tham gia và sẽ quản lý các biện pháp kiểm soát bắt buộc để truy cập vào Chef và để duy trì các tiêu chuẩn bảo mật hệ thống.

khóa học khoa học dữ liệu là gì

Bây giờ là lúc để hiểu kết quả của quá trình này là gì:

  • Việc triển khai của Gannett trở nên nhanh hơn và đáng tin cậy hơn. Việc cung cấp và triển khai ứng dụng, một lần mất hàng tuần, sau khi sử dụng Chef mất vài phút.
  • Tất cả các ứng dụng mới đã được triển khai trên đám mây với Chef. Các ứng dụng này đã được triển khai cho tất cả các môi trường giống như cách chúng được triển khai vào sản xuất. Ngoài ra, thử nghiệm xảy ra trong mỗi môi trường để việc triển khai đáng tin cậy.
  • Tất cả cơ sở hạ tầng được coi là mã, điều này làm tăng đáng kể khả năng hiển thị đối với bất kỳ thay đổi nào xảy ra. Phát triển, Hoạt động, An ninh và Tài chính đều được hưởng lợi từ điều này.

Sau ' Chef là gì ”Blog tiếp theo của tôi, tức là Hướng dẫn đầu bếp tập trung vào kiến ​​trúc của Chef cùng với các thành phần của nó. Tôi cũng đã giải thích cách triển khai Apache2 bằng Chef.

Nếu bạn tìm thấy blog này trên “ Chef là gì ' liên quan, thích hợp, kiểm tra của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu. Khóa đào tạo Chứng chỉ Edureka DevOps giúp người học có được kiến ​​thức chuyên môn về các quy trình và công cụ DevOps khác nhau như Puppet, Jenkins, Nagios và GIT để tự động hóa nhiều bước trong SDLC.