Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save firatoltulu/763f9cce546ba21addbc8069a52697cc to your computer and use it in GitHub Desktop.

Select an option

Save firatoltulu/763f9cce546ba21addbc8069a52697cc to your computer and use it in GitHub Desktop.
Uçtan Uca DevOps Süreçleri
## Uçtan Uca DevOps Süreçleri: Kurumsal Hafıza ve Kültürle Entegrasyon
### 1. Giriş: DevOps ve Kurumsal Hafıza
DevOps, yalnızca bir teknoloji veya metodoloji değil, aynı zamanda organizasyonun **hafızası ve kültürüyle** şekillenen bir dönüşüm sürecidir. Teknik uygulamalar kadar, ekip içi iş akışları, karar mekanizmaları ve kurumsal alışkanlıklar da bu dönüşümü desteklemelidir.
----------
### 2. Koddan Üretime: Uçtan Uca DevOps Süreci
Geliştiricilerin kod yazmasından **canlı ortama deployment** aşamasına kadar olan süreci sistematik bir yapıda ele almak, sürekli entegrasyon ve teslimat (CI/CD) ilkelerini doğrudan destekler. Bizim uyguladığımız yaklaşım aşağıdaki aşamaları içerir:
#### **2.1. Feature Branch Stratejisi**
- Bir geliştirici, `main` branch'ten yeni bir **feature** veya **fix** branch oluşturur.
- Geliştirme ve Kendis testleri tamamlandığında **commit** yapar ve **pull request (PR)** oluşturur.
- Commit mesajları https://www.conventionalcommits.org/en/v1.0.0/ standartına uygun olmak zorundadır. burada bir denetim mekanizması çalışmaktadır
#### **2.2. PR Pipeline: Build, Test ve Code Quality Kontrolleri**
- PR açıldığında GitHub Actions devreye girer ve sırasıyla
- **Build**,
- **Test**,
- **Code Quality** kontrollerini çalıştırır.
- Bütün testler ve kalite kontrolleri başarıyla tamamlandıktan sonra, **CodeRabbit AI** ile otomatik kod incelemesi gerçekleştirilir.
----------
### 3. Conventional Commits ve Sürüm Yönetimi
- PR başlıkları, **Conventional Commits** standardına uygun olarak yazılır.
- Test ortamında herhangi bir başka modülle **ilişkisini bozmamak için**, mevcut **modül versiyonu ile artifact oluşturulur**.
Bu sayede, test sürecinde **bağımsız modül yönetimi** sağlanarak diğer bileşenler etkilenmeden doğrulama yapılabilir.
----------
### 4. Test Ortamına Deployment ve Test Süreci
- Test geliştiricisi, belirlenen test ortamına **GitHub Action** yardımıyla **artifact deploy** eder.
- Test onaylanırsa, PR merge edilir ve **release sürecine hazır hale gelir.**
Bu noktada, test ortamında çalışan **bağımsız artifact'ler**, ana yapıya zarar vermeden sistemin doğruluğunu teyit etmeyi sağlar.
----------
### 5. Otomatik Sürümleme ve Yayına Alma
- **Her gece tetiklenen GitHub Action** ile **patch veya feature versiyonu belirlenir**.
- Yeni bir **NuGet paketi oluşturulur** ve versiyonlar güncellenir.
- Devreye alım öncesi **otomasyon testleri** çalıştırılır.
- Test edilmeyen sürümler deployment pipeline'ına alınmaz ve **sadece onaylanan sürümler yayına alınır**.
----------
### 6. DevOps'un Kültürel Boyutu: Kurumsal Hafıza ve Süreç Entegrasyonu
DevOps'un başarılı olması için sadece teknik doğrular yeterli değildir; **süreçlerin kurumsal hafızaya entegre edilmesi** gerekmektedir.
#### **6.1. Ekipler Arası Koordinasyon**
- Geliştirici, test ekibi ve DevOps ekiplerinin **sürekli iş birliği içinde olması**.
- Kod incelemelerinin ve testlerin **standartlaştırılması**.
#### **6.2. Otomasyon ve Süreç Yönetimi**
- Kurumsal hafızada birikmiş **süreç bilgilerini DevOps pipeline'ına entegre etmek**.
- CI/CD süreçlerini sadece **teknik bir zorunluluk değil, bir organizasyon pratiği olarak benimsemek**.
----------
### 7. Sonuç: DevOps’un Başarısı, Kültürle Güçlenir
DevOps, yalnızca pipeline’ların otomatize edilmesiyle başarıya ulaşmaz. **Kurum içindeki tüm ekiplerin iş yapış şekillerinin ve alışkanlıklarının DevOps ile uyumlu hale gelmesi gerekir.**
Bu yazıda ele aldığımız **uçtan uca DevOps süreci**, yalnızca teknik bir yönetim planı değil, aynı zamanda **kurumsal kültüre entegre olmuş bir metodolojidir**.
Başarılı bir DevOps uygulaması, ekiplerin koordinasyonunu ve organizasyonun hafıza mekanizmalarını destekleyerek **sürekli iyileşme ve inovasyonu** teşvik eder.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment