SRE (Site Güvenilirlik Mühendisliği) Hakkında Bilmemiz Gereken 5 Madde
SRE (site güvenirlik mühendisliği), bir uygulama olduğundan, birden fazla disiplindeki ekipler ile iletişim kurma, sorunları çözme ve çözümleri uygulama şeklini değiştirmeyi gerektirir.
Daha fazla kuruluş cloud- tabanlı bilgi işlemi benimsedikçe ve dijital hizmetlere olan talep arttıkça, site güvenilirliği mühendisliği (SRE) uygulamaları gerekli hale geldi. Bu uygulamalar, kuruluşların kullanılabilirlik, performans, kullanıcı deneyimi ve iş KPI’ları için hizmet düzeyi anlaşmalarını (SLA’lar) karşılamasına yardımcı olur.
İşte SRE hakkında bilinmesi gereken 5 ana madde:
1. SRE otomasyona odaklanır:
SRE’nin ana amacı, çabanın tekrarını veya fazlalığını mümkün olduğunca azaltmaktır. SRE ekipleri, erişim ve altyapı sağlama, hesap oluşturma ve self servis araçları oluşturma gibi manuel görevleri otomatikleştirmeye odaklanır. Bu, geliştirme ekiplerinin özellikler sunmaya odaklanmasını sağlar ve operasyon ekipleri altyapıyı yönetmeye odaklanabilir.
Kuruluşlar yeni özelliklerin üretime teslimini hızlandırdığı için süreçleri otomatikleştirmek daha da kritiktir. Bir yandan hız, sürekli entegrasyon ve sürekli teslimatı (CI/CD) artırmak için otomasyondan yararlanan DevOps ekiplerinden geliyor. Öte yandan, mikro hizmet mimarilerine geçiş ve buluta özgü teknolojinin, kapsayıcıların, Kubernetes’in ve sunucusuz mimarilerin benimsenmesi, daha küçük değişiklikleri daha hızlı teslim etmek için daha da fazla yol sunar. Bu yöntemler verimliliği ve hızı artırır, ancak aynı zamanda riski azaltan ve ölçüm işlemleri için geri bildirim döngüleri sağlayan tutarlı, tekrarlanabilir süreçler gerektirir, böylece ekipler iyileştirme alanlarını belirleyebilir.
2. SRE, Dev ve Ops arasındaki boşluğu kapatır:
Kuruluşun değer akışı sürecinde yaptığı her şey, “bunun üretimde güvenilir bir şekilde çalışmasını nasıl sağlarız?” sorusuna cevap vermelidir. SRE’ler esneklik tabanlı mühendisliği yönlendirir. Mentor olabilirler ve esnekliğin hem geliştiriciler hem de operasyonlar için en önemli öncelik olmasını sağlayabilirler.
DevOps zihniyetini ve becerilerini yazılım güvenilirliğine uygulamak, geliştirme yaşam döngüsünün başlarında güvenilirliği ve performans sorunlarını tespit etme sorumluluğunu paylaşarak geliştirme ve operasyon ekipleri arasındaki siloları azaltmaya yardımcı olur. Geliştiriciler, operasyonlar ve ürün sahipleri arasındaki işbirliği, site güvenilirliği mühendislerinin çalışma süresi ve kullanılabilirlik hedeflerini tanımlamasını ve karşılamasını sağlar.
3. SRE “Shift-Left” zihniyetini yönlendiriyor:
SRE, uygulamaların “otomatik olarak iyileştirmesine” veya kullanıcıların kendi sorunlarını çözmelerine olanak tanıyan teslimat hattına yöntemler, politikalar ve süreçler oluşturmak için fırsatlar sunan, sürekli gelişen bir disiplindir. Shift-left zihniyeti, SRE’lerin üretime giden yazılımın kalitesini artırmak için Dev’den Ops’a, olgunlaştırma güvenilirliği ve esneklik ilkelerini her sürece, uygulamaya ve kod değişikliğine yerleştirebileceği anlamına gelir.
- Geliştirme döngüsünün başlarında sorunları tespit etmek için üretim düzeyinde hizmet seviyesi hedeflerine (SLO’lar) dayalı kalite kapıları geliştirin.
- Hizmet düzeyi göstergeleri (SLI’ler) ve SLO’lar kullanarak yapı testini ve doğrulamasını otomatikleştirin
- Yazılım geliştirmenin başlangıcında esneklik ve ölçek sağlamak için ilk tasarım aşamalarında mimari kararları etkileyin.
Amaç, kalite ve güvenilirliğin en başından itibaren yerleşik olmasını sağlamak için erken, proaktif adımlar atmaktır. SRE, süreçleri daha geniş bir şekilde etkileyebilir ve CI/CD uygulamalarını desteklemek için kuruluş genelinde testleri koordine etmeye kadar genişleyebilir.
4. SRE, operasyonlara ve desteğe yardımcı olmak için hizmetler ve araçlar oluşturur:
Geleneksel olarak, operasyon ekiplerinin ana amacı çalışma süresini iyileştirmektir. Bu tek boyutlu yaklaşım, çalışma süresinin imrenilen “hep açık” veya yılda beş dakikadan biraz fazla kesinti anlamına gelen %99,99'u arar.
Ancak dağıtılmış bulut-yerel ortamlarındaki daha yüksek değişim sıklığı, çok boyutlu bir yaklaşım gerektirir.
SRE’nin amacı, esnekliği korurken daha yüksek değişim oranları sağlamaktır ve bu da %99,999 çalışma süresine imrenmektir. Çoklu bulut ortamlarında esneklik, performans, kullanıcı deneyimi, yanıt verme, dönüşüm oranları vb. gibi temel ölçümlerle ölçülür. SRE ekiplerinin, tüm bu alanlarda operasyonları iyileştiren ve sürüm sürecini kolaylaştıran hizmetler oluşturması ve uygulaması gerekir. Bu, izlemeyi ve uyarıyı ayarlamaktan üretimde kod değişiklikleri yapmaya kadar herhangi bir şey olabilir. Saha güvenilirliği mühendisleri, yazılım teslimi veya olay yönetimi iş akışındaki belirli ihtiyaçları karşılamak için genellikle sıfırdan özel araçlar oluşturur.
Bir SRE yaklaşımını benimsemek, ekiplerin kullandığı teknolojilerin ve araçların standartlaştırılmasını da gerektirir. Standardizasyon, operasyonları yönetmeyi kolaylaştırır ve uyumsuz teknolojileri yönetme yükünü azaltır, bu da ekiplere işbirliği yapmak ve yenilik yapmak için daha fazla zaman verir.
5. SRE kültürel bir değişim gerektirir:
SRE bir uygulama olduğundan, birden fazla disiplindeki ekiplerin iletişim kurma, sorunları çözme ve çözümleri uygulama şeklini değiştirmeyi gerektirir. Başarılı bir SRE kültürünü benimsemek için, kuruluşların riski yönetmek için yeni yaklaşımlar benimsemesi gerekir. Bu aynı zamanda yönetişim süreçlerini uyarlamaları, işe alıma yatırım yapmaları ve mühendislik ve operasyonlar konusunda bilgili ve hızlı bir şekilde öğrenen ve adapte olan işbirlikçi bir işgücünü eğitmeleri gerektiği anlamına gelir.
Kuruluşlar daha sonra bu yetenekli mühendisleri DevOps yaşam döngüsünün kilit noktalarında entegre edebilir. Geliştirme ve test ekiplerinde, SRE uzmanları, geliştiricilerin çevik teslimat programlarını engellemeden erken ve sık sık test etmelerine yardımcı olan otomasyon geliştirir. Sistem düzeyinde, SRE uzmanları sürümleri ve lansmanları koordine eden, sistem mimarisi hazırlığını değerlendiren ve sistem çapında SLO’ları karşılayan araçlar geliştirir. Yönetişim düzeyinde, SRE uzmanları kurumsal mimariyi tanımlamaya ve denetlemeye, en iyi uygulamaları oluşturmaya ve şirket çapında site güvenilirliğini destekleyen araçları ve kaynakları seçmeye yardımcı olur.