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.
Tavsiye
Bu içerik, .NET Docs veya çevrimdışı olarak okunabilen ücretsiz indirilebilir bir PDF olarak sağlanan Azure için Bulut Yerel .NET Uygulamaları Tasarlama adlı e-Kitap'tan bir alıntıdır.
Azure eKitap kapak küçük resmi için Buluta Özel .NET uygulamaları.
Buluta özel uygulamaların temel özelliklerinden biri, geliştirmeyi hızlandırmak için bulutun özelliklerinden yararlanmalarıdır. Bu tasarım genellikle tam bir uygulamanın farklı türlerde teknolojiler kullandığı anlamına gelir. Uygulamalar Docker kapsayıcılarında gönderilebilir, bazı hizmetler Azure İşlevleri'ni kullanabilir, diğer parçalar ise donanım GPU hızlandırmalı büyük metal sunucularda ayrılan sanal makinelerde doğrudan çalıştırılabilir. Buluta özel iki uygulama aynı olmadığından, bunları göndermek için tek bir mekanizma sağlamak zor oldu.
Docker kapsayıcıları Kubernetes üzerinde dağıtım için Helm Şeması kullanarak çalıştırılabilir. Azure İşlevleri Terraform şablonları kullanılarak ayrılmış olabilir. Son olarak, sanal makineler Terraform kullanılarak ayrılmış ancak Ansible kullanılarak oluşturulmuş olabilir. Bu çok çeşitli teknolojilerdir ve bunların tümünü makul bir pakette paketlemenin hiçbir yolu yoktur. Şimdiye kadar.
Buluta Özel Uygulama Paketleri (CNABs), Microsoft, Docker ve HashiCorp gibi birçok topluluk odaklı şirketin dağıtılmış uygulamaları paketlemeye yönelik bir belirtim geliştirmesi için ortak bir çabadır.
Bu çaba Aralık 2018'de duyuruldu, bu nedenle çabayı daha geniş bir topluluğa tanıtmak için hala önemli miktarda iş yapılması gerekiyor. Ancak, zaten bir açık standart ve Duffle olarak bilinen bir referans uygulaması vardır. Go dilinde yazılmış olan bu araç, Docker ve Microsoft arasında ortak bir çabadır.
CNAB'ler farklı türde yükleme teknolojileri içerebilir. Bu özellik Helm Charts, Terraform şablonları ve Ansible Playbook'lar gibi öğelerin aynı pakette birlikte var olmasını sağlar. Paketler oluşturulduktan sonra bağımsız ve taşınabilir; bir USB bellekten yüklenebilirler. Paketler, iddia ettikleri taraftan kaynaklandığından emin olmak için şifreli olarak imzalanır.
CNAB'nin çekirdeği adlı bundle.jsonbir dosyadır. Bu dosya, ister Terraform, ister görüntüler, ister başka bir şey olsun, paketin içeriğini belirler. Şekil 11-9 bazı Terraform'ları çağıran bir CNAB tanımlar. Ancak, Terraform'u çağırmak için kullanılan bir çağırma görüntüsünü tanımladığını fark edin. Paketlendiğinde, cnab dizininde bulunan Docker dosyası, pakete eklenecek bir Docker görüntüsünde yerleşik olarak bulunur. Terraform'un paketteki bir Docker kapsayıcısının içine yüklenmesi, paketlemeyi çalıştırmak için kullanıcıların makinelerinde Terraform'un yüklü olması gerekmeydikleri anlamına gelir.
{
"name": "terraform",
"version": "0.1.0",
"schemaVersion": "v1.0.0-WD",
"parameters": {
"backend": {
"type": "boolean",
"defaultValue": false,
"destination": {
"env": "TF_VAR_backend"
}
}
},
"invocationImages": [
{
"imageType": "docker",
"image": "cnab/terraform:latest"
}
],
"credentials": {
"tenant_id": {
"env": "TF_VAR_tenant_id"
},
"client_id": {
"env": "TF_VAR_client_id"
},
"client_secret": {
"env": "TF_VAR_client_secret"
},
"subscription_id": {
"env": "TF_VAR_subscription_id"
},
"ssh_authorized_key": {
"env": "TF_VAR_ssh_authorized_key"
}
},
"actions": {
"status": {
"modifies": true
}
}
}
Şekil 10-18 - Örnek terraform dosyası
ayrıca bundle.json Terraform'a geçirilen bir dizi parametreyi tanımlar. Paketin parametreleştirilmesi, çeşitli ortamlarda yüklemeye olanak tanır.
CNAB biçimi de esnektir ve tüm bulutlarda kullanılmasına olanak sağlar. OpenStack gibi şirket içi çözümlerde bile kullanılabilir.
DevOps Kararları
DevOps alanında bugünlerde birçok harika araç ve nasıl başarılı olunması konusunda daha fazla harika kitap ve makale var. DevOps yolculuğuna başlamak için en sevdiğiniz kitaplardan biri, kurgusal bir şirketin NoOps'tan DevOps'a dönüştürülmesiyle devam eden Phoenix Projesi'dir. Kesin olan bir şey var: DevOps, artık karmaşık, Bulut Yerel Uygulamalar dağıtırken 'olmazsa olmaz' hâline gelmiştir. Bu bir gereksinimdir ve herhangi bir projenin başlangıcında planlanması ve kaynaklanması gerekir.