**Chef**, Ruby ve Erlang programlama dilleri kullanılarak yazılmış bir yapılandırma yönetimi aracı ve aynı adlı bir şirkettir. Sistem yapılandırma "tariflerini" yazmak için saf Ruby tabanlı özel amaçlı bir programlama dili kullanır. Chef bir şirketin sunucularının yapılandırma ve bakımını düzene sokma görevini yerine getirir ve yeni cihazları gözden geçirmek ve yapılandırmak için Google Cloud Platform, Amazon EC2, OpenStack, Microsoft Azure, Rackspace, Internap ve SoftLayer gibi bulut tabanlı platformlarla bütünleşebilir. Chef tamamen ücretsiz olarak yayınlanan ve Apache Lisansı'na sahip bir özgür yazılımdır. Bunun yanında firma olarak küçük ve büyük sistemlere hitap eden ve bu yönde fiyatlandırmalar sunan çözümleri vardır.

Özellikler
----------

Kullanıcı Chef'in sunucu uygulamalarını ve yan uygulamalarını (örneğin Apache HTTP Sunucusu, MySQL veya Hadoop gibi) nasıl tanımlayacağını anlatmak ve nasıl yapılandırılacaklarını belirlemek için "tarif"ler kullanır. Tariflerin daha kolay yönetim amacıyla gruplandırılmış haline "yemek kitabı" adı verilir. Bu tarifler bir kaynak dizisini tanımlamak amacıyla belirli bir durumda bulunabilir: yüklenmesi gereken paketler, çalışması gereken hizmetler veya yazılması gereken dosyalar. Bunun gibi çeşitli kaynaklar belirli bir yazılım sürümünün çalıştırılması yönünde yapılandırılabilir ve aynı yazılımın doğru bir şekilde ve tüm bağımlılıklarıyla birlikte kurulmuş olduğunu garantilemek için kullanılabilir. Chef her bir kaynağın düzgün şekilde yapılandırıldığından emin olup istenilen durumda olmayan kaynaklarda gerekli düzeltmeleri yapar. Chef istemci-sunucu kipinde veya tek başına "chef-solo" adlı bir yapılandırmada çalışabilir. İstemci-sunucu kipinde Chef istemcisi düğüm hakkındaki çeşitli nitelikleri Chef sunucusuna gönderir. Sunucu Solr kullanarak bu nitelikleri dizinler ve istemcilerin bu bilgiyi sorgulamaları için bir API sağlar. Chef tarifleri bu nitelikleri sorgulayabilir ve elde ettiği sonuçları düğümü yapılandırmaya yardımcı olması için kullanabilir.

Geleneksel olarak Chef Linux'ü yönetmek için kullanılmıştır ancak sonraki sürümler Microsoft Windows'u da desteklemektedir.

CFEngine, Bcfg2 ve Puppet gibi benzerleriyle birlikte Linux üzerindeki en büyük dört yapılandırma yönetimi programından biridir.

Tarihçe
-------

Chef ilk adımda Adam Jacob tarafından iş modelinin uçtan uca sunucu ve dağıtım araçları üretmek olduğu kendi danışmanlık şirketi için oluşturduğu bir araç olarak yola başlamıştır. Jacob daha sonra Chef'i Jesse Robbins'e göstermiş ve o da Amazon'da gerçekleştirdiği faaliyetlerden sonra potansiyelinin farkına varmıştır. Sonrasında Barry Steinglass, Nathen Haneysmith ve Joshua Timberman ile birlikte yeni bir şirket kurarak Chef'i bir ürün haline dönüştürülmüştür. Proje ilk olarak "marionette (kukla)" olarak adlandırılmış ancak bu ismin hem uzun hem de yazımının karmaşık olması ve modüllerin hazırlandığı biçimin adının "tarif" olarak adlandırılması sebebiyle sonradan "Chef (şef)" olarak yeniden isimlendirilmiştir.

Şubat 2013'te Opscode Chef'in 11. sürümünü çıkarmıştır. Bu sürümdeki değişiklikler çekirdek API'nin Erlang'da yazılması gibi birçok yenilik içermiştir.

Platform desteği
----------------

Chef birçok istemci ve sunucu ürününde desteklenmektedir. İstemci için bilinen büyük platform destekleri AIX, RHEL/CentOS, FreeBSD, OS X, Solaris, Microsoft Windows ve Ubuntu'dur. Diğer istemci platformları arasında ArchLinux, Debian, Fedora ve diğerleri vardır. Chef sunucusu RHEL/CentOS/Oracle Linux, ve Ubuntu üzerinde desteklenmektedir.

Kullanıcılar
------------

Chef Airbnb, Mozilla, Expedia, Facebook, HP Public Cloud, Prezi, Ancestry.com, Rackspace, Get Satisfaction, IGN, Marshall Üniversitesi, Socrata, Minnesota Üniversitesi, Pennsylvania Üniversitesi Wharton Okulu, Bonobos, Splunk, Citi, Cheezburger ve başka birçok kurum ve firma tarafından kullanılmaktadır.

Kaynakça
--------

1. ↑  "*Chef - Code Can | Chef*". 15 Ekim 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Temmuz 2015.
2. ↑  Metz, Cade (26 Ekim 2011). ""The Chef, the Puppet, and the Sexy IT Admin"". *Wired*. 17 Ekim 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Temmuz 2015.
3. ↑  Alan, Sharp-Paul (4 Mart 2013). "*Puppet vs.* ". 8 Eylül 2015 tarihinde kaynağından arşivlendi.
4. ↑  Lueninghoener, Cory (28 Mart 2011). ""Getting Started with Configuration Management"" (PDF). 4 Mart 2016 tarihinde kaynağından (PDF) arşivlendi. Erişim tarihi: 4 Temmuz 2015.
5. 1 2  "History of Chef: What's in a Name? (Youtube Video)". YouTube. 2 Ocak 2016 tarihinde kaynağından arşivlendi.
6. ↑  Bryan McLellan (2013-02-04).
7. ↑  "Supported Platforms". 26 Eylül 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 16 Ekim 2015.
8. ↑  "Facebook uses a seasoned Chef to keep servers simmering". pcadvisor.co.uk. 24 Mayıs 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ocak 2014.
9. ↑  "ChefConf Readout: Chef to Enable the Full Continuous Deployment Pipeline". HPCloud.com. 4 Mart 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 25 Haziran 2012.
10. ↑  "How Chef Enables the DevOps Culture at Prezi - Zsolt Dollenstein (Youtube Video)". YouTube. 9 Mart 2016 tarihinde kaynağından arşivlendi.
11. ↑  "Creating a Culture for Continuous Delivery - John Esser". YouTube. 8 Aralık 2015 tarihinde kaynağından arşivlendi.
12. ↑  "DEVOPS". 11 Ekim 2015 tarihinde kaynağından arşivlendi.
13. ↑  "Success Stories". 21 Aralık 2014 tarihinde kaynağından arşivlendi.

Dış bağlantılar
---------------

* ""CHEF": HOW TO COOK IT RIGHT?". 21 Mayıs 2014. 12 Mart 2016 tarihinde kaynağından arşivlendi.
* "Official website". 18 Ekim 2014 tarihinde kaynağından arşivlendi.
* "GitHub üzerinde chef". 27 Kasım 2015 tarihinde kaynağından arşivlendi.
* RubyGems.org'da Chef