Site Reliability Engineering (SRE)

Engin Özkurt
4 min readMar 1, 2021

--

Son zamanlarda çokça duyduğumuz ve fazlaca karıştırılan kavramlardan biri olan “SRE” yani “Site Reliability Engineering” ile ilgili bildiğimiz doğrular ve yanlışları içeren bir yazı yazmanın faydalı olacağını düşündüm.

Büyük ve küçük ölçekteki kuruluşlar, sistem ve uygulama güvenilirliğinin işletmeler için ne kadar önemli olduğunun farkına varmaya başladılar. Pazarın talep ettiği güncellemeleri geliştirirken, bu güvenilirliği sağlamanın ne kadar zor olduğu da öğrenildi.

Site Reliability Engineering (SRE), bu zorluğa karşı kanıtlanmış bir yaklaşımdır. Herhangi bir IT deneyiminiz var ise örneğin; sistem yöneticisi, BT uzmanı, DevOps engineer veya ilgi duyuyorsanız SRE kavramı kariyeriniz için çok ilginç bir konu olacaktır.

Nelerden bahsedeceğim_?

  • “Site Reliability Engineering” nedir? neden önemlidir?
  • “Site Reliability Engineering” kimlerdir ? ne yaparlar?
  • SRE ve DevOps farklılıkları nelerdir?
  • SRE avantajları nelerdir?
  • SRE ve IBM Cloud
  • SRE önemli kaynaklar

“Site Reliability Engineering” nedir? neden önemlidir?

Temel soruyu sorarak başlayalım.

“Site Reliability Engineering” nedir? bu terimi ortaya atan kişi Google’dan Ben Treynor Sloosdır fakat etrafta bir çok farklı cevaplar da görülmektedir.

Sunabileceğimiz en pratik cevap ise;

SRE, bir kuruluşun sistemlerinde, hizmetlerinde veya sunduğu çözümlerde uygun güvenilirlik düzeyini sürdürebilir bir şekilde elde etmesine yardımcı olmaya adanmış bir mühendislik disiplinidir.

SRE’nin tam olarak anlamını kavramak için “Reliability” kavramını iyi anlamak önemlidir.

Güvenilirlik, sistemin veya hizmetlerin istenen bir süre boyunca belirli performans standartlarını karşılama olasılığını idafe eder. Reliability ve Availability de çok karıştırılan bir konudur. Aralarındaki en temel farklılık, Availability zaman kaybıyla ölçülür, Reliability ise sorunların sıklığı ve etkisiyle ölçülür. Matematiksel olarak, bir sistemin erişilebilirliği, güvenilirliğinin bir işlevi olarak ele alınabilir. Başka bir deyişle, Güvenilirlik, Kullanılabilirliğin bir alt kümesi olarak düşünülebilir.

SRE, sistem yöneticileri tarafından manuel olarak gerçekleştirilecek olan BT operasyon görevlerini otomatikleştirmek için yazılım mühendisliğini kullanmaktadır. SRE ayrıca, sürekli olarak yeni veya güncelleştirmeleri production ortamına göndermek isteyen geliştirici ekipleri ile herhangi bir güncellemeyi kesinlikle emin olmadan yayınlamak istemeyen operasyon ekipleri arasındaki doğal sürtüşmeyi ortadan kaldırabilir. Sonuç olarak, DevOps için kesinlikle gerek olmasa da, SRE, DevOps ilkeleriyle yakından ilişkilidir ve DevOps başarısında önemli bir rol oynayabilir.

Ben Treynor Sloss’a göre “SRE, bir yazılım mühendisinden bir operasyon ekibi tasarlamasını istediğinizde olan şeydir” diyor.

Peki ikinci soruya cevap arayalım şimdi,

Bu kelime “SRE” neden bu kadar önemli?

Cevap; Yapılan araştırmalara baktığımızda %100 güvenilir olması gereken çok az sayıda sistem ve hizmet olduğunu gösteriyor. Daha fazla güvenilirlik elde etmek için gereken çaba ve yatırımlar, daha fazla güvenilirlik beklendikçe büyük bir oranda artış göstermektedir.

Burada bir terimin daha önemi ortaya çıkıyor. “sustainablysürdürülebilirlik. Sürdürülebilir bir operasyon uygulaması oluşturmamız çok önemlidir. Güvenilir sistemler veya hizmetler insanlar tarafından oluşturulur. Çalışmalarımızın sürdürülebilir olduğundan emin olmak için ekstra araçlar/çözümler kullanmaz isek, uykusuz geceler kaçınılmaz oluyor..

Tasarım gereği, SRE ekiplerinin mühendisliğe odaklanması çok çok önemlidir. Aksi taktirde operasyonların yükü artar ve ekipler, sadece iş yüküne ayak uydurmak için daha fazla insana ihtiyaç duyacaktır. Daha fazla insan daha fazla maliyet demektedir.

“Site Reliability Engineer” kimlerdir ? ne yaparlar?

Evet şimdi SRE ekipleri kimlerden oluşur ve ne yaptıklarına bakalım.

Site Reliability Engineer, BT operasyonları deneyimine sahip bir yazılım mühendisi/geliştiricisidir — kodlamayı bilen ve aynı zamanda büyük ölçekli bir BT ortamında sistemlerin nasıl güvenilir olacağını bilen biridir.

SRE, zamanlarının yarısından fazlasını manuel BT işlemlerini ve sistem yönetimi görevlerini gerçekleştirerek harcarlar.

Nelerdir bunlar; log analizi yapmak, performans kontrol ve ayarlama,üretim ortamlarını test etmek, sorunlara cevap vermek ve zamanlarının geri kalanını ise otomasyon için kod geliştirmek için harcar. Amaçları ise daha fazla kod geliştirerek uçtan uca bir otomasyon organizasyonu oluşturmak ve manuel süreçleri minimuma indirmek.

SRE ekipleri, uygulama geliştirme ekipleri ile operasyon ekipleri arasında bir köprü görevi görerek geliştirme ekibinin yeni yazılım veya özellikleri mümkün olan en kısa süre üretim ortamına geçmesini sağlarken, aynı zamanda kabul edilebilir bir BT operasyon performans sağlar.

SRE ve DevOps farklılıkları nelerdir?

Evet, yine bir çok yerde karıştırıldığına şahit olduğum bir konu. Niçin karıştırılıyor ve nedir farklılıkları biraz bu konuya bakalım..

Öncelikle DevOps’tan başlayalım.

DevOps, yazılım yaşan döngüsünü otomatikleştirerek, geliştirme ve operasyon ekiplerine daha fazla sorumluluk vererek, birbirleri ile daha sıkış çalışma modeli ve daha yüksek kaliteli uygulamaları daha hızlı sunmanın modern bir yoludur.

DevOps’un amacı, uygulama yaşama döngüsünde süreçleri dönüştürmek, kullanılan araç ve yazılımları dönüştürmek ve en önemlisi belkide yazılım geliştirme kültürünü dönüştürmek.

SRE gibi, DevOps da daha fazla uygulama ve uygulama değişikliğini daha hızlı sunma ihtiyacını daha çevik bir hale getirir. ve SRE gibi, DevOps da kabul edilebilir bir hata riski oluşturarak bu dengeyi sağlamayı amaçlamaktadır. Aslına bakarsanız DevOps ve SRE’i birbirine o kadar benziyorki bazı uzmanlar bunların aynı şeyler olduğunu savunuyor..

Neden bu kadar benzer olduklarına göz atalım;

DevOps principles: Kurumsal siloları azaltmak için otomasyon ve araçlardan yararlanır.

SRE practice: Geliştiricilerin yazılım geliştirmek için kullandıkları işlemleri otomatikleştirmek için aynı araçları kullanır.

DevOps principles: Her şeyi ölçümler

SRE practice: Yeni yazılımlar yayınlama yönelik SLA ölçümleri

SRE avantajları nelerdir?

Tüm hizmetlerdeki metrikleri, event ve trace loglarını izleyerek ve bir problem durumunda temel nedenleri tanımlamak için servis sağlığına ilişkin daha fazla görünürlük sağlar.

  • Geliştirme ve operasyon ekiplerinin SLA ihlallerinin maliyetini anlamasına ve yönetimin sistem güvenilirliğinin ölçümleyerek kesinti süresinin maliyetini ölçümlemek.
  • İş akışlarını düzene sokarak olay (incident response)yanıtlama süresini optimize etmek.
  • BT operasyonlarını, makine öğrenimi ve otomasyonlar birleştirerek, sorunun ele alınmasından sorumlu kişiye doğrudan uyarıla göndermek için modern bir operasyon merkezi.

SRE ve IBM Cloud

Watson AIOps, SRE ekibinize tüm BT ortamınızın bütünsen bir görünümü sağlamak için yapılandırılmış ve yapılandırılmamış işlem verilerini bir araya getirir. Ayrıca, sorunları daha gerçekleşmeden önce tahmin etmek ve proaktif olarak çözmek için güçlü bir Yapay Zeka (AI) sağlar.

Watson AIOps ile birlikte olayları daha derin bir şekilde anlayabilir, riskleri tahmin edebilir ve maliyetleri düşürmek için BT operasyonlarını otomatikleştirebilirsiniz.

Yapay zeka ve otomasyonun gücünü kullanarak BT operasyonlarını dönüştürmeniz, SRE ekiplerinin kurumsal uygulamaların esnekliğini ve sağlamlığına destek olmak için benzersiz bir destek sunmaktadır.

IBM Cloud Pak for Watson AIOps hakkında daha fazla bilgi edinebilirsiniz.

Son cümle ve kaynaklar,

SRE, hakkında daha detaylı bilgi için yayınlanmış kitapları aşağıda bulabilirsiniz. Ayrıca bu kitaplar haricinde SRE ile ilgilenen insanların makalelerini okumanızı ve onlarla konuşmanın faydalı olacağını düşünüyorum..

Okuduğunuz için teşekkürler!

Engin Özkurt

--

--

Engin Özkurt

𝘚𝘦𝘯𝘪𝘰𝘳 𝘚𝘪𝘵𝘦 𝘙𝘦𝘭𝘪𝘢𝘣𝘪𝘭𝘪𝘵𝘺 𝘌𝘯𝘨𝘪𝘯𝘦𝘦𝘳 / 𝘌𝘹-𝘔𝘪𝘤𝘳𝘰𝘴𝘰𝘧𝘵 /𝘖𝘱𝘪𝘯𝘪𝘰𝘯𝘴 𝘩𝘦𝘳𝘦 𝘢𝘳𝘦 𝘮𝘺 𝘰𝘸𝘯.