14 · Sustainable Engineering / Green IT#
"Software is never carbon-neutral; it's just CO₂ that you decided not to measure." — Green Software Foundation
2026'da yasal zorunluluk: AB CSRD, ABD SEC iklim kuralı emisyon raporlatıyor. Cloud kullanımı = Scope ⅔ emisyon.
İçindekiler#
| Dosya | Konu |
|---|---|
Green-Software-Principles.md | GSF 8 prensibi, mühendislik kararlarına nasıl yansır |
Carbon-Aware-Computing.md | "Düşük-karbon saatlerde batch çalıştır" pattern'i |
Measuring-Software-Carbon.md | SCI formula, Cloud Carbon Footprint, Kepler |
Region-Selection.md | Yenilenebilir enerji yoğun region'lar (cloud-spesifik) |
Efficiency-Practices.md | ARM/Graviton, idle cleanup, caching, compression |
Green Software Foundation 8 prensibi#
- Carbon Efficiency — daha az emisyonla aynı işi yap
- Energy Efficiency — daha az watt kullan
- Carbon Awareness — düşük-karbon zaman/yerde çalıştır
- Hardware Efficiency — eski hardware'i daha verimli kullan
- Measurement — ölçmediğini iyileştiremezsin
- Climate Commitments — çekiştirici şirket commitments'ı destekle
- Networking — data movement = enerji; minimize et
- Demand Shaping — uygulamayı yüke karşı esnek tasarla
SCI (Software Carbon Intensity) formula#
SCI = ((E × I) + M) / R
E = Energy (kWh) uygulamanın tükettiği elektrik
I = Carbon Intensity (gCO₂/kWh) elektriğin karbon yoğunluğu (region+saat)
M = Embodied carbon (gCO₂) hardware'in üretimden gelen karbonu
R = functional unit 1000 request, 1 user, 1 transaction...
→ Birim: gCO₂eq / functional unit
→ Hedef: SCI'ı minimize et (artırmadan, sadece azaltabilirsin)
Pratik uygulama#
Region seçimi (örnek — emisyon yoğunluğuna göre)#
| Cloud | Düşük karbon region'ları (~ 2026) |
|---|---|
| AWS | eu-north-1 (Stockholm), eu-west-3 (Paris), us-west-2 (Oregon) |
| Azure | Sweden Central, North Europe, France Central |
| GCP | europe-north1 (Finland), europe-west1 (Belgium), us-west1 (Oregon) |
⚠️ Emisyon yoğunluğu anlık değişir (rüzgar/güneş üretimi). Cloud sağlayıcının "Customer Carbon Footprint Tool" çıktısı ile region'ları doğrula.
Carbon-aware scheduling örneği#
# CI'da idle batch job — carbon-aware, low-emission saatte çalıştır
jobs:
carbon-aware-rebuild:
runs-on: ubuntu-latest
if: ${{ steps.carbon.outputs.intensity == 'low' }}
steps:
- id: carbon
uses: green-software-foundation/carbon-aware-action@v1
with:
location: 'eu-north-1'
window: '6h'
- run: ./expensive-rebuild.sh
Quick wins#
- ✅ ARM/Graviton instance'lara geç — per-watt 2-4x daha verimli
- ✅ Spot instance — idle kapasiteyi kullan, yeni hardware üretmez
- ✅ Idle resource cleanup — kullanılmayan watt kapatılan watt
- ✅ Compression — daha az network bytes = daha az enerji
- ✅ CDN — origin'den uzaklaştırma = path tasarrufu
- ✅ Dev cluster'larını gece kapat (cron scaler)
Anti-pattern'ler#
- ❌ "Carbon offset alıyoruz" → measurement yok, sadece pazarlama
- ❌ Sürekli
vCPU=4allocate ama %5 kullanım - ❌ "Always-on" dev env'leri haftasonu açık
- ❌ Region seçimi sadece latency'e göre (karbon ihmal edilir)
- ❌ Logging her şeyi "ihtiyacımız olur belki" diye saklamak