Site güvenilirlik mühendisliği ile DevOps arasındaki ilişkiyle ilgili olarak ortaya çıkan bir dizi yaygın soru vardır: "Nasıl aynılar? Bunların birbirinden farkı nedir? Her ikisini de kuruluşumuzda kullanabilir miyiz?" Bu makalede, SRE ve DevOps toplulukları tarafından sunulan ve bu ilişkiyi anlamamıza daha yakın olan bazı yanıtları paylaşmaya çalışılır.
Nasıl aynılar?
SRE ve DevOps, aşağıdakileri içeren zorluklara yanıt olarak oluşturulan ve geliştirilen modern operasyon uygulamalarıdır:
- üretim ortamlarımızın ve geliştirme süreçlerimizin artan karmaşıklığı
- işletmelerin bu ortamların sürekli çalışmasına olan bağımlılığının artması
- iş gücünü bu ortamların boyutuyla doğrusal olarak ölçeklendirmenin mümkün olmaması
- operasyonel kararlılığı korurken daha hızlı hareket etme ihtiyacı
her iki operasyon uygulamaları da izleme/gözlemlenebilirlik, otomasyon, belgeler ve işbirliğine dayalı yazılım geliştirme araçları gibi bu güçlüklerle başa çıkmak için kritik öneme sahip konulara önem verir.
SRE ile DevOps arasındaki araçlarda ve çalışma alanlarında önemli bir çakışma vardır. Site Güvenilirliği Çalışma Kitabı bunu ifade ettikçe, "SRE, DevOps ile aynı şeylere inanıyor, ancak biraz farklı nedenlerle."
İki işlem uygulamalarını karşılaştırmanın üç farklı yolu
SRE ile DevOps arasındaki benzerlikler açıktır. Gerçekten ilginç olan nokta, ikisinin nasıl farklılık gösterdiği veya farklılaştığıdır. Burada, bu soruya biraz nüans getirmenin bir yolu olarak ilişkilerini düşünmenin üç yolunu sunuyoruz. Bu yanıtlara katılamayabilirsiniz, ancak her birinin tartışma için iyi bir başlangıç noktası vardır.
"sınıf SRE, DevOps arabirimini uygular"
Site Güvenilirlik Çalışma Kitabı (kaynak defteri listemizde bahsedilmektedir) ilk bölümünde SRE ve DevOps'u ele alır. Bu bölümde alt başlığı olarak "sınıf SRE arabirimi DevOps uygular" ifadesi kullanılır. Bu, SRE'nin DevOps felsefesinin belirli bir uygulaması olarak kabul edilebileceğini (geliştiricilere yönelik bir tümceciği kullanarak) önermek içindir. Bölümde de belirtildiği gibi, "DevOps, işlemleri ayrıntılı düzeyde çalıştırma konusunda nispeten sessizdir", SRE ise uygulamalarında oldukça daha açıklayıcıdır. Bu nedenle, ikisinin arasındaki ilişki sorusunun olası yanıtlarından biri, SRE'nin DevOps'un birçok olası uygulamasından biri olarak kabul edilebileceğidir.
DevOps teslim olduğu için SRE güvenilirliktir
Hem SRE hem de DevOps için birden çok tanım olduğundan bu karşılaştırma biraz çamurludur, ancak yine de yararlı olabilir. "Her operasyon uygulamasını temel endişesini yansıtan bir veya iki kelimeye ayırmak zorunda olsaydınız ne olurdu?" sorusuyla başlar.
Site güvenilirliği mühendislik merkezinden bu SRE tanımını kullanırsak:
Site Güvenilirliği Mühendisliği kuruluşun sistemlerinde, hizmetlerinde ve ürünlerinde uygun güvenilirlik düzeyine sürdürülebilir bir şekilde ulaşmasına yardımcı olmaya adanmış bir mühendislik disiplinidir.
O zaman SRE sözcüğünün "güvenilirlik" olduğunu söylemek kolay olacaktır. Adın tam ortasında olması da bu talep için bazı mükemmel kanıtlar sunar.
Azure DevOps Kaynak merkezinden DevOps'un bu tanımını kullanırsak:
DevOps, son kullanıcılarımıza sürekli değer sunulmasını sağlamak için tasarlanmış kişilerin, süreçlerin ve ürünlerin birleşimidir.
daha sonra DevOps için benzer bir damıtma "teslim" olabilir.
Bu nedenle "SRE, DevOps'un teslimi olduğu gibi güvenilirliktir".
Dikkat yönü
Bu yanıt, Kaynak kitabı listemizde bahsedilen Arama SRE kitabına Thomas Limoncelli'nin katkılarından alıntılanmıştır veya biraz paraflanmıştır. DevOps mühendislerinin büyük ölçüde ara sıra üretim operasyonları sorumluluklarına sahip yazılım geliştirme yaşam döngüsü işlem hattına odaklandığını, SRE'lerin ise zaman zaman SDLC işlem hattı sorumluluklarıyla üretim operasyonlarına odaklandığını belirtiyor.
Ancak daha da önemlisi, bir tarafta yazılım geliştirme süreciyle başlayan ve diğer tarafta üretim operasyonlarının çalıştığı bir diyagram çizer. İkisi, kodu bir geliştiriciden alacak, istenen test sayısına göre yol gösteren ve ardından bu kodu üretime taşıyacak şekilde oluşturulan normal işlem hattına bağlanır.
Limoncelli, DevOps mühendislerinin geliştirme ortamında başladığını ve üretim adımlarını otomatikleştirdiğini belirtiyor. İşlem tamamlandıktan sonra performans sorunlarını iyileştirmek için geri dönerler.
SRE'ler ise üretim operasyonlarına odaklanır ve nihai sonucu geliştirmenin bir yolu olarak işlem hattının derinliklerine ulaşır (temelde ters yönde çalışır).
SRE ve DevOps odağı yönündeki fark, bunları ayırt etmelerine yardımcı olabilir.
Aynı kuruluşta birlikte bulunma
Ele almak istediğimiz son soru şudur: "Aynı kuruluşta hem SRE hem de DevOps var mı?"
Bu sorunun yanıtı amphatik bir "evet!".
Önceki yanıtların, iki operasyon uygulamalarının nasıl örtüştüğü ve çakışmadığında odakta nasıl tamamlayıcı olabilecekleri konusunda bir fikir sunduğunu umuyoruz. Yerleşik Bir DevOps uygulamasına sahip kuruluşlar, SRE pozisyonları veya ekipleri oluşturma taahhhünde bulunmadan küçük ölçekli SRE uygulamalarıyla (örneğin, SLI'leri ve SLO'ları denemeyi) deneyebilir. Bu oldukça yaygın bir SRE benimseme düzenidir.
Sonraki adımlar
Site güvenilirliği mühendisliği veya DevOps hakkında daha fazla bilgi edinmek istiyor musunuz? Site güvenilirlik mühendisliği merkezimize ve Azure DevOps Kaynak merkezimize göz atın.