Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Çözüm fikirleri
Bu makalede bir çözüm fikri açıklanmaktadır. Bulut mimarınız bu kılavuzu, bu mimarinin tipik bir uygulaması için temel bileşenleri görselleştirmeye yardımcı olmak amacıyla kullanabilir. İş yükünüzün özel gereksinimlerine uygun iyi tasarlanmış bir çözüm tasarlamak için bu makaleyi başlangıç noktası olarak kullanın.
Taşınabilirlik, modern uygulamalar için tedarik ve operasyonel bir gereksinimdir. Takımlar, geri alınabilen ve bağımsız bulutlar, şirket içi altyapı ve aralıklı olarak bağlı uç ortamları gibi farklı hedeflere taşınabilir uygulamalar tasarlamalıdır. Aşağıdaki koşullar taşınabilirlik gereksinimini artırır:
- Veri yerleşimi ve egemenlik kuralları
- Sektöre özgü uyumluluk zorunlulukları
- Aralıklı bağlantı ortamları
- İş sürekliliği gereksinimleri
Arc özellikli Kubernetes, Radius ve uç yapay zeka desenleri, taşınabilirlik gereksinimlerini karşılayabilen bir mimari modeli için pratik bir temel oluşturur. Bu mimari modeli uyarlamalı uygulamalar çözümüdür.
Uyarlamalı uygulamalar, uygulama amacını ortama özgü uygulamadan ayırır. Geliştiriciler iş yüklerini ve gerekli özellikleri bir kez açıklar ve platform operatörleri bu taşınabilir kaynakları her ortama uygun yerel hizmet tariflerine, ilkelerine, kimliğine, ağına, gözlemlenebilirliğine ve altyapıya bağlar. Bu makalede uyarlamalı uygulamalar çözümü açıklanır ve yetenek portföylerinin, açık protokollerin ve Radius tabanlı dağıtım iş akışlarının uygulamaların çalıştıkları her yerde tutarlı, yönetilebilir ve çalışır durumda kalmasını nasıl sağladığı gösterilmektedir.
Architecture
Radius ile modellenen bir uygulama bir kaynak kümesinden oluşur. Bu kaynakları, uygulamayı destekleyen uygulama bileşenlerine ve platform düzeyinde kaynaklara kategorilere ayırabilirsiniz. Bu platform düzeyindeki kaynakların koleksiyonuna yetenek portföyü adı verilir.
Radius kaynağı, platform düzeyindeki bir özelliğe yönelik soyut bir arabirim tanımlar. Bir Radius kaynağını hedef ortama dağıttığınızda, hedefe özgü bir tarif bu kaynak türünü somut, platforma özgü bir uygulamayla eşleyebilir. Yetenek portföyünü ilgili tarifler aracılığıyla farklı hedef ortamlara yansıtabilirsiniz.
Bu mimari, belirli platformlar için uygulama kodunun yeniden yazılmasını gerektirmeden uygulamaya gerekli özellikleri sağlar.
Bu mimariye ait bir Visio dosyasını indirin.
Mimari, iki tamamlayıcı soyutlama katmanı aracılığıyla taşınabilirlik sağlar.
İlk olarak Radius, uygulama gereksinimlerini platforma özgü uygulamalardan ayıran bir uygulama modeli soyutlaması sağlar. Soyut kaynak türleri, ortama özgü tarifler aracılığıyla farklı uygulamalara eşleyebilecek veritabanları, önbellekler veya mesajlaşma sistemleri gibi kaynakları temsil eder. Bu yaklaşım, dağıtım yapıtlarını değiştirmeden aynı uygulama tanımını birden çok ortamda dağıtmanıza olanak tanır.
İkinci olarak, uygulamalar bir programlama modeli soyutlaması benimseyebilir. Uygulamalar yaygın olarak benimsenen standartlar ve protokoller aracılığıyla veya Dapr gibi isteğe bağlı sepet tabanlı soyutlama katmanı aracılığıyla bağımlılıklarla etkileşime geçebilir. Bu yaklaşımlar, platforma özgü hizmet API'lerine uygulama bağlamayı azaltır ve ortamlar arasında taşınabilirliği geliştirir.
Bu soyutlamalar cazip bir "bir kez yazma, birçok ortamda çalıştırma" deneyimi sağlar, ancak aynı zamanda dezavantajlar da sunar. Taşınabilir kalmak için uygulamaların tüm hedef ortamlarda kullanılamayan platforma özgü özelliklerin ve iyileştirmelerin doğrudan kullanımını sınırlaması gerekebilir. Taşınabilirlik elde etmek için sepet veya ortak programlama soyutlaması kullandığınızda, bu soyutlama katmanı tarafından uygulanan kısıtlamaları kabul etmeniz gerekir.
Ekiplerin desteklenen dağıtım hedeflerinde uygulama davranışını doğrulamayı taahhüt etmesi gerekir ve bu da test ve operasyonel karmaşıklığı artırır. Taşınabilirliği, dağıtım esnekliği için daha derin platform tümleştirmesi, azaltılmış kilitleme ve heterojen ortamlarda daha yüksek tutarlılık sağlayan kasıtlı bir mimari seçim olarak görüntüleyin.
Iş akışı
Aşağıdaki iş akışı önceki diyagrama karşılık gelir. İş akışı ön uç, arka uç, yapay zeka aracısı, ileti aracısı ve OpenID Connect (OIDC) kimlik sağlayıcısı gibi tipik bileşenleri içeren örnek bir uygulamayı açıklar.
Uygulama geliştiricisi, iş yükünü bir kez açıklamak için Radius uygulama tanımı kullanır.
Uygulama tanımı, kapsayıcılı yük ön ucunu ve arka ucunu açıklayan bir
Applications.Core/containerskaynak gibi kaynakların bir listesinden oluşur. Uyarlamalı uygulamalar düzeni, uygulamayı belirli bir platformdan ayırmaya yönelik ortak platform özelliklerini soyutlayan birkaç kaynak türü uzantısını da tanımlar.Uyarlamalı uygulamalar, yeni veri düzlemi soyutlamaları tanımlamak yerine kimlik doğrulaması için OIDC ve mesajlaşma için Message Queuing Telemetri Aktarımı (MQTT) gibi yaygın olarak benimsenen açık kaynak bileşenleri ve açık protokolleri kullanır. Bu yaklaşım, uygulamanın soyut bir arabirimle kısıtlanmasını engeller ve ilgili protokollerin tüm özelliklerini doğrudan kullanmasına olanak tanır.
Kaynak türü Purpose Radius.Resources/agentGuardrailsAracıya özgü idare ilkeleri Radius.Resources/aiModelsYapay zeka çıkarımlarını destekleyen yapay zeka modelleri Radius.Resources/governanceKurumsal idare ilkeleri Radius.Resources/mqttBrokersMQTT tabanlı ileti aracıları Radius.Resources/workloadIdentitiesUygulama içindeki bir iş yükünü veya aracıyı tanımlamak için kullanılan iş yükü kimlikleri Geliştirici, taşınabilir bir API kullanarak uygulama kodu oluşturabilir veya güncelleştirebilir.
Programlama modeli düzeyinde, bir uygulama pub/sub, durum yönetimi ve gizli diziler gibi yaygın görevler için platformdan bağımsız API'ler sağlayan Dapr gibi sepet teknolojilerini daha da benimseyebilir. Radius, Dapr sepetleri için yerel desteğe sahiptir.
Azure SDK’ları zaten kullanan Brownfield hizmetleri, gerekli Azure uç noktaları, kimlik akışları ve ağ bağlantısı varsa hedeflerde çalışmaya devam edebilir. Ortak protokolleri kullanan hizmetler, uyumlu uygulamaların sağlandığı yerlerde çalışmaya devam edebilir. Daha geniş taşınabilirlik için, yeni hizmetler uygulamaların daha fazla platform varyasyonuna uyum sağlamasına yardımcı olmak için Dapr API'lerini benimseyebilir.
Platform operatörü her hedef için bir yetenek portföyü önyüklemesi sağlar.
operatör, ortamın ayak izi ve uyumluluk gereksinimlerine göre önceden tanımlanmış altı portföyden birini seçer:
min,coreent,min-ai, ,core-ai, veyaent-ai. Operatör, portföyü helm grafiği aracılığıyla yükler. Aşağıdaki tabloda, önceden tanımlanmış portföylerin çeşitli protokolleri destekleyip desteklemediği gösterilmektedir.Portföy Kimlik (OIDC) Hizmet ağı (Istio) Gözlemlenebilirlik (OTel) İdare (OPA) Küme üzerinde yapay zeka (Kaito) Aracı koruması min✓ ✗ ✗ ✗ ✗ ✗ core✓ ✓ ✓ ✗ ✗ ✗ ent✓ ✓ ✓ ✓ ✗ ✗ min-ai✓ ✗ ✗ ✗ ✓ ✗ core-ai✓ ✓ ✓ ✗ ✓ ✓ ent-ai✓ ✓ ✓ ✓ ✓ ✓ Uyarlamalı uygulamalar, Helm yüklemesini aşan altyapı yapılandırma adımlarını kolaylaştırmak ve altyapı bilgilerini uygulama dağıtımı için kullanılabilir hale getirmek için bir komut satırı aracı da sağlar.
Radius, uygulamayı ortama özgü tariflere bağlar.
Hedef çalışma alanında çalıştırıldığında
rad deploy, ortama kayıtlı bir tarif uyarlamalı uygulamadaki her taşınabilir kaynağı sağlar. Örneğin,Radius.Resources/aiModelsuygulama yerel bir Kubernetes ortamına dağıtıldığında Kaito tarafından yönetilen yerel bir küçük dil modeline (SLM) çözümlenir. Aynı kaynak, bulut ortamına dağıtıldığında OpenAI veya Azure OpenAI uç noktasına çözümlendiğinde. Radius, uygulama tanımının açıkça bildirdiğini bağımlılıklar için bağlantı bilgilerini ekler.Bu diyagramın Visio dosyasını indirin.
Components
Radius , bir iş yükünü taşınabilir kaynak türlerinin grafiği olarak ifade eden ve her türü dağıtım zamanında ortama özgü bir tarifle çözümleyen bir açık kaynak uygulama modelidir. Bu mimaride Radius, uygulama ekipleri ve platform operatörleri arasındaki birincil sözleşmedir. Uyarlamalı uygulamalar, uygulamaları hedef ortamlara dağıtmak için Radius araçlarını da kullanır.
Yetenek portföyleri , uygulamalar ve barındırma platformları arasındaki sözleşmelerdir. Bu mimari, temel uç ayak izinden ilke zorlama ve küme içi yapay zeka ile tam kurumsal kuruluma kadar yetenek katmanları için önceden tanımlanmış altı portföye sahiptir. Platform operatörleri, yetenek portföylerini Helm grafikleri olarak yükler.
Yapay zeka destekli araçlar , altyapı yapılandırması ve brownfield uygulamalarının yapay zeka destekli geçişi için bir CLI sağlar. Bu mimaride, araçlar mikro hizmet uygulamaları, eski uygulamalar ve ana bilgisayar uygulamaları gibi kahverengi alan uygulamalarını Radius uygulama modeline geçirmeye yardımcı olur.
Senaryo ayrıntıları
Bir iş yükü ekibinin, aşağıdaki ortamları içerebilen heterojen bir varlıkta aynı uygulamayı çalıştırması gerekebilir:
- Elastik iş yükleri için genel bulut bölgesi
- Veri yerleşikliği yükümlülüklerini yerine getirmek için bağımsız bir bölge
- Gecikmeye duyarlı işleme için şirket içi veri merkezi
- Aralıklı bağlantıya sahip uzak uç kümelerinden oluşan bir filo
Her ortamın genellikle kendi kimlik sağlayıcısı, hizmet ağı katmanı, gözlemlenebilirlik yığını, ilke altyapısı ve yapay zeka stratejisi vardır. Birleştirici bir sözleşme olmadan, uygulama ekipleri her hedef için kod tabanını çatallamalı, kendilerini tek bir platforma kilitlemeli veya her yeni ortam eklediklerinde yeniden düzenleme maliyetlerine neden olmalıdır.
Uyarlamalı uygulamalar bu sorunu çözmek için uygulamayı değil, ortam varyasyonunu emerek sorumlu olan platformu oluşturur. Uygulama, Radius uygulama modeline ve isteğe bağlı olarak Dapr programlama modeline karşı bir kez yazılır. Her hedef ortam, uygulamanın gerektirdiği özellikleri kullanıma sunan bir yetenek portföyü yükler. Tarif katmanı, taşınabilir kaynakları dağıtım zamanında ortama özgü uygulamalara bağlar.
Mimari, denetim düzlemi hakkında kasıtlı olarak açıklayıcı değildir. Yetenek satıcıları Helm, Arc uzantıları, Bicep, Terraform veya özel yükleyiciler aracılığıyla portföy teslim edebilir. Sonuçta elde edilen ortam portföyün yetenek sözleşmesini karşıladıkça uygulamalar taşınabilir kalır.
Olası kullanım örnekleri
Bağımsız ve düzenlenmiş bulut dağıtımları
Düzenlenen bir iş yükü, bir kod tabanını genel bulut sürümüyle paylaşırken bağımsız bir bulutta veya müşteri tarafından denetlenen bir altyapıda çalıştırılmalıdır.
core-aiveyaent-aiportföyü, dağıtım hedefleri arasında tutarlı bir yetenek sözleşmesi sağlayarak uygulama taşınabilirliğini sağlar. Hedef ortam, egemenlik ve mevzuat gereksinimlerini karşılamak için veri yerleşimi, şifreleme, erişim denetimi, denetim ve uyumluluk sertifikaları gibi özelliklerin ve denetimlerin belirli bir şekilde uygulanmasını zorunlu kılabilir.Yeniden platform oluşturmadan brownfield modernizasyonu
İş yükü ekibi, altyapı bağımlılıklarını açıklamak için Radius kaynak tanımlarını kullanıma sunarak ve Dapr özelliklerini seçmeli olarak benimseyerek eski mikro hizmetler uygulamasını artımlı olarak modernleştirir. Yapay zeka destekli yeniden düzenleme araçları, geçişin bazı bölümlerini hızlandırmaya yardımcı olur. Bu yaklaşım, ekiplerin iş ve teknik gereksinimlerle uyumlu bir hızda taşınabilirliği, gözlemlenebilirliği ve operasyonel tutarlılığı geliştirmek için uygulamaları modernleştirmesine olanak tanır.
Uçta hibrit yapay zeka çıkarımı
Perakende veya endüstriyel iş yükü, Azure OpenAI'yi arayarak merkezdeki Azure ve Kaito tarafından barındırılan açık kaynak modeli çağırarak mağaza veya tesislerdeki Azure Yerel kümelerde aynı
aiModelhizmeti çalıştırır. Uygulama kodu aynıdır ve yalnızcaaiModeltarif farklıdır.Aralıklı bağlı kenar
Savunma, deniz veya uzak site dağıtımı, portföyü bulutta barındırılan
min-aikimliğe veya yapay zeka hizmetlerine bağımlılığı olmayan tek bir kaynak kısıtlanmış kümede çalıştırır. Aynı iş yükü, portföylecore-aiAKS'ye yeniden dağıtıldığında otomatik olarak ağ ve gözlemlenebilirlik kazanır. Portföy ayrıcaent-aiidare ilkesi zorlaması da ekler.Çoklu bulut dağıtımı
Bir iş yükü ekibi, her hedef aynı yetenek sözleşmesini uyguladığı sürece kullanarak modellenmiş uygulama kaynaklarını başka bir çalışma alanına
rad deploydağıtır. İş yükü artışlarını ve olağanüstü durum kurtarmayı ayrı endişeler olarak ele alır. Kullanılabilir bir ikincil ortamın kapasite, yapıt ve veri kullanılabilirliği, bağımlılık sıralaması, kimlik, ağ bağlantısı, trafik yönlendirmesi, sistem durumu denetimleri ve test edilmiş yük devretme/yeniden çalışma yordamları da gerekir.
Katkıda Bulunanlar
Microsoft bu makaleyi korur. Bu makaleyi aşağıdaki katkıda bulunanlar yazdı.
Asıl yazarlar:
- Haishi Bai | Baş Yazılım Mimarı
- Boris Scholl | Mühendislik Başkan Yardımcısı
- Will Tsai | Ana Ürün Yöneticisi
Herkese açık olmayan LinkedIn profillerini görmek için LinkedIn'e oturum açın.
Sonraki adım
- GitHub'da Uyarlamalı Uygulamalar deposunu keşfetme