Dynatrace ile CI/CD Üretim Hatlarını Otomatikleştirin: Bölüm 1
Kodu derleme aşamasında görünürlüğün artırılması, geliştirme döngüsünün başlarında derleme ve entegrasyon hatalarını belirlemeye yardımcı olabilir. Bu proaktif yaklaşım bekleme sürelerini azaltır ve SRE’lerin çabalarını inovasyona yönlendirmesine olanak tanır.
Bu serinin ilk blog gönderisinde, Dynatrace® gözlemlenebilirlik ve güvenlik platformunun Site Güvenilirlik Mühendisleri (SRE) CI/CD üretim hatlarının güvenilirliğini nasıl artırdığını ve inovasyona odaklanma yeteneklerini nasıl geliştirdiğini araştırdık. Bu blog yazısı, bu hedeflere ulaşmak için CI/CD süreçlerini otomatikleştirmek üzere Dynatrace’ı yapılandırmada size rehberlik edecektir.
Dynatrace gözlemlenebilirlik mimarisi üç katmana ayrılabilir:
- Orkestrasyon (Dynatrace)
- CI/CD araç seti (Jenkins / Chef / Puppet / Bamboo, vb.)
- Altyapı katmanı (Kubernetes Kümesi, GCP, Bağımsız sunucu vb.)
Geleneksel bir üretim hattı aşağıdaki aşamalara sahiptir:
- Derlemek (Build)
- Dağıtımı sağlamak (Deploy)
- Sınamak (Test)
- Doğrulamak (Validation)
Şimdi, üretim hattının farklı aşamalarında ortaya çıkan zorlukları keşfedelim ve Dynatrace’ın orkestratör olarak rolünün bu zorlukların üstesinden gelmeye nasıl katkıda bulunabileceğini inceleyelim. Bu blog gönderisinde, üretim hattının ilk aşaması olan “Derleme” aşamasına odaklanacağız.
Derleme Aşaması:
Oluşturma aşaması, en son kodu çekmeyi, derlemeyi ve özellik testleri çalıştırarak uygun işlevselliğini sağlamayı içerir.
Zorlukları hafiflet:
Uygulama geliştirilirken, hata ayıklamayı gerektiren derleme sorunları görebilirsiniz ve bu tür sorunların temel nedenleri tanımlanmadan önce önemli bir gecikme olabilir. Bir çözüm tanımlanıp dağıtıldıktan sonra derleme işlemi yeniden başlatılmalıdır. Yüksek bir yapı hatası oranı, ekibin sorunları teşhis etmek ve düzeltmek için önemli ölçüde zaman ayırdığını gösterir. Bu bekleme ve problem çözme, genel yazılım geliştirme sürecinizi engelleyebilir.
Derleme aşamasında görünürlüğün artırılması, geliştirme döngüsünün başlarında derleme ve entegrasyon hatalarını belirlemeye yardımcı olabilir. Bu proaktif yaklaşım bekleme sürelerini azaltır ve SRE’lerin çabalarını inovasyona yönlendirmesine olanak tanır.
Dynatrace özelliklerinden yararlanın
Enstrümantasyon akışı şu anda aşağıdaki gibi çalışır:
1- Kod taahhütlerinden sonra, iş akışı API’sini kullanarak iş akışını tetiklemek için bir GitHub eylemi kullanılır. Bu iş akışı içinde, JavaScript tarafından desteklenen belirlenmiş bir görev, üretim hattı işinin derleme aşamasını başlatarak yeni bir yapıya başlar.
2- İş üretim hattı çalıştırma sırasında günlükler çıkarılır ve Grail’e itilir. Günlük okuma, OneAgent’ı yükleyerek veya günlükleri Dynatrace’e almak için bir günlük alım sistemi kullanarak kolaylaştırılabilir.
Daha sonra, “look_for_build_errors“ adlı bir iş akışı DQL görevi, derleme aşamasını hatalar için inceleyecektir.
Log analizinin sonucuna dayanarak, iki yoldan biri takip edilir:
A) Yapı hataları tespit edilirse
İş günlükleri hataları ortaya çıkarırsa, görev derhal yapıyı hatalı olarak işaretler ve devam eden işi durdurmak için süreci başlatır. Stop_the_jenkins_job görevi yapıyı durdurmak için CI/CD API’sinden (bu durumda Jenkins) yararlanır. Bu görev ayrıca oluşturulan uyarıya dahil etmek için ek iş meta verilerini de çıkarır.
İşi durdurma ile birlikte, iş akışındaki başka bir görev olan ”send_alert_to_team”, etkinleştirilir, işi başlatmaktan sorumlu ekibe bir Slack mesajı gönderir. Anında uyarı mekanizması, SRE’lerin yapı hataları hakkında derhal bilgilendirilmesini ve böylece yüksek bekleme sürelerini atlatılmasını sağlar.
B) Herhangi bir hata tespit edilmezse
Herhangi bir hata tespit edilmezse, iş akışı işi Dağıtım aşamasına sorunsuz bir şekilde ilerletir. İyi bir uygulama olarak, üretim hattı aşamalarına yönelik görünürlüğü artırmak ve mevcut eğilimler hakkında içgörüler sağlamak için periyodik olarak iş ayrıntılarını alan ve bunları iş olayları olarak alan bir JavaScript görevine sahip bir iş akışı eklemenizi öneririz.
Platform mühendisliği bağlamında sahne orkestrasyonu oluşturun
Platform mühendisliği alanında odak noktası, geliştirme ekipleri üzerindeki bilişsel yükü hafifletmek ve önceden tanımlanmış yollar sunarak verimliliklerini artırmak, esasen geliştirme platformunu bir ürün olarak ele almaktır.
Yapı günlüğü izleme ve günlük sonuçlarına dayalı Dynatrace içinde çeşitli iş akışlarının başlatılmasıyla, otomasyon artık birçok geliştirme ekibi için bir gerçektir. Ayrıca, oluşturma aşamasından elde edilen içgörüler, SRE’lere ve uygulama ekiplerine mevcut üretim hatlarını ve iyileştirme alanlarını optimize etmek için değerli bilgiler sağlar.
Bu arada, Dynatrace’i bir yapı aşaması düzenleyicisi (iş akışları, JavaScript görevleri ve başvurulan pano) olarak kurmak için ihtiyacınız olan tüm kaynakları bu Git deposunda bulacaksınız.