DevOps ve SRE Arasındaki 5 Temel Fark Hakkında Bilmeniz Gerekenler

Yayınlanan: 2021-02-22

Bilgi Teknolojisi ve yazılım geliştirme dünyası genellikle DevOps'u SRE ile bir ve aynı anlama gelecek şekilde birleştirir. Ancak, ikisi arasında büyük farklılıklar vardır. Site Güvenilirlik Mühendisliği (SRE) son yıllarda çekiş kazanırken, DevOps çok daha uzun süredir (DevOps terimi ortaya çıkmadan önce bile).

Basitçe söylemek gerekirse, DevOps ve SRE, yazılımı daha hızlı sunmak için uygulanan uygulamalardır. İkisi arasındaki tek fark yaklaşımlarındadır; DevOps, yazılım geliştirme yaşam döngüsünü azaltmaya odaklanır ve SRE, aynı amaca ulaşmak için sistem zayıflıklarını ortadan kaldırmaya odaklanır.

Bu yazıda DevOps ve SRE'nin birbirinden farklı olduğu temel yollara bakacağız. Bunu yapmadan önce, DevOps ve SRE'nin ne olduğunu anlamakla başlayalım.

İçindekiler

DevOps nedir?

The DevOps Handbook ve The Phoenix Project'in yazarı Gene Kim'in sözleriyle,

“DevOps, diğerlerinin yanı sıra geliştirmeden, testler yoluyla operasyonlara planlı çalışmanın hızlı akışını sağlarken, dünya standartlarında güvenilirliği, işletimi ve güvenliği koruyan bir dizi kültürel norm ve teknoloji uygulamasıdır. DevOps, ne yaptığınızla değil, sonuçlarınızla ilgilidir.”

Bu nedenle DevOps, temel olarak yazılım geliştirme yaşam döngüsünü (SDLC) hızlandırmak için bir kuruluş içindeki kültürel uygulamaları dönüştürmeye odaklanır. Bir kişiyi, grubu veya konumu hedef almaz. DevOps, hem Bilgi Teknolojileri operasyonları hem de yazılım geliştirme ekipleri arasındaki işbirliğini güçlendirmeyi hedefliyor.

Ne yaptığı ve nasıl yaptığı önemli değildir; sadece sürecin sonucu onaylanır.

DevOps, yazılım mühendisliği ekiplerinin üretim sistemlerine maruz kalmasını yoğunlaştırmak için bir dizi ilke kullanır ve BT operasyon ekibinin tutarsızlıkları geliştirme ekibine daha verimli bir şekilde iletmesine olanak tanır. Aslında SRE, proaktif testi, hızı kolaylaştırarak, gözlemlenebilirliği sağlayarak ve hizmet güvenilirliğini artırarak bir DevOps organizasyonunda çok önemli bir rol oynar. DevOps, her DevOps merkezli organizasyonu, CALMS modelinde belirtilen kültürel ilkelere göre çalışmaya teşvik eder.

SRE nedir?

Site Güvenilirlik Mühendisliği'nin kısaltması olan SRE, Google'ın teknik operasyonları denetlemekten sorumlu Kıdemli Başkan Yardımcısı Ben Treynor tarafından ortaya atılan bir terimdir.

Drew Farnsworth (Green Lane Design'dan) şöyle açıklıyor: “Genel olarak SRE'yi geliştirmenin operasyonları kontrol ettiği bir sistem olarak düşünmeyi seviyorum. Bu, ortamın BT yığınının en temel bileşenlerine ayrıldığı ve donanıma eklenen en iyi uygulamalarla dağıtıldığı bir sistemdir.”

Esasen, yazılım geliştirmede uzmanlığa sahip SRE ekibi, teslimat hızı ile sistemin güvenilirliği arasındaki dengeyi korurken sistem üretimindeki sorunları çözme sorumluluğuyla görevlendirilmiştir. Bu şekilde, SRE yaklaşımı, bir organizasyonun politikalarını desteklemek için yapılandırılmış mühendislik uygulamalarını uygulamak için operasyon rolleri altındaki yazılım geliştirme personelini bir araya getirir.

Yazılım ekiplerinin sistemin güvenilirliğini artırmak için teknik hizmetler geliştirmesi için sistemlerin her zaman kullanılabilir ve verimli bir şekilde çalışmasını sağlarlar. Herhangi bir potansiyel zayıflığı, büyük bir soruna dönüşmeden önce belirlemek SRE'lerin sorumluluğundadır.

DevOps vs SRE: DevOps ve SRE Arasındaki En Büyük Farklar

Uygulamada, DevOps ve SRE, DevOps merkezli bir yapının parçası olarak SRE'lerin teknik hizmetlerinin güvenilirliğini iyileştirmeye odaklandığı tamamlayıcı disiplinler olarak görülmelidir. Dolayısıyla, esasen DevOps ile SRE diye bir şey yoktur.

Bu nedenle, bu bölümde yaptığımız şey DevOps ve SRE arasındaki temel farklılıkları değerlendirmektir.

Değişikliği Uygulamak

Güncellemelerin sık sık gerçekleşmesi ve kullanıcıların daha yeni ve daha alakalı teknolojiye erişimi olması için hem DevOps hem de SRE hızlı ilerlemeyi amaçlıyor. Bununla birlikte, DevOps dikkatli bir şekilde kademeli olarak ilerlerken, SRE daha hızlı hareket edememenin maliyetini hesaba katar.

Her ikisi de bu amaca ulaşmak için otomasyonu uygular ve araçları kullanır.

Arızaları Normal Görmek

DevOps, başarısızlıkları kabul etme ve onları öğrenme baskısı olarak görme konusunda çok büyük. Bu nedenle, hataların sürecin bir parçası olduğunu kabul ederek suçsuz bir kültürü teşvik eder ve sistemleri %100 hataya dayanıklı hale getirmeye odaklanmaz. Bunun bir örneği, Simian Ordusu ile Netflix'tir.

Öte yandan SRE, suçsuz otopsiyi destekler. Bunun arkasındaki amaç, başarısızlığın nedenini belirlemek, sorumluluk vermek ve gelecekte benzer başarısızlıkları önlemek için çalışmaktır. Bir sistemin kaç tane hataya uğrayabileceği hata bütçesine dahil edilir. SLI, SLO ve SLA metrikleri, üretim maliyetini azaltmak için bunu belirler. Temel olarak, SRE, olası bir arızayı önlemek için proaktif izleme ve uyarı uygulamalarını benimser.

Dünyanın En İyi Üniversitelerinden Online Yazılım Geliştirme Kursları öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

Otomasyon ve İnovasyon

DevOps, otomasyona büyük önem vermektedir. DevOps odaklı bir ortamda bu, sistemlerin mümkün olduğunca otomatik hale getirilmesi anlamına gelir ve sıkıcı sürümlerle sonuçlanır. Bir geliştirici kodu işledikten sonra, tümü değilse de aşağıdaki etkinliklerin çoğu otomatikleştirilmelidir.

Bu nedenle, DevOps'un CI/CD'yi takip etme nedeni, daha yüksek hızda yüksek kaliteli sistemler geliştirmektir.

SRE'nin CI/CD'yi takip etme nedenleri farklıdır, başarısızlık maliyetini düşürmeyi amaçlar. Dağıtım ve yedekleme gibi işlemlerde yaygın, genel veya tekrarlayan görevler daha az dikkate değer olarak kabul edilir. Bu nedenle, SRE'ler operasyonel zahmetten kaçınmak için belirli bir süre ayırmaktadır. Bu, yeni teknolojilerin veya mimariyle ilgili faaliyetlerin yürütülmesi veya yenilenmesi gibi daha çekici görevleri yerine getirebilmeleri için yapılır.

Ödeme: Yeni Başlayanlar için DevOps Projeleri

Organizasyonel Siloları Yıkmak

Geliştiriciler ve operatörler, dağıtım süreci söz konusu olduğunda çatışmaya girerler. Geliştiriciler, kodlanır yazılmaz dağıtılan özelliklerden yararlanacak olsa da, operasyon çalışanları, dağıtım sürecini engelleyen sistemleri kullanılabilir hale getirmeye odaklanır.

Hem DevOps hem de SRE, bir kuruluştaki siloları nasıl kaldırdıkları konusunda farklılık gösterir.

DevOps, DevOps El Kitabında açıklandığı gibi, bu soruna daha küçük gruplar halinde çalışma ve yapılandırmaları daha iyi yönetme gibi uygulamaları dahil ederek yaklaşır.

SRE'ler yalnızca ekipler arasındaki akışı optimize etmeyi amaçlamaz, aynı zamanda üretimdeki sistemlere de yardımcı olur. Bunu ekiplere danışman olarak entegre ederek ve çalışan sistemlerin sorumluluğunu paylaşarak geliştiricileri destekleyerek yaparlar. SRE'ler bir kuruluştaki siloları bu şekilde bozar.

Başarılı Bir Uygulamanın Ölçülmesi

DevOps ölçümleri, işlemlerin hızıyla ilgilidir; bu, dağıtımların ne sıklıkta gerçekleştiğini, bunun için geçen süreyi ve ne sıklıkla sorunla karşılaştıklarını içerir.

Puppet ve DORA'nın 2017 raporuna göre DevOps'ta başarılı bir uygulamanın ölçülmesi aşağıdakilere bağlıdır:

  • dağıtımların gerçekleşme sıklığı
  • bir kod taahhüdü ile dağıtımı arasındaki süre
  • dağıtımların başarısız olduğu sıklık
  • bir dağıtım hatasından kurtulmak için geçen süre

Bu geri bildirim döngüleri, DevOps'un sistem kalitesini iyileştirmesine yardımcı olurken, denemede bir değişikliği kolaylaştırır.

SRE ise sistemlerin güvenilirliğini göz önünde bulundurarak iyileştirmeye çalışır. Başarılı bir uygulamayı belirlemek için aşağıdaki temel ölçütleri dikkate alır:

  • hizmet düzeyi hedefi (SLO)
  • hizmet düzeyi göstergesi (SLI)
  • hizmet düzeyi sözleşmesi (SLA)

Yukarıda bahsedilen metrikler, bir sistemin güvenilirliğinin göstergeleridir. Bu metrikler, bir değişiklik yayınının üretime ulaşıp ulaşmayacağını önceden belirler.

SRE'de, bu hız ve kalite metrikleri, yeni özellikler üzerinde çalışmak yerine bir hata bütçesi oluştururken ve sistemlerin güvenilirliğini artırırken kullanışlıdır.

Okuyun: Hindistan'da DevOps Mühendisi Maaşı

Çözüm

Google, Treynor'un SRE'yi şu şekilde açıkladığı üretim sistemlerinde Site Güvenilirlik Mühendisliğini nasıl uyguladıkları hakkında bir e-Kitap yayınlamıştı:

"SRE, bir yazılım mühendisinden bir operasyon ekibi tasarlamasını istediğinizde olan şeydir."

DevOps ve SRE'nin ne kadar farklı olduğuna gelince, hatırlamanız gereken tek şey, SRE'nin bir operasyon ekibinden ziyade geliştiriciler tarafından yönlendirildiğidir. Hem bakım hem de izleme büyük ölçüde geliştiricilerin kontrolü altındadır. Bu iki disiplini birbirinden ayıran en önemli şey budur.

Büyük DevOps, tam yığın geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin Yazılım Geliştirmede Yönetici PG Programına göz atın - Çalışan profesyoneller için tasarlanmış ve 500 saatten fazla sıkı eğitim sunan Tam Yığın Geliştirmede Uzmanlık , 9+ proje ve ödev, IIIT-B Mezun statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.

Yazılım Geliştirme Kariyerinizi Şimdi Planlayın.

UpGrad'ın Yazılım Mühendisliğinde İş Bağlantılı PG Sertifikasyonu için başvurun