Yeni kiracılar sağlamayı ve bunları kataloğa kaydetmeyi öğrenin

Şunlar için geçerlidir:Azure SQL Veritabanı

Bu öğreticide SaaS desenlerini sağlamayı ve kataloglamayı öğreneceksiniz. Bunların Wingtip Biletleri SaaS kiracı başına veritabanı uygulamasında nasıl uygulandığını da öğrenirsiniz. Yeni kiracı veritabanları oluşturup başlatır ve bunları uygulamanın kiracı kataloğuna kaydedersiniz. Katalog, SaaS uygulamasının birçok kiracısı ile verileri arasındaki eşlemeyi koruyan bir veritabanıdır. Katalog, uygulama ve yönetim isteklerinin doğru veritabanına yönlendirilmesinde önemli bir rol oynar.

Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:

  • Tek bir yeni kiracı sağlayın.
  • Ek kiracılardan oluşan bir toplu iş sağlayın.

Bu öğreticiyi tamamlamak için aşağıdaki ön koşulların karşılandığından emin olun:

SaaS katalog desenine giriş

Veritabanı destekli çok kiracılı bir SaaS uygulamasında, her kiracı için bilgilerin nerede depolandığını bilmek önemlidir. SaaS katalog deseninde, her kiracı ile verilerinin depolandığı veritabanı arasındaki eşlemeyi tutmak için bir katalog veritabanı kullanılır. Bu düzen, kiracı verileri birden çok veritabanına dağıtıldığı her durumda geçerlidir.

Her kiracı, katalogdaki veritabanı konumuna eşlenen bir anahtarla tanımlanır. Wingtip Biletleri uygulamasında anahtar, kiracı adının karmasından oluşturulur. Bu düzen, uygulamanın anahtarı uygulama URL'sine dahil edilen kiracı adından oluşturmasına olanak tanır. Diğer kiracı anahtar düzenleri kullanılabilir.

Katalog, veritabanının adının veya konumunun uygulama üzerinde en az etkiyle değiştirilmesini sağlar. Çok kiracılı bir veritabanı modelinde bu özellik, bir kiracıyı veritabanları arasında taşımaya da olanak sağlar. Katalog, kiracının veya veritabanının bakım veya diğer eylemler için çevrimdışı olup olmadığını belirtmek için de kullanılabilir. Bu özellik, Tek kiracıyı geri yükleme öğreticisinde incelenir.

Katalog ayrıca, kiracılara sunulan şema sürümü, hizmet planı veya SLA'lar gibi ek kiracı veya veritabanı meta verilerini depolayabilir. Katalog uygulama yönetimini, müşteri desteğini veya DevOps'yi etkinleştiren diğer bilgileri depolayabilir.

SaaS uygulamasının ötesinde katalog veritabanı araçlarını etkinleştirebilir. Wingtip Biletleri SaaS kiracı başına veritabanı örneğinde, geçici raporlama öğreticisinde keşfedilen kiracılar arası sorguyu etkinleştirmek için katalog kullanılır. Veritabanları arası iş yönetimi, Şema yönetimi ve Kiracı analizi öğreticilerinde incelenir.

Wingtip Biletleri SaaS örneklerinde katalog, Elastik Veritabanı istemci kitaplığının (EDCL) Parça Yönetimi özellikleri kullanılarak uygulanır. EDCL, Java ve .NET Framework'te kullanılabilir. EDCL, bir uygulamanın veritabanı destekli parça eşlemesi oluşturmasını, yönetmesini ve kullanmasını sağlar.

Parça eşlemesi, parçaların (veritabanları) listesini ve anahtarlar (kiracılar) ile parçalar arasındaki eşlemeyi içerir. EDCL işlevleri, parça eşlemesinde girdileri oluşturmak için kiracı sağlama sırasında kullanılır. Doğru veritabanına bağlanmak için uygulamalar tarafından çalışma zamanında kullanılırlar. EDCL, katalog veritabanına gelen trafiği en aza indirmek ve uygulamayı hızlandırmak için bağlantı bilgilerini önbelleğe alır.

Önemli

Eşleme verilerine katalog veritabanından erişilebilir, ancak bunları düzenlemeyin. Eşleme verilerini yalnızca Elastik Veritabanı İstemci Kitaplığı API'lerini kullanarak düzenleyin. Eşleme verilerinin doğrudan değiştirilmesi kataloğun bozulmasına neden olur ve desteklenmez.

SaaS sağlama düzenine giriş

Tek kiracılı veritabanı modeli kullanan bir SaaS uygulamasına yeni kiracı eklediğinizde, yeni bir kiracı veritabanı sağlamalısınız. Veritabanı uygun konum ve hizmet katmanında oluşturulmalıdır. Ayrıca uygun şema ve başvuru verileriyle de başlatılmalıdır. Ve uygun kiracı anahtarı altında kataloğa kayıtlı olmalıdır.

Veritabanı sağlama konusunda farklı yaklaşımlar kullanılabilir. SQL betiklerini yürütebilir, bacpac dağıtabilir veya şablon veritabanını kopyalayabilirsiniz.

Veritabanı sağlama, şema yönetimi stratejinizin bir parçası olmalıdır. Yeni veritabanlarının en son şemayla sağlandığından emin olmanız gerekir. Bu gereksinim Şema yönetimi öğreticisinde incelenmiştir.

Wingtip Tickets veritabanı kiracı başına veritabanı uygulaması, katalog sunucusuna dağıtılan basetenantdb adlı bir şablon veritabanını kopyalayarak yeni kiracılar sağlar. Sağlama, kayıt deneyiminin bir parçası olarak uygulamaya tümleştirilebilir. Ayrıca betikler kullanılarak çevrimdışı olarak da desteklenebilir. Bu öğretici, PowerShell kullanarak sağlamayı inceler.

Sağlama betikleri basetenantdb veritabanını kopyalayarak elastik havuzda yeni bir kiracı veritabanı oluşturur. Kiracı veritabanı yeni DNS diğer adıyla eşlenen kiracı sunucusunda oluşturulur. Bu diğer ad, yeni kiracılar sağlamak için kullanılan sunucuya bir başvuru tutar ve olağanüstü durum kurtarma öğreticilerinde bir kurtarma kiracısı sunucusuna işaret edecek şekilde güncelleştirilir (coğrafi depo kullanarak DR, coğrafi kurtarma kullanarak DR). Betikler daha sonra veritabanını kiracıya özgü bilgilerle başlatır ve katalog parça haritasına kaydeder. Kiracı veritabanlarına kiracı adına göre adlar verilir. Bu adlandırma düzeni, desenin kritik bir parçası değildir. Katalog, kiracı anahtarını veritabanı adıyla eşler, böylece herhangi bir adlandırma kuralı kullanılabilir.

Wingtip Biletleri SaaS kiracı başına veritabanı uygulama betiklerini alma

Wingtip Biletleri SaaS betikleri ve uygulama kaynak kodu WingtipTicketsSaaS-DbPerTenant GitHub deposunda bulunur. Wingtip Biletleri SaaS betiklerini indirme ve engellemeyi kaldırma adımları için genel kılavuza göz atın.

Sağlama ve kataloğa kaydetme ile ilgili ayrıntılı kılavuz

Wingtip Biletleri uygulamasının yeni kiracı sağlamayı nasıl uyguladığını anlamak için bir kesme noktası ekleyin ve kiracı sağlarken iş akışını izleyin.

  1. PowerShell ISE'de ...\Learning Modules\ProvisionAndCatalog\Demo-ProvisionAndCatalog.ps1 dosyasını açın ve aşağıdaki parametreleri ayarlayın:

    • $TenantName = yeni mekanın adı (örneğin, Bushwillow Blues).
    • $VenueType = önceden tanımlanmış mekan türlerinden biri: blues, klasik müzik, dans, caz, judo, motor yarışı, çok amaçlı, opera, rockmusic, futbol.
    • = $DemoScenario 1, Tek bir kiracı sağlayın.
  2. Kesme noktası eklemek için imlecinizi Yeni Kiracı ' yazan satırın herhangi bir yerine getirin. Ardından F9 tuşuna basın.

    Screenshot shows a script with New-Tenant highlighted for adding a breakpoint.

  3. Betiği çalıştırmak için F5 tuşuna basın.

  4. Betik yürütme kesme noktasında durduktan sonra, kodun içine girmek için F11 tuşuna basın.

    Debugging

Hata Ayıkla menü seçeneklerini kullanarak betiğin yürütülmesini izleme. Çağrılan işlevlere geçmek için F10 ve F11 tuşlarına basın. PowerShell betiklerinde hata ayıklama hakkında daha fazla bilgi için bkz . PowerShell betikleriyle çalışma ve hata ayıklama ipuçları.

Bu iş akışını açıkça izlemeniz gerekmez. Betiğin hatalarını ayıklamayı açıklar.

  • CatalogAndDatabaseManagement.psm1 modülünü içeri aktarın. Parça Yönetimi işlevleri üzerinde bir katalog ve kiracı düzeyinde soyutlama sağlar. Bu modül katalog deseninin büyük bir bölümünü kapsüller ve keşfetmeye değer.

  • SubscriptionManagement.psm1 modülünü içeri aktarın. Azure'da oturum açmak ve çalışmak istediğiniz Azure aboneliğini seçmek için işlevler içerir.

  • Yapılandırma ayrıntılarını alın. F11 kullanarak Get-Configuration'a geçin ve uygulama yapılandırmasının nasıl belirtildiğine bakın. Kaynak adları ve uygulamaya özgü diğer değerler burada tanımlanmıştır. Betikleri tanımadan bu değerleri değiştirmeyin.

  • Katalog nesnesini alın. Daha üst düzey betikte kullanılan bir katalog nesnesi oluşturan ve döndüren Get-Catalog'a geçin. Bu işlev, AzureShardManagement.psm1'den içeri aktarılan Parça Yönetimi işlevlerini kullanır. Katalog nesnesi aşağıdaki öğelerden oluşur:

    • $catalogServerFullyQualifiedName, standart kök ve kullanıcı adınız kullanılarak oluşturulur: catalog-user.database.windows<> .net.
    • $catalogDatabaseName, tenantcatalog yapılandırmasından alınır.
    • $shardMapManager nesnesi, katalog veritabanından başlatılır.
    • $shardMap nesnesi, katalog veritabanındaki tenantcatalog parça eşlemesinden başlatılır. Katalog nesnesi oluşturulur ve döndürülür. Üst düzey betikte kullanılır.
  • Yeni kiracı anahtarını hesaplayın. Kiracı adından kiracı anahtarı oluşturmak için bir karma işlevi kullanılır.

  • Kiracı anahtarının zaten mevcut olup olmadığını denetleyin. Anahtarın kullanılabilir olduğundan emin olmak için katalog denetlendi.

  • Kiracı veritabanına New-TenantDatabase öğesi sağlanır. Bir Azure Resource Manager şablonu kullanarak veritabanının nasıl sağlandığına adım adım gitmek için F11'i kullanın.

    Veritabanı adı, hangi parçanın hangi kiracıya ait olduğunu netleştirmek üzere kiracı adından oluşturulur. Diğer veritabanı adlandırma kurallarını da kullanabilirsiniz. Resource Manager şablonu, katalog sunucusundaki bir şablon veritabanını (baseTenantDB) kopyalayarak bir kiracı veritabanı oluşturur. Alternatif olarak, bir veritabanı oluşturabilir ve bacpac içeri aktararak veritabanını başlatabilirsiniz. Veya iyi bilinen bir konumdan başlatma betiği yürütebilirsiniz.

    Resource Manager şablonu ...\Learning Modules\Common\ klasöründedir: tenantdatabasecopytemplate.json

  • Kiracı veritabanı daha fazla başlatılır. Mekan (kiracı) adı ve mekan türü eklenir. Burada başka başlatmalar da yapabilirsiniz.

  • Kiracı veritabanı kataloğa kaydedilir. Kiracı anahtarı kullanılarak Add-TenantDatabaseToCatalog ile kaydedilir. Ayrıntıları görmek için F11 tuşunu kullanın:

    • Katalog veritabanı, parça eşlemesine eklenir (bilinen veritabanları listesi).
    • Anahtar değerini parçaya bağlayan eşleme oluşturulur.
    • Kiracıyla ilgili ek meta veriler (mekanın adı) katalogdaki Kiracılar tablosuna eklenir. Kiracılar tablosu Parça Yönetimi şemasının bir parçası değildir ve EDCL tarafından yüklenmez. Bu tabloda katalog veritabanının uygulamaya özgü ek verileri destekleyecek şekilde nasıl genişletilebileceği gösterilmektedir.

Sağlama tamamlandıktan sonra yürütme, özgün Demo-ProvisionAndCatalog betiğine döner. Tarayıcıda yeni kiracı için Olaylar sayfası açılır.

Events page

Bir grup kiracı sağlama

Bu alıştırmada 17 kiracıdan oluşan bir toplu iş sağlanır. Diğer Wingtip Biletleri SaaS kiracı başına veritabanı öğreticilerini başlatmadan önce bu kiracı toplu işlemini sağlamanızı öneririz. Çalışmak için birden fazla veritabanı vardır.

  1. PowerShell ISE'de ...\Learning Modules\ProvisionAndCatalog\Demo-ProvisionAndCatalog.ps1 dosyasını açın. $DemoScenario parametresini 3 olarak değiştirin:

    • = $DemoScenario 3, Bir grup kiracı sağlayın.
  2. Betiği çalıştırmak için F5 tuşuna basın.

Betik, ek kiracı grubu dağıtır. Toplu işlemi denetleyebilen ve her veritabanının sağlanmasını bağlı bir şablona devreden bir Azure Resource Manager şablonu kullanır. Şablonların bu şekilde kullanılması, Azure Resource Manager’ın betiğinizin sağlama işlemine aracılık etmesine olanak tanır. Şablonlar veritabanlarını paralel olarak sağlar ve gerekirse yeniden denemeleri işler. Betik bir kez etkili olduğundan başarısız olursa veya herhangi bir nedenle durursa yeniden çalıştırın.

Başarıyla dağıtılan kiracıların toplu işlemini doğrulama

  • Azure portalında sunucu listenize göz atın ve tenants1 sunucusunu açın. SQL veritabanları'nı seçin ve 17 ek veritabanının toplu işleminin artık listede olduğunu doğrulayın.

    Database list

Diğer sağlama düzenleri

Bu öğreticiye dahil olmayan diğer sağlama desenleri:

Veritabanlarını önceden sağlama: Ön sağlama düzeni, elastik havuzdaki veritabanlarının ek maliyet eklemediğinden yararlanır. Faturalama, veritabanlarına değil elastik havuza yöneliktir. Boşta olan veritabanları kaynak kullanmaz. Havuzdaki veritabanlarını önceden sağlayarak ve gerektiğinde ayırarak kiracı ekleme süresini kısaltabilirsiniz. Önceden sağlanan veritabanlarının sayısı, beklenen sağlama oranına uygun bir arabellek tutmak için gerektiği şekilde ayarlanabilir.

Otomatik sağlama: Otomatik sağlama düzeninde, sağlama hizmeti gerektiğinde sunucuları, havuzları ve veritabanlarını otomatik olarak sağlar. İsterseniz, elastik havuzlara ön sağlama veritabanlarını ekleyebilirsiniz. Veritabanları kullanımdan kaldırılıp silinirse, elastik havuzlardaki boşluklar sağlama hizmeti tarafından doldurulabilir. Bu tür bir hizmet, birden çok coğrafyada sağlamayı işleme ve olağanüstü durum kurtarma için coğrafi çoğaltmayı ayarlama gibi basit veya karmaşık olabilir.

Otomatik sağlama düzeniyle, bir istemci uygulaması veya betik sağlama hizmeti tarafından işlenecek bir kuyruğa bir sağlama isteği gönderir. Ardından tamamlamayı belirlemek için hizmeti yoklar. Ön sağlama kullanılırsa istekler hızlı bir şekilde işlenir. Hizmet, arka planda yeni bir veritabanı sağlar.

Sonraki adımlar

Bu öğreticide, şunları öğrendiniz:

  • Tek bir yeni kiracı sağlayın.
  • Ek kiracılardan oluşan bir toplu iş sağlayın.
  • Kiracı sağlama ve bunları kataloğa kaydetme ayrıntılarına adım atın.

Performans izleme öğreticisini deneyin.

Ek kaynaklar