Sürdürülebilirliğe yazılım dokunuşu: Yeşil yazılım mühendisliği


Dijital dönüşüm, geleneksel anlamda iş akışlarının karbon ayak izlerini en aza indirmeye ve işletmeleri karbon nötr hale getirmeye yardımcı olsa da teknoloji sandığımız kadar masum olmayabilir. İş akışları bulut platformlara taşındıkça, çevre dostu yazılımlar da tartışmaya açılıyor. Bu yazımızda yeni bir harekete dönüşen “yeşil yazılım mühendisliği” kavramına odaklanacağız.

Sürdürülebilirlik, geleneksel iş akışlarının dijitale taşınması, iş uygulamalarının bulut platformlarda çalışması ve dijital dönüşümün her endüstride hızlanmasının arkasındaki temel motivasyonlardan biri olarak görülüyor. İşletmeler verimsiz iş süreçlerinden kurtularak daha sürdürülebilir akışlar yaratıyor, tedarik zinciri, üretim ve dağıtım gibi operasyonlarını gözden geçirerek karbon salımlarını ve çevresel etkilerini en aza indirmeye çalışırken teknolojiye başvuruyor. Avrupa Birliği, dijital dönüşümün yeşil enerji dönüşümünü sağlayacak bir çözüm olduğunu vurguluyor ve buna “ikiz dönüşüm” adını veriyor. Peki teknoloji çözümlerini kullanmak ve operasyonlarını devamlı gözlemleyerek çevresel etkileri en aza indirmeyi hedeflemek, teknolojinin sebep olduğu çevresel etkileri ortadan kaldırıyor mu?

İş süreçleri bulut platformlarda çalışıyor, fakat bulut platformlar nasıl çalışıyor ve ne gibi etkilere sebep oluyor? Veri merkezi yatırımlarının 2026’ya kadar, tedarik zincirinin talebiyle her yıl bileşik olarak %10 büyümesi bekleniyor. Veri merkezlerinin tükettiği enerjinin 2025’e kadar dünya çapındaki toplam karbon emisyonlarının %3,2’sini oluşturacağı tahmin ediliyor. Ayrıca 2040’a kadar dijital verilerin emisyonların %14’ünü oluşturacağı belirtiliyor. Durum böyleyken, yazılım ve BT sektörlerinde çalışan bazı isimler, “Teknoloji kullanımını nasıl sürdürülebilir hale getirebiliriz?” sorusuyla yola çıktı. Bu endişelerle yeşil bulut ve yeşil yazılım mühendisliği gibi kavramların her geçen gün daha fazla konuşulduğu bir dünyaya adım atıyoruz.

Yeşil yazılım mühendisliği nedir?

Yeşil yazılım mühendisliği, iklim bilimi, yazılım uygulamaları ve mimarisi, donanım ve veri merkezi tasarımı disiplinlerinin buluştuğu, yazılım geliştirme ve işletme süreçlerini çevre dostu ve sürdürülebilir hale getirmeyi amaçlayan bir disiplindir.

Küresel çapta veri merkezlerinin her yıl 200 terawatt enerji tükettiği biliniyor. Fakat tüm göstergeler, küresel enerji talebinin kabaca %1’ine karşılık gelen bu oranın sabit kalmayacağını gösteriyor. Nesneler giderek daha akıllı hale geldikçe ve teknoloji hayatlarımızın daha büyük bir parçasına dönüştükçe, bir paradigma değişikliği dışında enerji verimliliği yeniliklerinin kendiliğinden oluşması pek olası görünmüyor.

Yeşil yazılım mühendisliği, benimsediği prensipler, amaçlar ve felsefeyle, bu değişimi bugünden tartışmaya açmayı hedefliyor. Bu amaçla kurulan Green Software Foundation’ın 32 kurumsal, yaklaşık 700 bireysel üyesi bulunuyor.

Yeşil yazılım mühendisliğinin amaçları

Yeşil yazılım mühendisliğinin birincil amacı, sürdürülebilirliği yazılımın bir temel meselesi haline getirmek olarak öne çıkıyor. Mühendisliğin çevre dostu versiyonunun savunucuları, teknik toplantılarda sürdürülebilirliği bir konuya dönüştürmeyi hedefliyor. Sonraki aşamalarda ise bu perspektifle geliştirilmiş ya da çevresel etki bakımından avantajlı kodlama dil ve mimarilerinin kitleselleşmesi hedefleniyor.

Microsoft'ta Green Cloud Advocacy Lead olarak görev alan Asim Hussain tarafından hayata geçirilen principles.green, bir yeşil yazılım mühendisi olmanın ne anlama geldiğine dair ortak bir anlayış oluşturmak amacıyla, sekiz prensip listeliyor. Bu prensipler, uygulama alanı, endüstri, kuruluş boyutu ve türü, bulut sağlayıcısı ya da programlama dili ve çerçevesi gibi faktörlerden bağımsız olarak, genel anlamıyla yeşil yazılım mühendisliğinin ana hatlarını çiziyor.

Fieldz olarak bu 8 prensibi sizler için inceledik:

1. Karbon verimli uygulamalar geliştirmek

Karbon verimli olmak, birim iş başına salınan karbon miktarını en aza indirmek anlamına geliyor. Küresel ısınmayı tamamen durdurmak için karbon salımından kurtulmak ve net sıfır emisyon elde etmek gerekiyor. Net sıfır, salınan 1 gram karbona karşılık başka 1 gram karbonu geri almayı, karbon salımını bu şekilde dengelemeyi tanımlıyor.

2. Enerji verimli uygulamalar geliştirmek

Bu başlıkta, elektriğin hâlâ çoğunlukla fosil yakıtlardan üretildiği ve karbon emisyonlarının yaklaşık yarısından sorumlu olduğu belirtiliyor. Akıllı telefonlardaki uygulamalardan veri merkezlerindeki makine öğrenmesi modellerine kadar tüm yazılımlar, elektriğe ihtiyaç duyuyor. Yazılımları enerji verimli hale getirmek, elektrik tüketimini ve dolayısıyla karbon emisyonlarını azaltmak anlamına geliyor. Yeşil yazılımcılık prensipleriyle üretilen yazılımların, tükettiği elektriğin sorumluluğunu alması gerekiyor.

3. En düşük karbon yoğunluğunda elektrik tüketmek

Elektriğin üretildiği kaynak, karbon yoğunluğunu belirliyor. Örneğin bir termik santralde üretilen elektrikle rüzgar enerjisi kullanılarak üretilen elektrik, karbon yoğunluğu açısından farklılaşıyor. Bu noktada yeşil yazılımcılık, iş yüklerini yenilenebilir enerji arzının daha fazla olduğu bölgelere kaydırmayı öneriyor. Araştırmalar, bu eylemlerin yenilenebilir kaynakların sayısına bağlı olarak %45 ila %99 arasında bir karbon azaltımını mümkün kılabileceğini gösteriyor.

4. Donanım açısından verimli uygulamalar geliştirmek

Aslında her bilgisayar ya da teknoloji ekipmanı, çalışırken ürettiğinin yanı sıra bir de kendi içinde karbon kirliliği barındırıyor. Gömülü karbon olarak adlandırılan bu durum, donanımın en etkin biçimde kullanılmasıyla azaltılabiliyor. Bir diğer deyişle elektronik bir atık üretmeden önce onun tam anlamıyla miadını doldurduğundan emin olmak gerekiyor.

5. Donanımda enerji verimliliğini en üst düzeye çıkarmak

Enerji orantılılığı (energy proportionality), bir bilgisayar sisteminde tüketilen güçle faydalı işin yapılma hızı arasındaki ilişkinin ölçüsü olarak tanımlanıyor. Bir bilgisayarı ne kadar çok kullanırsanız, elektriği faydalı işlemlere dönüştürmek de o kadar verimli hale geliyor. Uzak bilgisayarlarda çalışan yazılımları mümkün olduğunca az sayıda sunucuda, en yüksek kullanım oranıyla çalıştırmak, enerji verimliliğini en üst seviyeye çıkarıyor.

6. Ağda kat edilmesi gereken veri miktarını ve mesafeyi azaltmak

İnternet üzerinden veri gönderdiğinizde, bu veriler ağdaki birçok cihaz üzerinden geçiyor ve tüm bu cihazlar elektrik tüketiyor. İnternet üzerinde gönderdiğiniz ya da aldığınız herhangi bir veri karbon yayıyor. Verinin kat ettiği mesafeyi, kullandığı cihaz sayısını ve gönderilip alınan veri miktarını azaltmak, karbon emisyonunu azaltmaya katkıda bulunuyor.

7. Karbon farkındalığı olan uygulamalar geliştirmek

Örneğin video konferans yazılımları, her zaman mümkün olan en yüksek kalitede akış yapmak yerine, sese öncelik vermek için video kalitesini düşürerek talebi şekillendiriyor. Bu durum “talep şekillendirme” olarak tabir ediliyor. Öte yandan, geliştirilen yazılım ve ürünlerde “eko modu” seçeneği koymak, uygulamalara aynı görevi gerçekleştirmek için daha az kaynak tüketme şansı veriyor.

8. Genel karbon verimliliğini artıran optimizasyonlara odaklanmak

Sürdürülebilir ve yeşil bir uygulama geliştirmek için yapılacaklar bir maddeyle sınırlı kalmıyor. Bir yazılımı karbon verimli kılmak için, kullanıcı deneyiminden veri merkezi tasarımına birçok optimizasyon kullanılabiliyor. Bunu yaparken, en önemli getiriyi elde edebileceğiniz alana odaklanmanız gerekiyor. Örneğin veritabanı sorguları 10 kat daha fazla karbon salımına sebep oluyorsa, önceliği buraya vermek gerekiyor.

Yeşil yazılım mühendisliği, dijitalleşmenin bu kadar yoğun yaşandığı bir çağın devamında ihtiyaç duyacağımız bir gerçeklik olarak karşımıza çıkıyor. Bilinirliği her geçen gün artan bu trend, Microsoft, Accenture, GitHub, NTT DATA, Goldman Sachs, Linux Vakfı, Yeşil Web Vakfı gibi kuruluşlardan isimler tarafından destekleniyor.

Yeşil yazılımı tercih ederek “yeşiller” arasına katılmak isteyenler, daha çok kaynağa ulaşmak ve topluluğun parçası olmak için Principles.green adresini ziyaret edebilir. Ayrıca yeşil yazılım alanında açık kaynak projelere yer verilen, bu konu üzerine çalışma grupları olan Green Software Foundation, yazılımda yeşil yaklaşımı benimseyen topluluğunu her geçen gün genişletiyor.

PAYLAŞ:

Günümüzde başarılı olmak için neden dijital inovasyon önceliklendirilmeli?

Tedarik zinciri yönetimlerini ileri taşıyacak 4 teknoloji