DevSecOps’ta Yapay Zeka: Yardımcı Pilottan Otomatik Pilota Geçiş


Yazan: Stephen Chin, Geliştirici İlişkileri Başkan Yardımcısı, JFrog

Otonom sürüş ve yazılım (SW) geliştirmenin ortak noktası nedir? İlk bakışta pek bir şey yok. Ancak konunun altına daha yakından baktığınızda, özellikle altta yatan hedeflere doğru evrimsel yolda bazı benzerlikler görmeye başlayacaksınız. Geliştirme ekipleri kendi başlarına “yolcu” olmayacak ancak SW’nin tasarlanması, oluşturulması, güvenliğinin sağlanması, dağıtılması ve işletilmesinde yer alan kişilerin geleneksel rolleri ve sorumlulukları değişmeye başlayacak. Noktaları birleştirmek için önce otonom sürüş kavramını derinlemesine inceleyerek başlayalım ve ardından bunu SW gelişimiyle ilişkilendirelim.

Otonom sürüş kavramı yıllardır ortalıkta dolaşıyor ve bir zamanlar fütüristik bir kavram gibi görünen şey bugünün gerçeği. Özünde, otonom araçlar (AV’ler), günümüzde kazaların yaklaşık %90’ını oluşturan trafikteki insan hatalarını en aza indirmeyi amaçlamaktadır. AV’lerin temel dayanağı, ortalama bir insan sürücüden daha iyi performans göstermeleri gerektiğidir. Daha da önemlisi, otonom sürüş teknolojisi son derece değerli bir kaynağı, yani zamanı serbest bırakma potansiyeline sahip. Bu, insanların trafiğe bağlı kalmak yerine odaklarını daha tatmin edici eğlencelere ayırmalarını sağlar.

Otonom sürüşü mümkün kılan iki kritik unsur Edge ve AI’dır: Araçların, IoT sensörlerinin verilerini aracın kendi içinde işlemesini sağlamak ve bunu yaparak gerçek zamanlı operasyonlara olanak sağlamak. Bu yetenek, kritik görev uygulamaları için çok önemlidir. Makineyi olası her sürüş senaryosunu ele alacak şekilde manuel olarak programlamaya çalışmak pratik olmayan bir çaba haline gelir. Bunun yerine aracın dinamik olarak çevresinden öğrenmesi gerekiyor. Bir AV’nin zekası, çeşitli IoT sensör verilerinin kullanılabilirliğine bağlıdır ve fiziksel dünyanın dijital bir temsilinin (ikizi) oluşturulmasına olanak tanır. Veriler ne kadar çeşitli olursa, o kadar karmaşık yapay zeka sistemleri devreye alınabilir.

Otonom sürüşün evrim yolunu gözlemlerken, her aşamada insan katılımının kademeli olarak azaldığını fark edebiliriz. AV çerçevesi, 0’dan (tamamen manuel) 5’e (tamamen otonom) kadar 6 otomasyon seviyesi içerir.

  • Otomasyon yok: Sürücü tüm sürüş görevlerinin tam kontrolünü elinde tutuyor.
  • Sürücü yardımı: Araç, sürücünün ayağını pedaldan çekmesine olanak tanıyan tek bir otomatik sistem içerir.
  • Kısmi otomasyon: Araç, direksiyonu ve hızlanmayı yönetebilecek hale gelir ve sürücünün ellerini direksiyondan çekmesine olanak tanır.
  • Koşullu otomasyon: Araç, sürüş görevlerinin çoğunu kontrol edebilir ve sürücünün denetimi sürdürürken gözlerini yoldan ayırmasına olanak tanır.
  • Yüksek otomasyon: Araç, tüm sürüş görevlerini belirli koşullar altında gerçekleştirerek sürücüye tetikte kalarak aklını yoldan ayırma fırsatı verir.
  • Tam otomasyon: Araç, her koşulda tüm sürüş görevlerini bağımsız olarak yerine getirebilir. Bu, sürücüyü bir yolcuya dönüştürerek zihnini tüm sürüş sorumluluklarından tamamen kurtarır.

Yazılım Geliştirmede yapay zekanın faydaları büyük ölçüde otonom sürüşte görülen faydaları yansıtıyor:

İnsan hatalarını en aza indiriyor ve daha fazla yaratıcılık yoğunluklu işler için zaman kazandırıyoruz. İnsan kaynakları genellikle Yazılım geliştirmenin en maliyetli yönü olduğundan, kuruluşlar daha az kaynakla daha fazlasını yapmalarını sağlayacak yapay zeka tabanlı sistemleri benimsemeye teşvik edilir.

Yazılım geliştirme evrim yollarının daha yakından incelenmesi, otonom sürüşteki ilerlemelerle çarpıcı benzerlikler ortaya koyuyor: Evrimin her aşamasında insan katılımının kademeli olarak azaltılması:

  • 2000’li yılların başında, SW Development’ın otomasyonu çok azdı veya hiç yoktu. SW Geliştirme Yaşam Döngüsünün (SDLC) her aşamasında insan kontrolü gerekliydi ve bu da süreci büyük ölçüde manuel hale getiriyordu. Sorunlar genellikle dahili ekipler yerine müşteriler tarafından belirlendi.
  • 2010’ların ortalarına doğru hızla ilerleyin, Konteynerizasyon, Bulut Bilişim ve DevOps’un yükselişine tanık olduk ve bu da SDLC genelinde otomasyonun ve verimliliğin artmasına yol açtı. Rutin görevler ve prosedür kararları, test, kod incelemesi ve CI/CD gibi alanlarda önceden tanımlanmış (sabit kodlanmış) politikalara ve “eğer-o halde” kurallarına göre otomatikleştirildi. Bu, Ar-Ge ekiplerinin artan üretkenlikle işlerinin yaratıcı yönlerine odaklanmasına olanak tanıyarak “yönlendirme ve hızlanma”yı mümkün kıldı. Geliştirme döngüleri, Dev ve Ops arasında köprü kurarak çevik ilkelere dayalı olarak kısaltıldı. Sorun yönetimi ve çözümü, ekipler arasında daha kusursuz bir koordinasyonla reaktif olmaktan uyarlanabilir hale gelmeye başladı. Sorunların çoğu, müşteriler farkına bile varmadan tespit edilip giderilebiliyordu.
  • Bugün,Üretken yapay zeka, yazılım geliştirmeyi yeni verimlilik ve yenilik düzeylerine taşıyor. Otomasyon, rutin görevlerin çok ötesine uzanıyor; GenAI tabanlı çözümler, insandan makineye kusursuz bir diyalog yoluyla yeni içerik oluşturulmasını sağlıyor. Yapay zeka, SDLC boyunca önerilerde bulunarak, sorunları açıklayarak, kod üreterek, süreçleri izleyerek, depoları tarayarak, tahminlerde bulunarak ve hızlı karar almayı artırarak tükenmez bir yardımcı (Yardımcı Pilot) olarak hareket edebildiğinden, verimlilik kazanımları henüz yeni ortaya çıkmaya başlıyor. Bu, genel kod oluşturma işlemini daha da hızlandıracak ve artıracak, daha fazla SW derlemesine, daha fazla SW’nin güvence altına alınmasına ve çalışma zamanında daha sık güncelleme yapılmasına yol açacaktır. Modern yazılım geliştirme denklemine gömülü yapay zeka modellerini (MLOps) ekledikçe yukarıda bahsedilen alanlar daha da genişliyor. “Sıvı Yazılım” kavramı, küçük artımlı iyileştirmelerin (ikili dosyalara dayalı güncellemeler) minimum hizmet kesintisi ile otomatik olarak geliştirme aşamasından çalışma zamanına aktığı “Sıvı Yazılım” kavramı yavaş yavaş gerçeğe dönüşüyor.
  • Uygulama güvenliğinde, Yapay zeka, sorunları öngörücü bir şekilde keşfetme ve düzeltme süresini önemli ölçüde kısaltabilir ve kötü amaçlı yazılım paketlerinin ilk etapta bir kuruluşa girmesini önleyebilir. Bu, yapay zeka tabanlı önem derecesi ve bağlamsal analiz kullanılarak otomatik güvenlik açığı taraması ve tespiti ile başlar ve otomatik düzeltmeye kadar uzanır. Yukarıda belirtilen gelişmelere rağmen, yapay zeka tabanlı çözümler daha yüksek derecede güven ve güvenilirlik gösterene kadar insan müdahalesi ve onayı hala gereklidir.
  • Son yıllarda, Yardımcı Pilottan (Yapay Zeka asistanı) Otomatik Pilota (Yapay Zeka karar verici) geçiş yaptığımız tam otomasyon paradigmasına doğru geçiş yapmaya başladık. Makineler, doğal dilli bir kullanıcı arayüzü (örn. İngilizce) aracılığıyla son derece karmaşık sorunları çözmeye yönlendirilebilir; bu, programcının diyaloğu amaçlanan duruma doğru yönlendirmesi için yeni türde beceriler gerektirir. Temel olarak yapay zeka sistemi, söz konusu süreçlerde yer alan ortalama bir insan geliştiriciden veya diğer kişilerden daha iyi performans göstermelidir. Yapay zeka, karar verme süreçlerini daha da güçlendirip otomatikleştirerek kuruluşların herhangi bir sorunu çözmek için mümkün olan en iyi (veri odaklı) yaklaşımı ve araçları seçmesine olanak tanıyacak. Günümüzde otonom sürüşte yaşanan zorluklara benzer şekilde, geniş kapsamlı bağlamsal anlayış ve etik karar almayı gerektirecek şekilde yapay zeka sistemlerine güven en üst düzeyde olacak. Kendi kendine öğrenme ve kendi kendini iyileştirme yetenekleri, hizmetin çalışma süresini korurken sorunların tespit edilmesi, analiz edilmesi, izole edilmesi ve yama uygulanmasında önemli hale gelecektir. Anlamı: yazılım, bir güncellemeyi kendisi yeniden yazabilecek ve yeni girdilerle başa çıkmak için yeni işlevler ekleyebilecek. AV’lere benzer şekilde yapay zeka sisteminin de operasyonel ortamından öğrenmesi ve buna göre uyum sağlaması gerekiyor.

Sonuç olarak, otonom sürüş ile yazılım geliştirme arasındaki paralellikler hemen belli olmasa da, her iki alan da operasyonlarını geliştirmek ve bireylerin daha tatmin edici uğraşlara odaklanması için boş zaman yaratmak amacıyla yapay zekanın gücünden yararlanmak gibi ortak bir hedefi paylaşıyor. Yazılım geliştirme bağlamında yapay zeka, yeni özelliklerin ve verilerin oluşturulmasını hızlandırmaya ve iyileştirmeye devam edecek, çeşitli Ar-Ge personelinin kullanıcı deneyimini yükseltecek ve güvenilir bir danışmandan yüksek karar alma özerkliğine doğru kademeli olarak gelişecektir. Yapay zeka tabanlı Copilot’lar, Akıllı Kodlama ve Güvenlik’ten başlayarak tüm DevOps yığınını kapsayacak şekilde genişleyerek SDLC genelinde yavaş yavaş daha yaygın hale gelmeye başlayacak. Sürdürülebilir sonuçlar sağlamak için işletmelerin sorumlu ve güvenli yapay zeka ilkelerine ve uygulamalarına bağlı kalması gerekir. Buna, IP’lerinin korunması ve yapay zeka tarafından oluşturulan Yazılımlarda potansiyel güvenlik ve lisans uyumluluğu sorunlarının önlenmesi gibi alanlar da dahildir. Yapay zeka sistemlerinin ilerici özerkliğini benimsemek, mevcut altyapılar ve düzenleyici ortamlarla uyumluluğa izin verecek ve bunu sağlayacaktır.

Yapay zeka teknolojileri ilerlemeye devam ettikçe yazılım geliştirmede daha derin entegrasyon ve yenilikleri öngörebiliriz. Yapay zekanın endüstrileri dönüştürmeye devam ettiği heyecan verici zamanlarda yaşıyoruz. Yazılım geliştirmenin geleceği ümit vericidir ve makinelere emanet edebileceğimiz geliştirme sorumluluğunun derecesi yalnızca hayal gücümüzle sınırlı olabilir.

yazar hakkında

DevSecOps'ta Yapay Zeka: Yardımcı Pilottan Otomatik Pilota GeçişStephen Chin, JFrog’da Geliştirici İlişkileri Başkan Yardımcısıdır. Stephen’a şirketimizin web sitesinden ulaşılabilir: https://jfrog.com/



Source link