Info World: Microsoft Fabric ile Uygulamalar Geliştirmek: Rayfin
Açık kaynaklı Rayfin SDK, geliştiricilerin ve kodlama yapan yapay zeka temsilcilerinin (coding agents), Microsoft Fabric içinde çalışan, katı kurallarla tanımlanmış ve veri odaklı uygulamalar oluşturmasına olanak tanır; böylece yazılımcılar ile yazılımcı olmayanlar arasındaki boşluğu doldurur.
Belirli bir ihtiyacı karşılamak için "vibe coding" (sezgisel/doğaçlama kodlama) yöntemini kullanmak, "low-code" (az kodlu) veya "no-code" (kodsuz) geliştirme araçlarını kullanmakla benzer sorunları beraberinde getirir. Bu şaşırtıcı değildir; zira belirli bir sorunu çözmek amacıyla hızlıca bir şeyler ortaya koymak, yazılım mühendisliğinin gerektirdiği disiplin seviyesinden yoksundur. Bu durum, mimari kılavuzlara ve politikalara uyulmamasından kaynaklanan verimsizliklere yol açar.

Yakın zamanda, HTML formatındaki içeriklerden bir PDF arşivi oluşturmak için yapay zeka tarafından üretilen bir kodu inceledim. Program, yaygın kütüphaneleri alışılmadık şekillerde kullanıyordu; örneğin, tüm işlemler tek bir kütüphane ile yapılabilecekken, gereksiz yere üç veya daha fazla kütüphaneyi birleştiriyordu. Üstelik programın işleyişi yer yer anlaşılması güç bir haldeydi. Sonuç olarak, bu kodun sürdürülebilir olması imkansızdı. Kabul edilebilir tek yanı, belirli bir sorunu çözmek için bir saat içinde hızlıca bir araya getirilmiş olması ve yerel PDF arşivini oluşturduktan sonra programın kolayca çöpe atılabilmesiydi.

Peki ya bu özensiz, yapay zeka üretimi kod tüm bir departman tarafından ihtiyaç duyulan bir hale gelseydi ya da kritik bir iş sürecinin parçası olsaydı ne olurdu? Risk şudur: Zaman içinde bir şeyler değiştiğinde, bu kritik iş süreci aksayacak ve kodu düzeltmek için pratik bir yol bulunamayacaktır. Üstelik kodu yazan kişi görevinden ayrılmışsa ve geride, kodu oluştururken kullanılan ilk komutları (prompt'ları) hatırlayan veya anlayan kimse kalmamışsa, risk daha da büyür.
Yapay zeka destekli kodlama araçlarını ürünlere ve platformlara dahil etmek risklidir; ancak bu araçlar göz ardı edilemeyecek kadar faydalıdır. "Low-code" araçları gibi, yapay zeka araçları da kodlama imkanını iş problemlerini en iyi bilen kişilerin eline verir ve süreçleri kendi belirledikleri zaman çizelgesine göre otomatikleştirmelerine yardımcı olur.
İhtiyaç duyulan şey, kodlama temsilcilerinin kullandığı altyapıyı geliştirmektir. Bu, "spesifikasyon odaklı geliştirme" (specification-driven development) kavramlarından yararlanarak, üretilen kodun içine koruyucu sınırlar (guardrails) ve standartlar yerleştirmeyi; böylece sürdürülebilir kodlar oluşturmayı hedefler.
Rayfin Fabric Uygulamaları ile Tanışın
Microsoft Fabric, tüm operasyonel verilerinizin bulunduğu bir merkez olmayı hedeflerken, bu verileri büyük ölçekte sorgulamanız ve keşfetmeniz için bir ortam sunar. Büyük veri ve veri ambarı kavramlarını birleştiren bu platform; depolama için açık formatlar kullanır, mevcut uygulamalardaki verileri veri gölü ambarlarına (data lakehouses) taşımak için veri yansıtma (data mirroring) araçlarından yararlanır ve ayrıca akış halindeki verileri de destekler.
Microsoft Fabric, verileriniz üzerinde çalışacak kendi aracılarınızı (agent) platform içinde oluşturmanıza ve dağıtmanıza olanak tanır. Ancak çoğu durumda, verilerin belirli alt kümelerini keşfetmek ve kullanmak için daha odaklanmış bir yaklaşıma ihtiyaç duyabilirsiniz. Platforma yakın zamanda eklenen "Fabric Uygulamaları" (Fabric Apps), iş analistlerinin Microsoft Fabric'teki verileri kullanarak kritik iş içgörüleri sağlayan uygulamalar geliştirmesine imkân tanır.
Fabric Uygulamaları; hem insanlar (komut satırı arayüzü - CLI aracılığıyla) hem de yapay zeka aracılarıyla çalışmak üzere tasarlanmış, TypeScript tabanlı yeni bir yazılım geliştirme kiti (SDK) olan Rayfin üzerine inşa edilmiştir. Replit ile yapılan iş birliği sayesinde Microsoft Fabric kullanıcıları, Replit ortamında Rayfin ve yapay zeka desteğini kullanarak uygulamalar geliştirebilir ve bunları doğrudan Microsoft Fabric üzerinde yayına alabilirler. Replit desteği burada daha çok iş odaklı kullanıcılar için bir araç olarak görülebilir; yazılımcılar ise geleneksel geliştirme süreçleriyle yapay zeka destekli süreçleri birleştirmelerine olanak tanıyan GitHub Copilot CLI ve Visual Studio Code gibi araçları tercih edebilirler.
Buradaki temel amaç, iş kullanıcılarının Fabric içinde veri odaklı uygulamalar oluşturmaları için gereken araçları sağlamak ve böylece uygulama geliştirmeyi, veri keşfi sürecinin doğal bir parçası haline getirmektir. Rayfin uygulamaları, ham verilere bağlanabileceği gibi, Power BI gibi araçlarla oluşturulmuş anlamsal modellerden (semantic models) de beslenebilir; bu süreçte SQL veya KQL sorguları yerine analitik işlemler için DAX dili kullanılır.
Kod yazmayı bilen ve bilmeyenler için veri uygulaması geliştirme araçları
Bu yaklaşımın temelinde, aracı tabanlı (agent-based) araçlar tarafından kullanılabilecek veri modellerine dair tanımlamaların oluşturulmasını sağlayan açık kaynaklı Rayfin SDK yer alır. SDK, kullanıcılar modeller üzerinde çalışmaya başlamadan önce, belirli modellere erişimi ve gerekli izinleri yapılandırmanıza olanak tanır. Rayfin, bu modelleri GraphQL uç noktalarına dönüştürür; Microsoft Fabric'te depolanan veriler ile bu uç noktalar arasında TypeScript istemcileri konumlanır. API'ler otomatik olarak tip güvenli (type-safe) olduğundan, bu yapı ekstra bir koruma katmanı sağlar.

Rayfin destekli bir Fabric uygulaması oluşturmak, Rayfin kullanarak bir veri yapısı tanımlamakla başlar. Bu süreçte, uygulamanızda kullanmak istediğiniz verilere türler atayan "dekoratörler" (decorators) kullanılır ve her tablo bir sınıf (class) olarak tanımlanır. Örneğin; çalışan isimleri ve iletişim bilgilerini içeren bir tablo, bir "çalışan" sınıfını barındıran bir varlık (entity) olarak sunulabilir. Burada kullanılan dekoratörler; kimlik numarası, isim ve adres gibi veri alanlarını, `@microsoft/rayfin-core` tanımlamalarında yer alan yapılar aracılığıyla oluşturur. Ayrıca, veriye yönelik erişim kontrollerini tanımlayarak, verinin yalnızca doğru grup ayrıcalıklarına sahip ve kimliği doğrulanmış kullanıcılar tarafından kullanılmasını sağlayabilirsiniz.

Bu aşama, Rayfin tabanlı uygulama geliştirme sürecinin en kritik kısmıdır; çünkü kullanıcı odaklı geliştirme çalışmaları için gerekli güvenlik sınırlarını (guardrails) burada belirlersiniz. Tek bir temel uygulama iskeletiyle sınırlı değilsiniz; başlangıç yapmanıza yardımcı olacak çeşitli şablonlar mevcuttur. Bunlar arasında, eksiksiz bir Rayfin uygulamasının yapısını gösteren hazır bir "yapılacaklar" (to-do) uygulamasından, Microsoft Fabric'in kimlik doğrulama çerçevesini kullanarak verilere erişimi denetleyen uygulamalara kadar pek çok seçenek bulunur.
Rayfin'i komut satırından kullanma
Microsoft, Rayfin uygulama iskeletini kurmak için bir süreç sunar. Bu süreç; bir uygulama şablonunun ayarlanması ve ardından Entra ID aracılığıyla Microsoft Fabric'e giriş yapılmasıyla başlar. Bu adımları tamamladıktan sonra, Rayfin'in geliştirme döngüsünü çalıştırarak bir çalışma zamanı (runtime) oluşturabilir, Microsoft Fabric arka ucunu yapılandırabilir ve temel uygulama iskeletini dağıtabilirsiniz. Tüm bunları manuel olarak yapmanıza gerek yoktur; Microsoft’un belgeleri, kodlama temsilcileriniz (coding agents) için doğrudan kullanıma hazır bir komut istemi (prompt) içerir.

Artık veri varlıklarınızı (data entities) tanımlayabilirsiniz. Bunlar, uygulama çatısı (scaffolding) içinde belirli bir dizine yerleştirilir ve her sınıf için ayrı TypeScript tanımları oluşturulur. Tüm tanımları tek bir dosyada toplamak mümkün olsa da, her varlık için ayrı dosyalar kullanmak uygulamanın sürdürülebilirliğini kolaylaştırdığı için daha mantıklıdır. Kullanmayı planladığınız varlıkları ekledikten sonra, uygulama çatısını yeniden oluşturup (rebuild) sistemi tekrar dağıtarak (redeploy) test aşamasına geçebilirsiniz.
Bu yöntem, arka uç (back end) ile ön ucu (front end) birbirinden ayırmanıza olanak tanır. Böylece arka uç hizmetleri ve varlık tanımları, Microsoft Fabric’in kimlik doğrulama ve güvenlik çerçevesi kullanılarak Microsoft Fabric üzerinde çalışırken; uygulama kodunuz geliştirme donanımınızda (ve nihayetinde ayrı sunucularda veya yerel bir uygulamanın parçası olarak) çalışır. "Rayfin fonksiyonları" olarak adlandırılan TypeScript uygulamalarını da burada geliştirirsiniz. Bu fonksiyonlar, tanımlanmış varlıklara erişip bunları işlerken, Microsoft Fabric’te halihazırda depolanmış verilerle çalışmak üzere önceden tanımlanmış, türü belirlenmiş (typed) bağlayıcılardan (connectors) yararlanır. Rayfin fonksiyonları herhangi bir HTTPS API’sini çağırabilir; bu da Microsoft Fabric verilerini, diğer iş uygulamalarından veya hizmetlerinden gelen bilgilerle birleştirmenize olanak tanır. Ayrıca, herhangi bir Fabric uygulamasına ait iş mantığını (business logic) da yine bu fonksiyonların içinde tanımlarsınız.
Uygulamaların makineler tarafından kodlanacak ve insanlar tarafından yönetilecek şekilde yapılandırılması
Rayfin SDK ile geliştirme yapmak; YAML yapılandırmaları ve TypeScript kodlarından oluşan, öngörülebilir bir uygulama yapısı ortaya çıkarır. Bu kod, yerel ortamda bir Microsoft Fabric arka ucu üzerinde test edilebilir. Dağıtıma ve paylaşıma hazır hale geldiğinde ise, hem Rayfin işlev kodunu hem de ön uç öğelerini barındıran Microsoft Fabric platformuna yüklenebilir. Uygulamaların çalışabilmesi için Microsoft Fabric kapasitesine ihtiyaç duyulur; uygulamalara Microsoft Fabric portalı içinden erişilebildiği gibi, kullanıcılar tarayıcıları aracılığıyla yayınlanmış uç noktalar üzerinden de bu uygulamalara ulaşabilirler.

Rayfin, hem insanların hem de yapay zeka aracılarının (agent) kullanımını destekleyen yeni nesil SDK ve geliştirme araçlarının ilk örneklerinden biridir. İnsanların okuyabileceği Rayfin belgeleri, Rayfin kodu üzerinde çalışan herhangi bir yapay zeka aracısının da kullanabileceği, aynı içeriğe sahip Markdown dosyalarıyla desteklenir. Microsoft’un Replit ile olan ortaklığı; Rayfin uygulamaları oluşturmaya yarayan bir kodlama aracısı ve tanıdık Power BI özelliklerini barındıran bir görselleştirme alanı sunar. Bu sayede, kodlama bilgisi olmayan iş kullanıcıları, yapay zekayı kullanarak Fabric uygulamaları üzerinde denemeler yapabilirler.

Rayfin’in Fabric uygulamalarına getirdiği katı yapı, yapay zeka destekli kodlama ile geleneksel kurumsal uygulama geliştirme süreçleri arasındaki boşluğu doldurmayı amaçlar. Bir uygulamanın tüm bileşenlerini kesin hatlarla tanımlanmış bir ortamda toplayan Rayfin; yapay zeka tarafından üretilen kodun güvenli, uyumlu, insanlar tarafından okunabilir ve üzerinde değişiklik yapılabilir kalmasını sağlar. İş kullanıcıları, Rayfin ve Replit kullanarak hızla Fabric uygulamaları oluşturabilirler. Ardından, eğer bir Fabric uygulaması dar bir kullanıcı grubunun ötesinde fayda sağladığını kanıtlarsa, daha kapsamlı geliştirmeler ve uzun vadeli operasyonel süreçler için kurumun geliştirme ekibine devredilebilir.
Kaynak:
Building Fabric Apps with Microsoft’s Rayfin - Simon Bisson / Info World
.