OzzTech - Hizmet Dayanıklığı Arttırmada 4 Pratik Adım

Hizmet Dayanıklığı Arttırmada 4 Pratik Adım

Hizmet Dayanıklığını Arttırmada 4 Pratik Adım

Hizmet dayanıklığı sistemlerinizde gelişebilecek olası performans hatalarını hızlı bir şekilde önceden belirleyip azaltabilmenizi sağlar. Böylece hizmetinizin dayanıklığını arttırmada ilk adımı atmış olursunuz.

Eskiden kullanılan yazılımların çalışabilmesi için sadece bir web sunucusunun ve veritabanının olması yeterliydi. Ancak, modern yazılımlarda sistemler çok daha karmaşık bir oluşumdur. Bugünlerde yazılım tasarımcıları, genel ve özel cloud, sunucu sanallaştırması ve daha birçok karmaşıklarla uğraşıyor.

Hem eski tür hem de yeni tür yazılımlar başarısız olabilmektedir. Ama eski tarzdaki uygulamalar için esnek yazılım oluşturmak modern yazılımlara kıyasla daha kolaydı.

Resilient ''esnek'' sistemin teknik anlamı, başarısız olmasına rağmen müşteri ve kullanıcı tarafından işlevselliğini koruyan sistemdir. Dayanıklılığı anlamak için örneğin seller, kuraklık veya yangınlardan kaçabilen çevre ekosistemi düşünebilirsiniz. Hizmet dayanıklığı sağlayacak esnek bir tasarım, ortalama onarım süresini iyileştirmek için tasarlanmıştır.

Hizmet dayanıklığı geliştirmenizi sağlayacak 4 teknik:

1. Yollanan güncellemeleri uygulayın

10 veya 100 sunucu çalıştırdığınızda hepsini aynı anda güncellemeyin. Bunun yerine, her seferinde sadece bir sunucuyu güncelleyerek durumunu takip edin. Microsoft'ta Yazılımı Nasıl Test Ediyoruz kitabında, öncelikle yakın zamanda güncellenmiş sunucuların sadece dahili çalışan sunuculara yönlendirmeniz önerilir. Tasarlanmış sürümün yalnızca bir tanesinin stabil olduğuna karar verildiğinde müşterilere bırakılması tavsiye edilir. Bu sayede ödeme yapan müşteriler en stabil sürümü görebilmektedir. Bu süreç boyunca çalışanlar aslında beta testçileri olarak görev alır.

Kanarya dağıtımı olarak da bilinen bu yöntem, ödeme yapan müşteriye sorunlar yansımadan belirlenebilmesini sağlar. Genel sürüm yayınlanmadan önce çözülmesi gereken bir performans sorununu gösteren her şeyi toplamanız ve loglamanız gereklidir. Buna ek, otomatik izlemeden, raporlama yazılımından ve beta kullanıcılarınızdan gelen geri bildirimleri not almalısınız. Böylece, tekrardan test yapmanıza gerek kalmadan sorunları tanımlayabilirsiniz.

2. İşlevselliği yeniden deneyin ve hizmetleri asenkron hale getirin

Eski yöntemli geleneksel web hizmetleri eş zamanlı bir sisteme sahiptir. İstek gönderdikten sonra yanıtın gelmesi beklenir. Ancak eş zamanlı sistemlerde bekleme süreleri çok uzun olabilmektedir. Herhangi bir girişim başarısız olduğunda, işlemlerin tamamı zaman aşımı ve başarısızlık riskleriyle karşı karşıya kalır.

Hizmet esnekliğini sağlamanın bir başka yolu da bekleme süresinin bağlantısını kesmektir. Açık kaynak veritabanları örneğin Redis bağlantıyı otomatik keser. Redis, bilgileri iletmeden önce bir sunucunun veritabanı yanıtlarının doğru olduğundan emin olmak için güncel olmayan bilgileri hızla sunucuya geri gönderir. Böylece, sunucu veritabanından yanıt beklerken fazaldan bekleme süresini keser.

3. Üretimde sentetik işlemlerle test yapın

Gözlemlenebilirlik problemi: Elle test edilip her şeyin normal ve yolunda gözükmesine denir.

Bir destek mühendisi, hataların kaynağını ve zamanını belirleyebilen bir test komut dosyası oluşturdu. BU şekilde, loglama yapılırken zaman aşımına uğrama sorununun çözülmesini sağladı.

Sentetik işlemler: Üretimde çalışan ve kullanıcı deneyimi bilgileri sağlayan küçük test komut dosyalarına denir. Bazı çerçeveler bunları kullanıma hazır verir. Ancak bazıları bir test aracına ihtiyaç duyar. 

Ancak bu teknik tüm uygulamalarda işe yaramaz. Sentetik işlemlerin eklenmesi, diğer projelere daha fazla zaman harcayabilecek zaman ve enerji gerektirir. Bu yüzden gereksiz işlemlere zaman kaybetmek istemiyorsanız sorunun gerçekten var olduğundan emin olmalısınız. Performans düştüğünde herkesin fark edebileceği, çalışma süresi yüksek dahili sistemlerde bu teknik gereksizdir. Çünkü işlemler sistemin performansı zorlandığında kullanıcının aldığı deneyimin kalitesi düşer.

4. Fazlalıklar için mühendislik, peki sonra...

Hizmet dayanıklığı sağlarken sadece fazlalıklarla uğraşmak için mühendislik yaptığınız anlamına gelmez. Bunun için test yapmanız gerektiği anlamına gelir. Netflix'in yarattığı Chaos Monkey'in üretilmesinin ardındaki fikir, belirli hatalar yaratıp bunları test etmekti. Küçük bir amaçla bir ara verilmesi, gerçek bir hata ortaya çıkarıyorsa, tüm işleri tekrardan yükleyin ve fazlalık yaratın.

Fazlalık testi yapmak, Chaos Monkey'i kullanmak zorunda olduğunuz ya da kendi yazılımınızı yazmanız gerektiği anlamına gelmez. Bunlarla uğraşmak yerine, zorunlu hatalardan oluşan bir test planı hazırlayın. Böylece başarısızlık durumunda ne olduğunu önceden öğrenebilirsiniz. Bu şekilde aslında yarattığınız fazlalığın başarısız olmadığını ve düzeltme yapmanın daha kolay olduğunu fark edeceksiniz.


İlginizi Çekebilecek Makaleler
FortiGate ACME Sertifika Desteği
Siber Güvenlik

FortiGate ACME Sertifika Desteği

Ocak 24, 2022 1:22

Otomatik Sertifika Yönetim Ortamı (ACME), RFC 8555’te tanımlandığı üzere, ücretsiz SSL sunucu sertifikaları sağlamak için genel Let’s...

Android Reverse Mühendisliği Araçları Örnek Vakalar
Siber Güvenlik

Android Reverse Mühendisliği Araçları Örnek Vakalar

Ocak 24, 2022 12:39

Bir önceki yazıda yeni çıkan android reverse mühendisliği araçları hakkında bilgi vermiştim. Bu yazımda...

Emotet Artık Alışılmadık IP Adreslerini Kullanıyor
Siber Güvenlik

Emotet Artık Alışılmadık IP Adreslerini Kullanıyor

Ocak 24, 2022 9:44

Emotet kötü amaçlı yazılım botnetinin dağıtımını içeren sosyal mühendislik kampanyaları, güvenlik çözümlerinin tespitinden kaçınmak...

FortiWeb Kurulumu 5-Operation Modu
Siber Güvenlik

FortiWeb Kurulumu 5-Operation Modu

Ocak 24, 2022 7:49

FortiWeb kurulumunu anlattığımız beşinci yazımızda operation modu ve FortiWeb cihazı açıldıktan sonra, FortiWeb cihazını...

FortiWeb Kurulumu 4- Admin Şifresi Değiştirme
Siber Güvenlik

FortiWeb Kurulumu 4- Admin Şifresi Değiştirme

Ocak 23, 2022 10:21

FortiWeb kurulumunu anlattığımız serinin dördüncü yazısında Admin şifresi nasıl değiştirceğinizi, saat ve günü nasıl...

Metasploittable 2
Siber Güvenlik

Metasploittable 2

Ocak 22, 2022 11:57

Metasploittable 2 Nedir? Neden Kullanılır? Nasıl Kurulur? Metasploittable 2 Metasploit firması tarafından bizlerin güvenli...

FortiWeb Kurulumu 3- Firmware Güncellenmesi
Siber Güvenlik

FortiWeb Kurulumu 3- Firmware Güncellenmesi

Ocak 22, 2022 11:56

FortiWeb kurulumunu anlattığımız serinin üçüncü yazısında Firmware güncellemesini anlatacağız. FortiWeb cihazınız gönderildiğinde en son...

FortiWeb Kurulumu 2- Web UI ve CLI Bağlama
Siber Güvenlik

FortiWeb Kurulumu 2- Web UI ve CLI Bağlama

Ocak 21, 2022 7:50

FortiWeb kurulumu yazımızın ikinci serisinde Web UI veya CLI bağlamanın nasıl yapılacağını anlatacağız. Eğer...

Yapay Zeka Nedir?
Yazılım Geliştirme

Yapay Zeka Nedir?

Ocak 20, 2022 10:57

Sürekli olarak değişen, gelişen ve oldukça hızlı bir şekilde boyut atlayan, günümüze kadar gelen...

İletişim
OZZTECH Bilgi Teknolojileri olarak siber güvenlik danışmanlığı ve bilgi güvenliği eğitimleri alanlarında 10 yılı aşkın bir süredir ülkemizin önde gelen kurumlarına hizmet vermeye devam etmektedir. Detaylı bilgi ve danışmanlık hizmetlerimiz için aşağıdaki formu kullanarak veya [email protected] adresimiz üzerinden bizlerle iletişime geçebilirsiniz.