Dynatrace ile CI/CD Üretim Hatlarını Otomatikleştirin: Bölüm 3
Dynatrace yetenekleri ve telemetri verileri ile test aşamasında sorunların üstesinden kolayca başa çıkın.
Bu serinin son blog gönderisinde, bir dağıtım sahnesi düzenleyicisi olarak işlev gören Dynatrace’in, CI/CD süreçlerini otomatikleştirmenin başlarında Saha Güvenilirlik Mühendislerinin (SRE’ler) karşılaştığı zorlukları nasıl çözdüğünü araştırdık. Dağıtım aşamasında temeli attıktan sonra, şimdi test aşamasında Dynatrace görünürlüğünün ve orkestrasyonunun faydalarını keşfedeceğiz.
Test aşaması, otomatik test durumlarının yürütülmesi yoluyla yeni oluşturulan kodun kalitesini sağlamada çok önemli bir rol oynar. Test, diğer hizmetlerle ve uygulama işlevleriyle etkileşimde bulunurken kodun amaçlandığı gibi çalışıp çalışmadığını değerlendiren entegrasyon testlerini içerir. Ayrıca, uygulamanın üretim ortamının taleplerini etkili bir şekilde karşılayıp karşılayamayacağını belirlemek için performans testini de içerebilir.
Test aşamasında zorlukları azaltın:
Oluşturma aşaması gibi, test aşaması da zamana duyarlıdır ve yürütme için önemli miktarda zaman harcayabilir, bu da SRE’lerin testlerin başarısını veya başarısızlığını ve yeniden test ihtiyacını belirlemesi için önemli bir bekleme süresi oluşturur. Bu yavaş geri bildirim ve testleri yeniden çalıştırmak için harcanan zaman, genel yazılım dağıtım sürecini engelleyebilir.
Bu zorlukları azaltmak için, dağıtım aşamasında oluşturulan zemine dayanarak Dynatrace, test sırasında karşılaşılan sorunları etkili bir şekilde belirleyebilir. Ayrıca, sahiplik ve uyarı profilleri gibi yerel özellikler aracılığıyla uyarı bildirimlerini yapılandırarak, ekipler arıza durumunda hızlı uyarılar alabilir. Bu proaktif strateji, bekleme sürelerini önemli ölçüde en aza indirir ve SRE’lerin odaklarını yenilikçi çabalara yönlendirmelerini sağlar.
Aşağıda özetlenen adımlar, böyle proaktif bir çözümün nasıl elde edileceğini gösterir.
- Her testin başında ve sonunda Ingest olayları API’sinden yararlanarak açıklama olaylarını Dynatrace’e iletin. Bu olaylar, sorun durumunda Davis® AI nedensellik motoruna ek bağlam sağlar ve ıslatma, entegrasyon veya kaos mühendisliği gibi gelişmiş testlerin yürütülmesi için mantık operatörleri olarak işlev görür.
- HTTP isteklerine başlıklar ekleyerek performans test araçlarını Dynatrace ile entegre edin. Ayrıca, isteklerle ilgili içgörüler elde etmek için isteklerden toplanan istek özniteliklerinden ve telemetri verilerinden yararlanın.
- (İsteğe bağlı) Farklı sürümlerdeki veya test paketlerindeki isteklerin kolayca tanımlanmasını kolaylaştırmak için daha önce yapılandırılmış istek özniteliklerini kullanarak web isteği adlandırma kurallarını ayarlayın.
- Testlerin yürütülmesi sırasında, yeni oluşturulan kod tarafından oluşturulan telemetri verileri OneAgent aracılığıyla Grail’e iletilir.
Veriler incelenir ve aşağıdaki iki kategoriden birine girebilir:
Telemetri verilerinde hatalar varsa:
Telemetri verilerinde hatalar varsa, görev hemen aşamayı sorunlu olarak işaretler ve devam eden işi durdurma sürecini tetikler. Stop_the_build görevi, yapıyı durdurmak için CI/CD API’sini (bu durumda Jenkins) kullanır. Bu görev aynı zamanda oluşturulan mesaja dahil etmek için ek iş meta verilerini de alır.
İşi durdurmayla birlikte, iş akışındaki başka bir görev olan send_load_test_failure tetiklenir: işi başlatmaktan sorumlu ekibe bir Slack mesajı gönderilir. Anında uyarı mekanizması, SRE’lerin test hataları hakkında derhal bilgilendirilmesini sağlar, böylece yüksek bekleme sürelerini atlatır.
Hata yoksa ve sonuç başarılıysa:
Verilerde herhangi bir hata bildirilmezse, üretim hattı işi, Site Güvenilirlik Koruyucusu (SRG) tarafından son doğrulama aşamasında doğrulanacak olan entegrasyon ve güvenilirlik testleri yapmaya devam edecektir. Bu aşamada SRG, yeni tanıtılan kodun etkisini değerlendirmek ve üretim ortamına tanıtım için uygunluğunu belirlemek için test kapsamını doğrulayacaktır.
İsteğe bağlı en iyi uygulamalar:
İsteğe bağlı olarak, en etkili sonuçları elde etmek için aşağıdaki en iyi uygulamalar önerilmektedir.
Test aşamasında, farklı coğrafi konumlarda son kullanıcılarınızın deneyimlediği uygulamanın performansını izlemek için isteğe bağlı sentetik monitörler oluşturun.
Yapının reddedilmesi veya üretime yükseltilmesi gerekip gerekmediğini belirlemek için bir sonraki aşamada doğrulanacak olan Dynatrace API’den yararlanarak SLO’lar oluşturun.
Platform mühendisliği bağlamında test aşaması orkestrasyonu:
Platform mühendisliğinin ayrılmaz bir parçası olan Dynatrace, test sonuçlarına paha biçilmez bir görünürlük sunar ve altta yatan sorunları hızla belirleyerek ve çözerek test döngüsünü hızlandırır. Davis nedensel AI ile birlikte yanıt erişim noktaları ve dağıtılmış izler gibi hizmet araçlarını kullanan geliştirme ekipleri, test hataları durumunda hızlı geri dönüşler elde edebilir. Dynatrace kök neden analizi, daha çevik ve üretken bir geliştirme döngüsüne izin vermek, sürekli iyileştirme kültürünü teşvik etmek ve genel yazılım teslimatını hızlandırmak için test aşamalarını optimize etmek için kapsamlı bir çözüm sunarak işbirliğini geliştirir.
Ayrıca, hem SRE’ler hem de uygulama ekipleri için iş akışını optimize etmek için, veri görünürlüğünüzü genişletmek için Dynatrace pano özelliklerinden yararlanın. Bu, farklı sürümler arasında telemetri verilerinin kolay karşılaştırılmasına izin verir ve derinlemesine analiz için hizmet araçlarının kullanılmasını sağlayarak sonuçta hizmet optimizasyonuna katkıda bulunur.