Şef - Genel Bakış

Chef, Opscode tarafından geliştirilen açık kaynaklı bir teknolojidir. Opscode'un kurucu ortağı Adam Jacob, Chef'in kurucusu olarak biliniyor. Bu teknoloji, tarif ve yemek kitapları gibi temel yapı taşlarını geliştirmek için Ruby kodlamasını kullanır. Chef, altyapı otomasyonunda kullanılır ve altyapı yönetimi için manuel ve tekrarlayan görevlerin azaltılmasına yardımcı olur.

Şef, altyapıyı yönetmek ve otomatikleştirmek için gerekli olan farklı yapı taşları için kendi kurallarına sahiptir.

Neden Şef?

Chef, altyapı provizyonunu otomatikleştirmek için kullanılan bir konfigürasyon yönetimi teknolojisidir. Ruby DSL dili temelinde geliştirilmiştir. Şirket sunucusunu yapılandırma ve yönetme görevini kolaylaştırmak için kullanılır. Herhangi bir bulut teknolojisi ile entegre olma kabiliyetine sahiptir.

DevOps'ta, şirket içinde ve bulutta sunucuları ve uygulamaları dağıtmak ve yönetmek için Chef'i kullanıyoruz.

Chef'in Özellikleri

Şefin en öne çıkan özellikleri şunlardır -

  • Şef, alana özgü bir dil oluşturmak için popüler Ruby dilini kullanır.

  • Chef bir düğümün mevcut durumu hakkında varsayımlarda bulunmaz. Makinenin mevcut durumunu almak için mekanizmalarını kullanır.

  • Chef, bulut sunucusunu, depolamayı ve yazılımı dağıtmak ve yönetmek için idealdir.

Chef'in Avantajları

Şef aşağıdaki avantajları sunar -

  • Lower barrier for entry - Şef yapılandırma için yerel Ruby dilini kullandığından, standart bir yapılandırma dili, biraz geliştirme deneyimi olan herkes tarafından kolayca alınabilir.

  • Excellent integration with cloud- Bıçak yardımcı programını kullanarak, herhangi bir bulut teknolojisine kolayca entegre edilebilir. Altyapısını çoklu bulut ortamında dağıtmak isteyen bir kuruluş için en iyi araçtır.

Şefin dezavantajları

Şefin en büyük dezavantajlarından bazıları şu şekildedir:

  • Chef'in en büyük dezavantajlarından biri yemek kitaplarının kontrol edilme şeklidir. Çalışan insanların başkalarının yemek kitaplarını karıştırmaması için sürekli bebeğe ihtiyacı var.

  • Yalnızca Chef solo mevcuttur.

  • Mevcut durumda, yalnızca AWS bulutu için uygundur.

  • Kişinin Ruby'ye aşina olup olmadığını öğrenmek çok da kolay değildir.

  • Belgeler hala eksik.

Şefin Temel Yapı Taşları

Yemek tarifi

Altyapıyı yönetmek için kullanılan bir öznitelikler koleksiyonu olarak tanımlanabilir. Tarifte bulunan bu öznitelikler, mevcut durumu değiştirmek veya belirli bir altyapı düğümünü ayarlamak için kullanılır. Chef istemci çalışması sırasında yüklenirler ve düğümün (makinenin) mevcut özniteliği ile karşılaştırılırlar. Daha sonra tarifin düğüm kaynağında tanımlanan duruma gelir. Yemek kitabının ana iş yükünü oluşturur.

Yemek kitabı

Yemek kitabı, tariflerden oluşan bir koleksiyondur. Chef sunucusuna yüklenen temel yapı taşlarıdır. Chef run gerçekleştiğinde, içinde bulunan tariflerin tarifte listelendiği gibi istenilen duruma belirli bir altyapıya kavuşmasını sağlar.

Kaynak

Farklı tür durumlarla altyapıyı yönetmek için kullanılan bir tarifin temel bileşenidir. Bir tarifte, altyapının yapılandırılmasına ve yönetilmesine yardımcı olacak birden fazla kaynak olabilir. Örneğin -

  • package - Bir düğümdeki paketleri yönetir

  • service - Bir düğümdeki hizmetleri yönetir

  • user - Düğümdeki kullanıcıları yönetir

  • group - Grupları yönetir

  • template - Dosyaları gömülü Ruby şablonuyla yönetir

  • cookbook_file - Yemek kitabındaki dosyalar alt dizinindeki dosyaları düğümdeki bir konuma aktarır

  • file - Düğümdeki bir dosyanın içeriğini yönetir

  • directory - Düğümdeki dizinleri yönetir

  • execute - Düğümde bir komut yürütür

  • cron - Düğümdeki mevcut bir cron dosyasını düzenler

Öznitelik

Bunlar temelde ayarlardır. Yemek kitabında kullanmak isteyen her şeyin anahtar değer çifti olarak düşünülebilirler. Düğümün altında çalıştığı son ayarlara göre farklı bir öncelik düzeyi ile uygulanabilecek birkaç farklı nitelik türü vardır.

Dosya

Yemek kitaplarını kullanan düğümlere yerleştirilecek herhangi bir statik dosyayı içeren yemek kitabındaki bir alt dizindir. Daha sonra bir tarif, dosyaları bu dizinden son düğüme taşıyan bir kaynak olarak tanımlanabilir.

Şablonlar

Dosyalara benzerler, ancak statik değiller. Şablon dosyaları .ebr uzantısı ile biter, bu da gömülü Ruby içerdikleri anlamına gelir. Genellikle, düğüme yerleştirilecek son dosya sürümünü oluşturmak için dosyalara bir öznitelik değeri koymak için kullanılırlar.

Metadata.rb

Paketle ilgili meta verileri yönetmek için kullanılır. Bu, paketin adı ve ayrıntıları gibi ayrıntıları içerir. Ayrıca, bu yemek kitabının hangi yemek kitaplarını çalıştırması gerektiğini söyleyen bağımlılık bilgileri gibi şeyleri de içerir. Bu, Şef sunucunun düğümün çalışma listesini doğru bir şekilde oluşturmasına izin verir ve tüm parçaların doğru şekilde aktarılmasını sağlar.

Varsayılan Yemek Kitabı Yapısı

C:\chef\cookbooks\nginx>tree 
Folder PATH listing for volume Local Disk 
Volume serial number is BE8B-6427 
C: ├───attributes 
├───definitions 
├───files 
│   └───default 
├───libraries 
├───providers 
├───recipes 
├───resources 
└───templates 
    └───default

Şef - İlgili Teknolojiler

Aşçı ile ilgili teknolojilerin listesi aşağıdadır.

Kukla

Puppet, nerede çalışırsa çalışsın, standart bir yazılım teslim etme ve çalıştırma yöntemi sağlar. Merkezi teknik özelliklere dayalı olarak yönetim görevlerini yerine getiren Linux, Unix ve Windows sistemi için otomatik bir yönetim motorudur.

Birincil features of Puppet aşağıdaki gibidir -

  • Yeni sistemleri tek tip bir konfigürasyonla uygulamak.
  • Sistemleri güncellemek ve güvenlik ve yazılım paketlerini yükseltmek.
  • Yeni özellikler eklemek ve hünerli yetenekler eklemek.
  • Veri kaynaklarının kullanılabilirliğini sağlamak için yapılandırmaları özelleştirme.
  • Mevcut kaynakları optimize etmek ve maliyeti en aza indirmek.
  • Rolleri basitleştirmek ve ekibin temel ve üretken konulara odaklanmasını sağlamak.
  • Mevcut altyapıyı kuşbakışı görmek.

Ansible

Ansible, uygulamalarınızı ve sistemlerinizi dağıtmayı kolaylaştıran son derece basit bir BT otomasyon platformudur. Uygulamalarınızı dağıtmak ve güncellemek için komut dosyaları veya özel kod yazmaktan kaçının - uzak sistemlere yüklenecek aracılar olmadan SSH kullanarak düz İngilizce'ye yaklaşan bir dilde otomatikleştirin.

Birincil features of Ansible aşağıdaki gibidir -

  • Basit ve öğrenmesi kolay
  • Python ile yazılmış
  • Agentless
  • YAML tabanlı Başucu Kitapları
  • Ansible galaksi

SaltStack

SaltStack, veriye dayalı yapılandırma için kullanılır. Dinamik iletişim veri yolu üzerine inşa edilmiş yeni bir altyapı yönetimi yaklaşımıdır. Veriye dayalı düzenleme, herhangi bir altyapı için uzaktan yürütme ve herhangi bir uygulama yığını için yapılandırma yönetimi için kullanılır.

Kumaş

Fabric Bir altyapıyı yapılandırmak ve yönetmek için Python kodunda içe aktarılması gereken bir Python API'si olarak geliştirilen Python tabanlı bir programlama dilidir.