Uygulamalı Laboratuvar: Sürdürülebilir Azure Web Siteleri: Değişikliği ve Ölçeği Yönetme

Web Camps Ekibi tarafından

Web Camps Eğitim Setini indirin

Microsoft Azure, web sitelerini oluşturmayı ve üretim ortamına dağıtmayı kolaylaştırır. Ancak uygulamanız canlı yayındayken işiniz bitmedi, yeni başlıyorsunuz! Değişen gereksinimleri, veritabanı güncelleştirmelerini, ölçeklendirmeyi ve daha fazlasını işlemeniz gerekir. Neyse ki Azure App Service, sitelerinizin sorunsuz çalışmasını sağlamaya yardımcı olacak birçok özelliği ele almıştır.

Azure, her boyuttaki web uygulaması için güvenli ve esnek geliştirme, dağıtım ve ölçeklendirme seçenekleri sunar. Altyapı yönetimi zahmetine girmeden uygulama oluşturmak ve dağıtmak için mevcut araçlarınızdan yararlanın.

Sık kullandığınız geliştirme aracı kullanılarak oluşturulan içeriği kolayca dağıtarak bir üretim web uygulamasını dakikalar içinde kendiniz sağlayın. Git, GitHub, Bitbucket, TFS ve hatta DropBox desteğiyle mevcut bir siteyi doğrudan kaynak denetiminden dağıtabilirsiniz. Windows'ta PowerShell'i veya herhangi bir işletim sisteminde çalışan CLI araçlarını kullanarak doğrudan sık kullandığınız IDE'den veya betiklerden dağıtın. Dağıtıldıktan sonra, sürekli dağıtım desteğiyle sitelerinizi sürekli güncel tutun.

Azure, büyük veya küçük tüm veriler için ölçeklenebilir, dayanıklı bulut depolama, yedekleme ve kurtarma çözümleri sağlar. Uygulamaları bir üretim ortamına dağıtırken Tablolar, Bloblar ve SQL Veritabanları gibi depolama hizmetleri, uygulamanızı bulutta ölçeklendirmenize yardımcı olur.

SQL Veritabanları ile, uygulamanızın yeni sürümlerini dağıtırken üretken veritabanınızı güncel tutmak önemlidir. Entity Framework Code First Migrations sayesinde, ortamlarınızı dakikalar içinde güncelleştirmek için veri modelinizin geliştirilmesi ve dağıtımı basitleştirildi. Bu uygulamalı laboratuvar, web uygulamanızı Microsoft Azure'daki üretim ortamlarına dağıtırken karşılaşabileceğiniz farklı konuları gösterir.

Tüm örnek kod ve kod parçacıkları adresinde bulunan Web Camps Eğitim Seti'ne https://aka.ms/webcamps-training-kitdahildir.

Bu konunun daha ayrıntılı kapsamı için Bkz. Azure ile Real-World Cloud Apps Oluşturma e-kitabı.

Genel Bakış

Hedefler

Bu uygulamalı laboratuvarda şunların nasıl yapılacağını öğreneceksiniz:

  • Var olan bir modelle Entity Framework Geçişlerini etkinleştirme
  • Entity Framework Geçişlerini kullanarak nesne modelini ve veritabanını uygun şekilde güncelleştirme
  • Git kullanarak Azure App Service dağıtma
  • Azure Yönetim portalını kullanarak önceki bir dağıtıma geri alma
  • Web uygulamasını ölçeklendirmek için Azure Depolama'yı kullanma
  • Azure Yönetim Portalı'nı kullanarak bir web uygulaması için otomatik ölçeklendirmeyi yapılandırma
  • Visual Studio'da yük testi projesi oluşturma ve yapılandırma

Önkoşullar

Bu uygulamalı laboratuvarı tamamlamak için aşağıdakiler gereklidir:

Kurulum

Alıştırmaları bu uygulamalı laboratuvarda çalıştırmak için önce ortamınızı ayarlamanız gerekir.

  1. Windows Gezgini'ni açın ve laboratuvarın Kaynak klasörüne göz atın.
  2. Setup.cmd'ye sağ tıklayıp Yönetici olarak çalıştır'ı seçerek ortamınızı yapılandıracak kurulum işlemini başlatın ve bu laboratuvar için Visual Studio kod parçacıklarını yükleyin.
  3. Kullanıcı Hesabı Denetimi iletişim kutusu gösteriliyorsa, devam etmek için eylemi onaylayın.

Not

Kurulumu çalıştırmadan önce bu laboratuvar için tüm bağımlılıkları denetlediğinizden emin olun.

Kod Parçacıklarını Kullanma

Laboratuvar belgesinin tamamında kod blokları eklemeniz istenir. Size kolaylık olması için, bu kodun çoğu el ile eklemek zorunda kalmamak için Visual Studio 2013 içinden erişebileceğiniz Visual Studio Code Kod Parçacıkları olarak sağlanır.

Not

Her alıştırmaya, alıştırmanın Begin klasöründe bulunan ve her alıştırmayı diğerlerinden bağımsız olarak izlemenizi sağlayan bir başlangıç çözümü eşlik eder. Alıştırma sırasında eklenen kod parçacıklarının bu başlangıç çözümlerinde eksik olduğunu ve siz alıştırmayı tamamlayana kadar çalışmayabileceğini unutmayın. Bir alıştırmanın kaynak kodunun içinde, ilgili alıştırmadaki adımların tamamlanmasıyla sonuçlanacak kodu içeren visual studio çözümünü içeren bir End klasörü de bulacaksınız. Bu uygulamalı laboratuvarda çalışırken ek yardıma ihtiyacınız varsa bu çözümleri rehberlik olarak kullanabilirsiniz.


Egzersiz

Bu uygulamalı laboratuvar aşağıdaki alıştırmaları içerir:

  1. Entity Framework Geçişlerini Kullanma
  2. Web Uygulamasını Hazırlamaya Dağıtma
  3. Üretimde Dağıtım Geri Alma Gerçekleştirme
  4. Azure Depolama Kullanarak Ölçeklendirme
  5. Web Apps için Otomatik Ölçeklendirmeyi Kullanma (Visual Studio 2013 Ultimate sürümü için isteğe bağlı)

Bu laboratuvarın tamamlanması için tahmini süre: 75 dakika

Not

Visual Studio'yu ilk kez başlattığınızda, önceden tanımlanmış ayarlar koleksiyonlarından birini seçmeniz gerekir. Önceden tanımlanmış her koleksiyon belirli bir geliştirme stiliyle eşleşecek şekilde tasarlanmıştır ve pencere düzenlerini, düzenleyici davranışını, IntelliSense kod parçacıklarını ve iletişim kutusu seçeneklerini belirler. Bu laboratuvardaki yordamlar, Genel Geliştirme Ayarları koleksiyonunu kullanırken Visual Studio'da belirli bir görevi gerçekleştirmek için gereken eylemleri açıklar. Geliştirme ortamınız için farklı bir ayar koleksiyonu seçerseniz, dikkate almanız gereken adımlarda farklılıklar olabilir.

Alıştırma 1: Entity Framework Geçişlerini Kullanma

Bir uygulama geliştirirken veri modeliniz zaman içinde değişebilir. Bu değişiklikler veritabanınızdaki mevcut modeli etkileyebilir (yeni bir sürüm oluşturuyorsanız) ve hataları önlemek için veritabanınızı güncel tutmanız önemlidir.

Modelinizde bu değişikliklerin izlenmesini basitleştirmek için Entity Framework Code First Migrations modelinizi veritabanı şemasıyla karşılaştıran değişiklikleri otomatik olarak algılayın ve veritabanınızı güncelleştirmek için belirli bir kod oluşturarak veritabanınızın yeni sürümlerini oluşturun.

Bu alıştırmada, uygulamanız için Geçişleri nasıl etkinleştirebileceğiniz ve veritabanlarınızı güncelleştirmek için değişiklikleri kolayca algılayıp oluşturabileceğiniz gösterilmektedir.

Görev 1 – Geçişleri Etkinleştirme

Bu görevde, Geek Test veritabanında Entity Framework Code First Migrations etkinleştirme, modeli değiştirme ve bu değişikliklerin veritabanına nasıl yansıtılacağını anlama adımlarını ilerleteceksiniz.

  1. Visual Studio'yu açın ve Source\Ex1-UsingEntityFrameworkMigrations\Begin dizininden GeekQuiz.sln çözüm dosyasını açın.

  2. NuGet paketi bağımlılıklarını indirip yüklemek için çözümü oluşturun. Bunu yapmak için çözüme sağ tıklayın ve Çözüm Oluştur'a tıklayın veya Ctrl + Shift + B tuşlarına basın.

  3. Visual Studio'daki Araçlar menüsünde NuGet Paket Yöneticisi'ni seçin ve ardından Paket Yöneticisi Konsolu'na tıklayın.

  4. Paket Yöneticisi Konsolu'nda aşağıdaki komutu girin ve Enter tuşuna basın. Mevcut modeli temel alan bir ilk geçiş oluşturulur.

    Enable-Migrations -ContextTypeName GeekQuiz.Models.TriviaContext
    

    Geçişleri Etkinleştirme

    Code First Migrations aracını etkinleştirme

    Not

    Bu komut, Geek Test projesine Configuration.cs adlı bir dosya içeren bir Migrations klasörü ekler. Configuration sınıfı, Migrations'ın bağlamınız için nasıl davranacağını yapılandırmanıza olanak tanır.

  5. Geçişler etkinleştirildiğinde, Veritabanını Geek Test'in gerektirdiği ilk verilerle doldurmak için Configuration sınıfını güncelleştirmeniz gerekir. Geçişler'in altında Configuration.cs dosyasını bu laboratuvarın Source\Assets klasöründe bulunan dosyayla değiştirin.

    Not

    Geçişler her veritabanı güncelleştirmesi ile Seed yöntemini çağıracağı için kayıtların veritabanında çoğaltılmadığından emin olmanız gerekir. AddOrUpdate yöntemi yinelenen verileri önlemeye yardımcı olur.

  6. İlk geçişi eklemek için aşağıdaki komutu girin ve Enter tuşuna basın.

    Not

    LocalDB örneğinizde "GeekQuizProd" adlı bir veritabanı olmadığından emin olun.

    Add-Migration InitialSchema
    

    Temel şema geçişi ekleme

    Temel şema geçişi ekleme

    Not

    Add-Migration , son geçiş oluşturulduktan sonra modelinizde yaptığınız değişikliklere göre sonraki geçişin iskelesini oluşturur. Bu durumda, projenin ilk geçişi olduğundan, TriviaContext sınıfında tanımlanan tüm tabloları oluşturmak için betikleri ekler.

  7. Aşağıdaki komutu çalıştırarak veritabanını güncelleştirmek için geçişi yürütür. Bu komut için hedef veritabanına uygulanan SQL deyimlerini görüntülemek için Ayrıntılı bayrağını belirtebilirsiniz.

    Update-Database -Verbose
    

    İlk veritabanı oluşturma

    İlk veritabanı oluşturma

    Not

    Update-Database , bekleyen tüm geçişleri veritabanına uygular. Bu durumda, web.config dosyanızda tanımlanan bağlantı dizesi kullanarak veritabanını oluşturur.

  8. Görünüm menüsüne gidin ve SQL Server Nesne Gezgini açın.

    SQL Server Nesne Gezgini'de aç

    SQL Server Nesne Gezgini'da aç

  9. SQL Server Nesne Gezgini penceresinde, SQL Server düğümüne sağ tıklayıp SQL Server ekle... seçeneğini belirleyerek LocalDB örneğinize bağlanın.

    SQL Server Örneği Ekleme SQL Server

    SQL Server Nesne Gezgini'a SQL Server örneği ekleme

  10. Sunucu adını(localdb)\v11.0 olarak ayarlayın ve kimlik doğrulama modu olarak Windows Kimlik Doğrulaması'nı bırakın. Devam etmek için Bağlan’a tıklayın.

    LocalDB'ye Bağlanma

    LocalDB'ye bağlanma

  11. GeekQuizProd veritabanını açın ve Tablolar düğümünü genişletin. Gördüğünüz gibi Update-Database komutu TriviaContext sınıfında tanımlanan tüm tabloları oluşturdu. dbo dosyasını bulun. TriviaQuestions tablosunu açın ve sütunlar düğümünü açın. Sonraki görevde, bu tabloya yeni bir sütun ekleyecek ve Migrations kullanarak veritabanını güncelleştireceğiz.

    Trivia Soru Sütunları

    Trivia Soru Sütunları

Görev 2 – Geçişleri Kullanarak Veritabanı Şemasını Güncelleştirme

Bu görevde, modelinizdeki bir değişikliği algılamak ve veritabanını güncelleştirmek için gerekli kodu oluşturmak için Entity Framework Code First Migrations kullanacaksınız. TriviaQuestions varlığını yeni bir özellik ekleyerek güncelleştirebilirsiniz. Ardından yeni sütunu tabloya eklemek üzere yeni bir Geçiş oluşturmak için komutları çalıştıracaksınız.

  1. Çözüm Gezgini'da, Models klasöründe bulunan TriviaQuestion.cs dosyasına çift tıklayın.

  2. Aşağıdaki kod parçacığında gösterildiği gibi Hint adlı yeni bir özellik ekleyin.

    public class TriviaQuestion
    {
         public int Id { get; set; }
    
         [Required]
         public string Title { get; set; }
    
         public virtual List<TriviaOption> Options { get; set; }
    
         public string Hint { get; set; }
    }
    
  3. Paket Yöneticisi Konsolu'nda aşağıdaki komutu girin ve Enter tuşuna basın. Modelimizdeki değişikliği yansıtan yeni bir geçiş oluşturulur.

    Add-Migration QuestionHint
    

    Add-Migration

    Add-Migration

    Not

    Migration dosyası Yukarı ve Aşağı olmak üzere iki yöntemden oluşur.

    • Up yöntemi, uygulamamızın geçerli sürümünün veritabanına uygulanması gereken değişiklikleri belirtmek için kullanılır.
    • Down, Yukarı yöntemine eklediğimiz değişiklikleri tersine çevirmek için kullanılır.

    Veritabanı Geçişi veritabanını güncelleştirdiğinde, tüm geçişleri zaman damgası sırasında ve yalnızca son güncelleştirmeden sonra kullanılmayanları çalıştırır (_MigrationHistory tablosu hangi geçişlerin uygulandığını izler). Tüm geçişlerin Up yöntemi çağrılır ve veritabanında belirttiğimiz değişiklikleri yapar. Önceki bir geçişe geri dönmeye karar verirsek değişiklikleri ters sırada yinelemek için Down yöntemi çağrılır.

  4. Paket Yöneticisi Konsolu'nda aşağıdaki komutu girin ve Enter tuşuna basın.

    Update-Database -Verbose
    
  5. Update-Database komutunun çıkışı, aşağıdaki görüntüde gösterildiği gibi TriviaQuestions tablosuna yeni bir sütun eklemek için bir Alter Table SQL deyimi oluşturdu.

    Oluşturulan sütun SQL deyimini ekleme

    Oluşturulan sütun SQL deyimini ekleme

  6. SQL Server Nesne Gezgini'dadbo'yu yenileyin. TriviaQuestions tablosuna gidin ve yeni hint sütununun görüntülenip görüntülenmediğini denetleyin.

    Yeni İpucu Sütununu

    Yeni İpucu Sütunu gösteriliyor

  7. TriviaQuestion.cs düzenleyicisine geri döndüğünüzde, aşağıdaki kod parçacığında gösterildiği gibi Hint özelliğine bir StringLength kısıtlaması ekleyin.

    public class TriviaQuestion
    {
         public int Id { get; set; }
    
         [Required]
         public string Title { get; set; }
    
         public virtual List<TriviaOption> Options { get; set; }
    
         [StringLength(150)]
         public string Hint { get; set; }
    }
    
  8. Paket Yöneticisi Konsolu'nda aşağıdaki komutu girin ve Enter tuşuna basın.

    Add-Migration QuestionHintLength
    
  9. Paket Yöneticisi Konsolu'nda aşağıdaki komutu girin ve Enter tuşuna basın.

    Update-Database -Verbose
    
  10. Update-Database komutunun çıkışı, aşağıdaki görüntüde gösterildiği gibi TriviaQuestions tablosunun ipucu sütun türünü güncelleştirmek için bir Alter Table SQL deyimi oluşturdu.

    Alter column SQL deyimi oluşturuldu

    Alter column SQL deyimi oluşturuldu

  11. SQL Server Nesne Gezgini'dadbo'yu yenileyin. TriviaQuestions tablosuna gidin ve İpucu sütun türünün nvarchar(150) olup olmadığını denetleyin.

    Yeni kısıtlamayı gösterme Yeni

    Yeni kısıtlama gösteriliyor

Alıştırma 2: Web Uygulamasını Hazırlamaya Dağıtma

Azure App Service'de Web Apps, aşamalı yayımlama gerçekleştirmenizi sağlar. Aşamalı yayımlama, her varsayılan üretim sitesi için bir hazırlama sitesi yuvası oluşturur ve bu yuvaları çalışma süresi olmadan değiştirmenizi sağlar. Bu, genel kullanıma sunulmadan önce değişiklikleri doğrulamak, site içeriğini artımlı olarak tümleştirmek ve değişiklikler beklendiği gibi çalışmıyorsa geri almak için gerçekten yararlıdır.

Bu alıştırmada, Git kaynak denetimini kullanarak Geek Test uygulamasını web uygulamanızın hazırlama ortamına dağıtacaksınız. Bunu yapmak için web uygulamasını oluşturacak ve yönetim portalında gerekli bileşenleri sağlayacak, bir Git deposu yapılandıracak ve uygulama kaynak kodunu yerel bilgisayarınızdan hazırlama yuvasına göndereceksiniz. Ayrıca üretim veritabanınızı önceki alıştırmada oluşturduğunuz Code First Migrations güncelleştirebilirsiniz. Ardından uygulamayı bu test ortamında yürüterek işlemini doğrulayacaksınız. Beklentilerinize göre çalıştığından emin olduktan sonra uygulamayı üretime yükselteceksiniz.

Not

Aşamalı yayımlamayı etkinleştirmek için web uygulamasının Standart modda olması gerekir. Web uygulamanızı Standart moda değiştirirseniz ek ücret yansıtılacağını unutmayın. Fiyatlandırma hakkında daha fazla bilgi için bkz. fiyatlandırma App Service.

Görev 1 – Azure App Service'da Web Uygulaması Oluşturma

Bu görevde, yönetim portalından Azure App Service'de bir web uygulaması oluşturacaksınız. Ayrıca uygulama verilerini kalıcı hale getirmek için bir SQL Veritabanı yapılandıracak ve kaynak denetimi için yerel bir Git deposu yapılandıracaksınız.

  1. Azure yönetim portalına gidin ve aboneliğinizle ilişkili Microsoft hesabını kullanarak oturum açın.

    Azure yönetim portalında oturum açma

    Azure yönetim portalında oturum açma

  2. Sayfanın en altındaki komut çubuğunda Yeni'ye tıklayın.

    Yeni web uygulaması oluşturma

    Yeni web uygulaması oluşturma

  3. İşlem, Web Sitesi ve ardından Özel Oluştur'a tıklayın.

    Özel Oluşturma kullanarak yeni bir web uygulaması oluşturma Özel Oluşturma

    Özel Oluşturma kullanarak yeni bir web uygulaması oluşturma

  4. Yeni Web Sitesi - Özel Oluştur iletişim kutusunda, kullanılabilir bir URL sağlayın (örn. geek-quiz), Bölge açılan listesinden bir konum seçin ve Veritabanı açılan listesinde Yeni SQL veritabanı oluştur'u seçin. Son olarak, Kaynak denetiminden yayımla onay kutusunu seçin ve İleri'ye tıklayın.

    Yeni web uygulamasını özelleştirme

    Yeni web uygulamasını özelleştirme

  5. Veritabanı ayarları için aşağıdaki bilgileri belirtin:

    • Ad metin kutusuna bir veritabanı adı girin (örneğin, geekquiz_db)

    • Sunucu açılan listesinde Yeni SQL veritabanı sunucusu'nu seçin. Alternatif olarak, var olan bir sunucuyu seçebilirsiniz.

    • Veritabanı kullanıcı adı ve Veritabanı parolası kutularına SQL veritabanı sunucusunun yönetici kullanıcı adını ve parolasını girin. Önceden oluşturduğunuz bir sunucuyu seçerseniz parola istenir.

      Veritabanı ayarlarını belirtme

      Veritabanı ayarlarını belirtme

  6. Devam etmek için İleri'ye tıklayın.

  7. Kaynak denetiminin kullanması için Yerel Git deposu'na tıklayın ve İleri'ye tıklayın.

    Not

    Dağıtım kimlik bilgileri (kullanıcı adı ve parola) istenebilir.

    Git Deposu Oluşturma

    Git deposunu oluşturma

  8. Yeni web uygulaması oluşturulana kadar bekleyin.

    Not

    Varsayılan olarak, Azure azurewebsites.net'de etki alanları sağlar, aynı zamanda Azure yönetim portalını kullanarak özel etki alanları ayarlama olanağı da sunar. Ancak, özel etki alanlarını yalnızca belirli Azure App Service modlarını kullanıyorsanız yönetebilirsiniz.

    Azure App Service Ücretsiz, Paylaşılan, Temel, Standart ve Premium sürümlerde kullanılabilir. Ücretsiz ve Paylaşılan modda, tüm web uygulamaları çok kiracılı bir ortamda çalışır ve CPU, Bellek ve Ağ kullanımı kotalarına sahiptir. En fazla ücretsiz uygulama sayısı planınıza göre değişebilir. Standart modda, standart Azure işlem kaynaklarına karşılık gelen ayrılmış sanal makinelerde hangi uygulamaların çalıştırıldığını seçersiniz. Web uygulaması modu yapılandırmasını web uygulamanızın Ölçek menüsünde bulabilirsiniz.

    Azure App Service Modları

    Paylaşılan veya Standart modu kullanıyorsanız, uygulamanızın Yapılandır menüsüne gidip etki alanı adları altında Etki Alanlarını Yönet'e tıklayarak web uygulamanız için özel etki alanlarını yönetebilirsiniz.

    Etki Alanlarını Yönet

    Özel Etki Alanlarını Yönet

  9. Web uygulaması oluşturulduktan sonra URL sütununun altındaki bağlantıya tıklayarak yeni web uygulamasının çalışıp çalışmadığını denetleyin.

    Yeni web uygulamasına göz atma

    Yeni web uygulamasına göz atma

    çalışan web uygulaması

    çalışan web uygulaması

Görev 2 – Üretim SQL Veritabanı Oluşturma

Bu görevde, önceki görevde oluşturduğunuz Azure SQL Veritabanı örneğini hedefleyen veritabanını oluşturmak için Entity Framework Code First Migrations kullanacaksınız.

  1. Yönetim Portalı'nda, önceki görevde oluşturduğunuz web uygulamasına ve panoya gidin.

  2. Pano sayfasında, hızlı bakış bölümünün altındaki Bağlantı dizelerini görüntüle bağlantısına tıklayın.

    Bağlantı dizelerini görüntüleme

    Bağlantı dizelerini görüntüleme

  3. bağlantı dizesi değerini kopyalayın ve iletişim kutusunu kapatın.

    Azure Yönetim Portalı'nda Bağlantı Dizesi Azure Yönetim

    Azure Yönetim Portalı'nda Bağlantı Dizesi

  4. Azure'daki SQL veritabanlarının listesini görmek için SQL Veritabanları'na tıklayın

    SQL Veritabanı menüsü

    SQL Veritabanı menüsü

  5. Önceki görevde oluşturduğunuz veritabanını bulun ve Sunucu'ya tıklayın.

    SQL Veritabanı sunucusu

    SQL Veritabanı sunucusu

  6. Sunucunun Hızlı Başlangıç sayfasında Yapılandır'a tıklayın.

    Yapılandır menüsü

    Yapılandır menüsü

  7. İzin verilen IP adresleri bölümünde, IP'nizin SQL Veritabanı sunucusuna bağlanmasını sağlamak için İzin verilen IP adresleri bağlantısına ekle'ye tıklayın.

    İzin verilen IP adresleri

    İzin verilen IP adresleri

  8. Adımı tamamlamak için sayfanın alt kısmındaki Kaydet'e tıklayın.

  9. Visual Studio’ya geri dönün.

  10. Paket Yöneticisi Konsolu'nda aşağıdaki komutu yürüterek [YOUR-CONNECTION-STRING] yer tutucusunu Azure'dan kopyaladığınız bağlantı dizesi değiştirin

    Update-Database -Verbose -ConnectionString "[YOUR-CONNECTION-STRING]" -ConnectionProviderName "System.Data.SqlClient"
    

    Windows Azure SQL Veritabanı'Azure SQL Veritabanını

    veritabanı hedefleme Azure SQL Veritabanını güncelleştirme

Görev 3 – Git Kullanarak Hazırlamaya Geek Testi Dağıtma

Bu görevde, web uygulamanızda aşamalı yayımlamayı etkinleştirebilirsiniz. Ardından, Geek Test uygulamasını doğrudan yerel bilgisayarınızdan web uygulamanızın hazırlama ortamına yayımlamak için Git'i kullanacaksınız.

  1. Portala Geri dön ve yönetim sayfalarını görüntülemek için Ad sütununun altındaki web uygulamasının adına tıklayın.

    Web uygulaması yönetim sayfalarını açma

    Web uygulaması yönetim sayfalarını açma

  2. Ölçek sayfasına gidin. Genel bölümün altında yapılandırma için Standart'ı seçin ve komut çubuğunda Kaydet'e tıklayın.

    Not

    Geçerli bölgede ve abonelikte tüm web uygulamalarını Standart modda çalıştırmak için, Site Seç yapılandırmasında Tümünü Seç onay kutusunu seçili bırakın. Aksi takdirde, Tümünü Seç onay kutusunu temizleyin.

    Web uygulamasını Standart moda yükseltme

    Web Uygulamasını Standart moda yükseltme

  3. Değişiklikleri onaylamak için Evet'e tıklayın.

    Standart mod değişikliğini onaylama

    Standart moda geçmeyi onaylama

  4. Pano sayfasına gidin ve hızlı bakış bölümünün altında Aşamalı yayımlamayı etkinleştir'e tıklayın.

    Aşamalı yayımlamayı etkinleştirme

    Aşamalı yayımlamayı etkinleştirme

  5. Aşamalı yayımlamayı etkinleştirmek için Evet'e tıklayın.

    Aşamalı yayımlamayı onaylama Aşamalı

    Aşamalı yayımlamayı onaylama

  6. Web uygulamaları listesinde, hazırlama sitesi yuvasını görüntülemek için web uygulamanızın adının solundaki işareti genişletin. Web uygulamanızın adına ve ardından (hazırlama) sahiptir. Yönetim sayfasına gitmek için hazırlama sitesine tıklayın.

    Hazırlama web uygulamasına gezinme Hazırlama web uygulamasına

    Hazırlama uygulamasına gezinme

  7. Yönetim sayfasının başka bir web uygulamasının yönetim sayfası gibi göründüğüne dikkat edin. Dağıtımlar sayfasına gidin ve Git URL değerini kopyalayın. Bu alıştırmanın ilerleyen bölümlerinde kullanacaksınız.

    Git URL değerini kopyalama

    Git URL değerini kopyalama

  8. Yeni bir Git Bash konsolu açın ve aşağıdaki komutları yürütür. [YOUR-APPLICATION-PATH] yer tutucusunu, bu laboratuvarın Source\Ex1-DeployingWebSiteToStaging\Begin klasöründe bulunan GeekQuiz çözümünün yoluyla güncelleştirin.

    cd "[YOUR-APPLICATION-PATH]"
    git init
    git config --global user.email "{username@example.com}"
    git config --global user.name "{your-user-name}"
    git add .
    git commit -m "Initial commit"
    

    Git başlatma ve ilk işleme

    Git başlatma ve ilk işleme

  9. Web uygulamanızı uzak Git deposuna göndermek için aşağıdaki komutu çalıştırın. Yer tutucuyu yönetim portalından aldığınız URL ile değiştirin. Dağıtım parolanızı girmeniz istenir.

    git remote add azure [GIT-CLONE-URL]
    git push azure master
    

    Windows Azure'a gönderme

    Azure'a gönderme

    Not

    İçeriği bir web uygulamasının FTP konağına veya GIT deposuna dağıttığınızda, web uygulamasının Hızlı Başlangıç veya Pano yönetim sayfalarından oluşturduğunuz dağıtım kimlik bilgilerini kullanarak kimlik doğrulaması yapmanız gerekir. Dağıtım kimlik bilgilerinizi bilmiyorsanız yönetim portalını kullanarak bunları kolayca sıfırlayabilirsiniz. Web uygulaması Panosu sayfasını açın ve Dağıtım kimlik bilgilerinizi sıfırlayın bağlantısına tıklayın. Yeni bir parola girin ve Tamam'a tıklayın. Dağıtım kimlik bilgileri, aboneliğinizle ilişkili tüm web uygulamalarıyla kullanılmak üzere geçerlidir.

  10. Web uygulamasının Azure'a başarıyla gönderildiğini doğrulamak için yönetim portalına geri dönün ve Web siteleri'ne tıklayın.

  11. Web uygulamanızı bulun ve hazırlama sitesi yuvasını görüntülemek için girdiyi genişletin. Yönetim sayfasına gitmek için Adı'na tıklayın.

  12. Dağıtım geçmişini görmek için Dağıtımlar'a tıklayın. "İlk İşleme"nize sahip bir Etkin Dağıtım olduğunu doğrulayın.

    Etkin dağıtım

    Etkin dağıtım

  13. Son olarak, web uygulamasına gitmek için komut çubuğunda Gözat'a tıklayın.

    Web uygulamasına göz atma

    Web uygulamasına göz atma

  14. Uygulama başarıyla dağıtılırsa Geek Test oturum açma sayfasını görürsünüz.

    Not

    Dağıtılan uygulamanın adres URL'si, web uygulamanızın adını ve ardından -staging öğesini içerir.

    Hazırlama ortamında çalışan uygulama

    Hazırlama ortamında çalışan uygulama

  15. Uygulamayı keşfetmek istiyorsanız, yeni bir kullanıcı kaydetmek için Kaydet'e tıklayın. Kullanıcı adı, e-posta adresi ve parola girerek hesap ayrıntılarını tamamlayın. Ardından uygulama testin ilk sorusunu gösterir. Beklendiği gibi çalıştığından emin olmak için birkaç soruyu yanıtlayın.

    Kullanıma hazır uygulama

    Kullanıma hazır uygulama

Görev 4 – Web Uygulamasını Üretime Yükseltme

Web uygulamasının hazırlama ortamında düzgün çalıştığını doğruladığınıza göre, uygulamayı üretim ortamına yükseltmeye hazırsınız. Bu görevde, hazırlama sitesi yuvasını üretim sitesi yuvasıyla değiştireceğiz.

  1. Yönetim portalına Geri dön ve hazırlama sitesi yuvasını seçin. Komut çubuğunda Değiştir'e tıklayın.

    Üretime değiştirme

    Üretime değiştirme

  2. Değiştirme işlemine devam etmek için onay iletişim kutusunda Evet'e tıklayın. Azure, üretim sitesinin içeriğini hazırlama sitesinin içeriğiyle hemen değiştirecektir.

    Not

    Hazırlanan sürümdeki bazı ayarlar otomatik olarak üretim sürümüne kopyalanır (örneğin, bağlantı dizesi geçersiz kılmalar, işleyici eşlemeleri vb.) ancak diğer ayarlar değişmez (örneğin DNS uç noktaları, SSL bağlamaları vb.).

    Değiştirme işlemini onaylama

    Değiştirme işlemini onaylama

  3. Değiştirme işlemi tamamlandıktan sonra üretim yuvasını seçin ve komut çubuğunda Gözat'a tıklayarak üretim sitesini açın. Adres çubuğundaki URL'ye dikkat edin.

    Not

    Önbelleği temizlemek için tarayıcınızı yenilemeniz gerekebilir. Internet Explorer'da CTRL+R tuşlarına basarak bunu yapabilirsiniz.

    Üretim ortamında çalışan web uygulaması

  4. GitBash konsolunda, üretim yuvasını hedeflemek için yerel Git deposunun uzak URL'sini güncelleştirin. Bunu yapmak için aşağıdaki komutu çalıştırarak yer tutucuları dağıtım kullanıcı adınız ve web uygulamanızın adıyla değiştirin.

    Not

    Aşağıdaki alıştırmalarda, laboratuvarın basitliği için hazırlık yapmak yerine değişiklikleri üretim alanına gönderecektir. Gerçek dünya senaryosunda, üretime yükseltmeden önce hazırlama ortamındaki değişiklikleri doğrulamanız önerilir.

    git remote set-url azure https://<your-user>@<your-web-site>.scm.azurewebsites.net:443/<your-web-site>.git
    

Alıştırma 3: Üretimde Dağıtım Geri Alma Gerçekleştirme

Örneğin , Ücretsiz veya Paylaşılan modla çalışıyorsanız, hazırlama ve üretim arasında çalışırken değiştirme gerçekleştirmek için bir hazırlama yuvanız olmadığı senaryolar vardır. Bu senaryolarda, üretim ortamına dağıtmadan önce uygulamanızı yerel ortamda veya uzak bir sitede test etmelisiniz. Ancak, test aşaması sırasında algılanmayan bir sorun üretim alanında ortaya çıkabilir. Bu durumda, uygulamanın önceki ve daha kararlı bir sürümüne mümkün olan en kısa sürede kolayca geçiş yapmak için bir mekanizmaya sahip olmak önemlidir.

Azure App Service'da, yönetim portalında sağlanan yeniden dağıtma eylemi sayesinde kaynak denetiminden sürekli dağıtım bunu mümkün kılar. Azure, depoya gönderilen işlemelerle ilişkili dağıtımları izler ve herhangi bir zamanda önceki dağıtımlarınızdan herhangi birini kullanarak uygulamanızı yeniden dağıtma seçeneği sunar.

Bu alıştırmada , Geek Test uygulamasında kasıtlı olarak bir hataya neden olan kodda bir değişiklik yapacaksınız. Hatayı görmek için uygulamayı üretime dağıtacak ve ardından önceki duruma geri dönmek için yeniden dağıtma özelliğinden yararlanacaksınız.

Görev 1 – Geek Test Uygulamasını Güncelleştirme

Bu görevde, veritabanından seçilen test seçeneğini alan mantığın bir kısmını yeni bir yönteme ayıklamak için TriviaController sınıfının küçük bir kodunu yeniden düzenleyeceğiz.

  1. Önceki alıştırmadan GeekQuiz çözümüyle Visual Studio örneğine geçin.

  2. Çözüm Gezgini'daControllers klasörünün içindeki TriviaController.cs dosyasını açın.

  3. StoreAsync yöntemini bulun ve aşağıdaki şekilde vurgulanan kodu seçin.

    Kodu seçme

    Kodu seçme

  4. Seçili koda sağ tıklayın, Yeniden Düzenle menüsünü genişletin ve Yöntemi Ayıkla... seçeneğini belirleyin.

    Kodu yeni bir yöntem olarak ayıklama

    Ayıklama Yöntemi Seçme

  5. Ayıklama Yöntemi iletişim kutusunda yeni yöntemi MatchesOption olarak adlandırın ve Tamam'a tıklayın.

    Yöntem adını belirtme

    Ayıklanan yöntemin adını belirtme

  6. Seçili kod daha sonra MatchesOption yöntemine ayıklanır. Sonuçta elde edilen kod aşağıdaki kod parçacığında gösterilir.

    private async Task<bool> StoreAsync(TriviaAnswer answer)
    {
        this.db.TriviaAnswers.Add(answer);
    
        await this.db.SaveChangesAsync();
        var selectedOption = await this.db.TriviaOptions.FirstOrDefaultAsync(o => MatchesOption(answer, o));
    
        return selectedOption.IsCorrect;
    }
    
    private static bool MatchesOption(TriviaAnswer answer, TriviaOption o)
    {
        return o.Id == answer.OptionId
                && o.QuestionId == answer.QuestionId;
    }
    
  7. Değişiklikleri kaydetmek için CTRL + S tuşlarına basın.

Görev 2 – Geek Test Uygulamasını Yeniden Dağıtma

Şimdi önceki görevde yaptığınız değişiklikleri depoya göndererek üretim ortamına yeni bir dağıtım tetikleyeceksiniz. Ardından Internet Explorer tarafından sağlanan F12 geliştirme araçlarını kullanarak bir sorunla karşınıza çıkacak ve ardından Azure yönetim portalından önceki dağıtıma geri alma işlemi gerçekleştireceksiniz.

  1. Güncelleştirilmiş uygulamayı Azure App Service dağıtmak için yeni bir Git Bash konsolu açın.

  2. Değişiklikleri Azure'a göndermek için aşağıdaki komutları yürütebilirsiniz. [YOUR-APPLICATION-PATH] yer tutucusunu GeekQuiz çözümünün yolu ile güncelleştirin. Dağıtım parolanız istenir.

    cd "[YOUR-APPLICATION-PATH]"
    git add .
    git commit -m "Refactored answer check"
    git push azure master
    

    Yeniden düzenlenmiş kodu Azure'a gönderme

    Yeniden düzenlenmiş kodu Azure'a gönderme

  3. Internet Explorer'ı açın ve web uygulamanıza gidin (örneğin http://<your-web-site>.azurewebsites.net). Önceden oluşturulmuş kimlik bilgilerini kullanarak oturum açın.

  4. Geliştirme araçlarını başlatmak için F12 tuşuna basın, sekmesini seçin ve kayıt işlemini başlatmak için Yürüt düğmesine tıklayın.

    Ekran görüntüsü, işaretçinin Dağıtım geri alma işlemi kapsamında ağ trafiği yakalamayı etkinleştir'i seçerek Yunanca Test web uygulamasını gösterir.

    Ağ kaydını başlatma

  5. Testin herhangi bir seçeneğini belirleyin. Hiçbir şey olmadığını göreceksiniz.

  6. F12 penceresinde POST HTTP isteğine karşılık gelen giriş bir HTTP 500 sonucu gösterir.

    HTTP 500 hatası

    HTTP 500 hatası

  7. Konsol sekmesini seçin. Nedeninin ayrıntılarıyla birlikte bir hata günlüğe kaydedilir.

    Günlüğe kaydedilen hata

    Günlüğe kaydedilen hata

  8. Hatanın ayrıntılar bölümünü bulun. Bu hatanın nedeni, önceki adımlarda işlediğiniz kod yeniden düzenlemesidir.

    Details: LINQ to Entities does not recognize the method 'Boolean MatchesOption ....

  9. Tarayıcıyı kapatmayın.

  10. Yeni bir tarayıcı örneğinde [Azure yönetim portalı](/azure/azure-portal/azure-portal-overview) adresine gidin ve aboneliğinizle ilişkili Microsoft hesabını kullanarak oturum açın.

  11. Web Siteleri'ni seçin ve Alıştırma 2'de oluşturduğunuz web uygulamasına tıklayın.

  12. Dağıtımlar sayfasına gidin. Gerçekleştirilen tüm işlemelerin dağıtım geçmişinde listelendiğine dikkat edin.

    Mevcut dağıtımların listesi

    Mevcut dağıtımların listesi

  13. Önceki işlemeyi seçin ve komut çubuğunda Yeniden Dağıt'a tıklayın.

    Önceki işlemeyi yeniden dağıtma

    Önceki işlemeyi yeniden dağıtma

  14. Onaylamanız istendiğinde Evet'e tıklayın.

    Yeniden dağıtmayı onaylama

  15. Dağıtım tamamlandığında web uygulamanızla tarayıcı örneğine dönün ve CTRL + F5 tuşlarına basın.

  16. Seçeneklerden herhangi birine tıklayın. Çevirme animasyonu şimdi gerçekleşir ve sonuç (doğru/yanlış) görüntülenir.

  17. (İsteğe bağlı) Git Bash konsoluna geçin ve önceki işlemeye dönmek için aşağıdaki komutları yürütür.

    Not

    Bu komutlar, Git deposundaki hatalı işlemede yapılan tüm değişiklikleri geri alan yeni bir işleme oluşturur. Azure daha sonra yeni işlemeyi kullanarak uygulamayı yeniden dağıtır.

    git revert HEAD --no-edit
    git push azure master
    

Alıştırma 4: Azure Depolama Kullanarak Ölçeklendirme

Bloblar , büyük miktarlarda yapılandırılmamış metinleri veya video, ses ve görüntü gibi ikili verileri depolamanın en basit yoludur. Uygulamanızın statik içeriğini Depolama'ya taşımak, görüntüleri veya belgeleri doğrudan tarayıcıya sunarak uygulamanızı ölçeklendirmenize yardımcı olur.

Bu alıştırmada, uygulamanızın statik içeriğini bir Blob kapsayıcısına taşıyacaksınız. Ardından uygulamanızı, içeriğinizi Blob kapsayıcısına yeniden yönlendirmek için Web.configbir ASP.NET URL yeniden yazma kuralı ekleyecek şekilde yapılandıracaksınız.

Görev 1 – Azure Depolama Hesabı Oluşturma

Bu görevde, yönetim portalını kullanarak yeni bir depolama hesabı oluşturmayı öğreneceksiniz.

  1. Azure yönetim portalına gidin ve aboneliğinizle ilişkili Microsoft hesabını kullanarak oturum açın.

  2. Yeni |'yi seçin Veri Hizmetleri | Depolama | Yeni bir depolama hesabı oluşturmaya başlamak için Hızlı Oluştur'u seçin. Hesap için benzersiz bir ad girin ve listeden bir Bölge seçin. Devam etmek için Depolama Hesabı Oluştur'a tıklayın.

    Yeni Depolama Hesabı Oluşturma

    Yeni depolama hesabı oluşturma

  3. Depolama bölümünde, aşağıdaki adıma devam etmek için yeni depolama hesabının durumunun Çevrimiçi olarak değişmesini bekleyin.

    Depolama Hesabı oluşturuldu

    Oluşturulan Depolama Hesabı

  4. Depolama hesabı adına tıklayın ve ardından sayfanın üst kısmındaki Pano bağlantısına tıklayın. Pano sayfası, hesabın durumu ve uygulamalarınızda kullanılabilecek hizmet uç noktaları hakkında bilgi sağlar.

    Depolama Hesabı Panosunu Görüntüleme

    Depolama Hesabı Panosunu Görüntüleme

  5. Gezinti çubuğunda Erişim Tuşlarını Yönet düğmesine tıklayın.

    Erişim Anahtarlarını Yönet düğmesi

    Erişim Tuşlarını Yönet düğmesi

  6. Erişim Anahtarlarını Yönet iletişim kutusunda, Depolama Hesabı Adı ve Birincil Erişim Anahtarı'nı kopyalayın; bu anahtarlara aşağıdaki alıştırmada ihtiyacınız olacaktır. Ardından iletişim kutusunu kapatın.

    Erişim Anahtarını Yönet iletişim kutusu

    Erişim Anahtarını Yönet iletişim kutusu

Görev 2 – Azure Blob Depolama'a Varlık Yükleme

Bu görevde, depolama hesabınıza bağlanmak için Visual Studio'daki Sunucu Gezgini penceresini kullanacaksınız. Ardından bir blob kapsayıcısı oluşturacak ve Geek Quiz logosunu içeren bir dosyayı kapsayıcıya yükleyebilirsiniz.

  1. Önceki alıştırmadan GeekQuiz çözümüyle Visual Studio örneğine geçin.

  2. Menü çubuğunda Görünüm'ü seçip Sunucu Gezgini'ne tıklayın.

  3. Sunucu Gezgini'nde Azure düğümüne sağ tıklayın ve Azure'a bağlan... öğesini seçin. Aboneliğinizle ilişkili Microsoft hesabını kullanarak oturum açın.

    Windows Azure'a bağlanma

    Azure'a bağlanma

  4. Azure düğümünü genişletin, Depolama'ya sağ tıklayın ve Dış Depolama Ekle... seçeneğini belirleyin.

  5. Yeni Depolama Hesabı Ekle iletişim kutusunda, önceki görevde aldığınız Hesap adı ve Hesap anahtarını girin ve Tamam'a tıklayın.

    Yeni Depolama Hesabı Ekle iletişim kutusu

    Yeni Depolama Hesabı Ekle iletişim kutusu

  6. Depolama hesabınız Depolama düğümü altında görünmelidir. Depolama hesabınızı genişletin, Bloblar'a sağ tıklayın ve Blob Kapsayıcısı Oluştur... öğesini seçin.

    Blob Kapsayıcısı Oluşturma

    Blob Kapsayıcısı Oluşturma

  7. Blob Kapsayıcısı Oluştur iletişim kutusunda blob kapsayıcısı için bir ad girin ve Tamam'a tıklayın.

    Blob Kapsayıcısı Oluştur iletişim kutusu

    Blob Kapsayıcısı Oluştur iletişim kutusu

  8. Yeni blob kapsayıcısı Bloblar düğümüne eklenmelidir. Kapsayıcıyı genel yapmak için kapsayıcıdaki erişim izinlerini değiştirin. Bunu yapmak için images kapsayıcısına sağ tıklayın ve Özellikler'i seçin.

    images kapsayıcı özellikleri

    Images kapsayıcı özellikleri

  9. Özellikler penceresinde Genel Okuma Erişimi'niKapsayıcı olarak ayarlayın.

    Genel okuma erişimi özelliğini değiştirme

    Genel okuma erişimi özelliğini değiştirme

  10. Ortak erişim özelliğini değiştirmek istediğinizden emin olup olmadığınız sorulduğunda Evet'e tıklayın.

    Microsoft Visual Studio uyarısı

    Microsoft Visual Studio uyarısı

  11. Sunucu Gezgini'ndeimages blob kapsayıcısını sağ tıklatın ve Blob Kapsayıcısını Görüntüle'yi seçin.

    Blob Kapsayıcısı Görüntüleme

    Blob Kapsayıcıyı Görüntüle

  12. Images kapsayıcısı yeni bir pencerede açılmalı ve giriş içermeyen bir gösterge gösterilmelidir. Blob kapsayıcısına dosya yüklemek için karşıya yükle simgesine tıklayın.

    Girdisi olmayan Images

    Girdisi olmayan Images kapsayıcısı

  13. Blobu Karşıya Yükle iletişim kutusunda laboratuvarın Varlıklar klasörüne gidin. logo-big.png dosyasını seçin ve Aç'a tıklayın.

  14. Dosya karşıya yüklenene kadar bekleyin. Karşıya yükleme tamamlandığında, dosyanın images kapsayıcısında listelenmesi gerekir. Dosya girdisine sağ tıklayın ve URL'yi Kopyala'yı seçin.

    Blob URL'sini kopyalama

    Blob URL'sini kopyalama

  15. Internet Explorer'ı açın ve URL'yi yapıştırın. Aşağıdaki görüntü tarayıcıda gösterilmelidir.

     Windows Blob Depolama'dan görüntülogo-big.png

    Azure Blob Depolama'danlogo-big.png resim

Görev 3 – Çözümü Azure Blob Depolama Statik İçeriği Kullanacak Şekilde Güncelleştirme

Bu görevde,web.config dosyasına bir ASP.NET URL yeniden yazma kuralı ekleyerek GeekQuiz çözümünü Azure Blob Depolama yüklenen görüntüyü kullanacak şekilde yapılandıracaksınız (web uygulamasında bulunan görüntü yerine).

  1. Visual Studio'da, GeekQuiz projesinin içinde Web.config dosyasını açın ve system.webServer> öğesini bulun<.

  2. Bir URL yeniden yazma kuralı eklemek için aşağıdaki kodu ekleyin ve yer tutucuyu depolama hesabı adınızla güncelleştirin.

    (Kod Parçacığı - WebSitesInProduction - Ex4 - UrlRewriteRule)

    <system.webServer>
        <rewrite>
            <rules>
                <rule name="redirect-images" stopProcessing="true">
                    <match url="img/(.*)"/>
                    <action type="Redirect" url="http://[YOUR-STORAGE-ACCOUNT].blob.core.windows.net/images/{R:1}"></action>
                </rule>
            </rules>
        </rewrite>
    

    Not

    URL yeniden yazma, gelen bir Web isteğini kesme ve isteği farklı bir kaynağa yeniden yönlendirme işlemidir. URL yeniden yazma kuralları, yeniden yazma altyapısına bir isteğin ne zaman yeniden yönlendirilmesi gerektiğini ve nereye yönlendirilmeleri gerektiğini bildirir. Yeniden yazma kuralı iki dizeden oluşur: istenen URL'de aranacak desen (genellikle normal ifadeler kullanılarak) ve bulunursa deseni değiştirecek dize. Daha fazla bilgi için bkz. ASP.NET'de URL Yeniden Yazma.

  3. Değişiklikleri kaydetmek için CTRL + S tuşlarına basın.

  4. Güncelleştirilmiş uygulamayı Azure App Service dağıtmak için yeni bir Git Bash konsolu açın.

  5. Değişiklikleri Azure'a göndermek için aşağıdaki komutları yürütebilirsiniz. [YOUR-APPLICATION-PATH] yer tutucusunu GeekQuiz çözümünün yolu ile güncelleştirin. Dağıtım parolanız istenir.

    cd "[YOUR-APPLICATION-PATH]"
    git add .
    git commit -m "Added URL rewrite rule in web.config file"
    git push azure master
    

    Güncelleştirmeyi Azure'a dağıtma

    Güncelleştirmeyi Azure'a dağıtma

Görev 4 – Doğrulama

Bu görevde, Geek Test uygulamasına göz atmak ve resimler için URL yeniden yazma kuralının çalışıp çalışmadığını denetlemek için Internet Explorer'ı kullanacaksınız ve Azure Blob Depolama'da barındırılan görüntüye yönlendirilirsiniz.

  1. Internet Explorer'ı açın ve web uygulamanıza gidin (örneğin http://<your-web-site>.azurewebsites.net). Önceden oluşturulmuş kimlik bilgilerini kullanarak oturum açın.

    Geek Test web uygulamasını resimle gösterme

    Geek Test web uygulamasını resimle gösterme

  2. Geliştirme araçlarını başlatmak için F12 tuşuna basın, sekmesini seçin ve kaydı başlatın.

    Ölçeklendirme yordamını doğrulamanın bir parçası olarak ağ trafiği yakalamayı etkinleştir'i seçen işaretçinin gösterildiği Yunan Testi web uygulamasını gösteren ekran görüntüsü.

    Ağ kaydını başlatma

  3. Web sayfasını yenilemek için CTRL + F5 tuşlarına basın.

  4. Sayfanın yüklenmesi tamamlandıktan sonra, /img/logo-big.png URL'si için HTTP 301 sonucu (yeniden yönlendirme) içeren bir HTTP isteği ve HTTP 200 sonucuna sahip başka bir URL isteği http://[YOUR-STORAGE-ACCOUNT].blob.core.windows.net/images/logo-big.png görmeniz gerekir.

    URL yeniden yönlendirmesini doğrulama

    URL yeniden yönlendirmesini doğrulama

Alıştırma 5: Web Apps için Otomatik Ölçeklendirmeyi Kullanma

Not

Yalnızca Visual Studio 2013 Ultimate Edition için kullanılabilen Web Yükü & Performans Testi desteği gerektirdiğinden bu alıştırma isteğe bağlıdır. Belirli Visual Studio 2013 özellikleri hakkında daha fazla bilgi için burada sürümleri karşılaştırın.

Azure App Service Web Apps, Standart Modda çalışan web uygulamaları için Otomatik Ölçeklendirme özelliğini sağlar. Otomatik ölçeklendirme, Azure'ın yüke bağlı olarak web uygulamanızın örnek sayısını otomatik olarak ölçeklendirmesine olanak tanır. Otomatik Ölçeklendirme etkinleştirildiğinde Azure, web uygulamanızın CPU'sunu beş dakikada bir denetler ve bu noktada gereken örnekleri ekler. CPU kullanımı düşükse Azure, web uygulamanızın performansının düşürülmediğinden emin olmak için örnekleri iki saatte bir kaldırır.

Bu alıştırmada, Geek Test web uygulaması için Otomatik Ölçeklendirme özelliğini yapılandırmak için gereken adımların üzerinden geçeceksiniz. Bir örnek yükseltmesini tetikleyecek kadar CPU yükü oluşturmak için bir Visual Studio yük testi çalıştırarak bu özelliği doğrulayacağız.

Görev 1 – CPU Ölçümüne Göre Otomatik Ölçeklendirmeyi Yapılandırma

Bu görevde, Alıştırma 2'de oluşturduğunuz web uygulaması için Otomatik Ölçeklendirme özelliğini etkinleştirmek üzere Azure yönetim portalını kullanacaksınız.

  1. Azure yönetim portalındaWeb siteleri'ni seçin ve Alıştırma 2'de oluşturduğunuz web uygulamasına tıklayın.

  2. Ölçek sayfasına gidin. Kapasite bölümünün altında Ölçüme Göre Ölçeklendir yapılandırması için CPU'yı seçin.

    Not

    CPU'ya göre ölçeklendirme yaparken Azure, CPU kullanımı değiştiğinde uygulamanın kullandığı örnek sayısını dinamik olarak ayarlar.

    CPU ile ölçeklendirmeyi

    CPU'ya göre ölçeklendirmeyi seçme

  3. Hedef CPU yapılandırmasını yüzde 20-40 olarak değiştirin.

    Not

    Bu aralık, web uygulamanız için ortalama CPU kullanımını temsil eder. Azure, web uygulamanızı bu aralıkta tutmak için örnekler ekler veya kaldırır. Ölçeklendirme için kullanılan en düşük ve en fazla örnek sayısı , Örnek Sayısı yapılandırmasında belirtilir. Azure hiçbir zaman bu sınırın üstüne veya ötesine geçmeyecektir.

    Varsayılan Hedef CPU değerleri yalnızca bu laboratuvarın amaçları doğrultusunda değiştirilir. CPU aralığını küçük değerlerle yapılandırarak, uygulamaya orta düzeyde bir yük yerleştirildiğinde Otomatik Ölçeklendirme'yi tetikleme olasılığını artırırsınız.

    Hedef CPU'yu yüzde 20 ile 40 arasında olacak şekilde

    Hedef CPU'yu yüzde 20 ile 40 arasında olacak şekilde değiştirme

  4. Değişiklikleri kaydetmek için komut çubuğunda Kaydet'e tıklayın.

Görev 2 – Visual Studio ile Yük Testi

Otomatik Ölçeklendirme yapılandırıldığına göre, web uygulamanızda cpu yükü oluşturmak için Visual Studio'da bir Web Performansı ve Yük Testi Projesi oluşturacaksınız.

  1. Visual Studio Ultimate 2013 açın ve Dosya | öğesini seçin Yeni | Proje... yeni bir çözüm başlatmak için.

    Yeni proje oluşturma

    Yeni proje oluşturma

  2. Yeni Proje iletişim kutusunda, Visual C# | altında Web Performansı ve Yük Testi Projesi'ni seçin Test sekmesi. .NET Framework 4.5'in seçili olduğundan emin olun, projeyi WebAndLoadTestProject olarak adlandırın, bir Konum seçin ve Tamam'a tıklayın.

    Yeni Web ve Yük Testi projesi oluşturma

    Yeni Web ve Yük Testi projesi oluşturma

  3. WebTest1.webtest içinde WebTest1 düğümüne sağ tıklayın ve İstek Ekle'ye tıklayın.

    WebTest1'e istek ekleme

    Url özelliğini değiştirme

  4. WebTest1.webtest penceresinde WebTest1'e sağ tıklayın ve Döngü Ekle...'ye tıklayın.

    WebTest1'e döngü ekleme

    WebTest1'e döngü ekleme

  5. Döngüye Koşullu Kural ve Öğeler Ekle iletişim kutusunda Döngü İçin kuralını seçin ve aşağıdaki özellikleri değiştirin.

    1. Sonlandırıcı değer: 1000

    2. Bağlam Parametresi Adı: Yineleyici

    3. Artım Değeri: 1

      For Loop kuralını seçme ve özellikleri güncelleştirme

      For Loop kuralını seçme ve özellikleri güncelleştirme

  6. Döngüdeki öğeler bölümünde, döngü için ilk ve son öğe olmak üzere daha önce oluşturduğunuz isteği seçin. Devam etmek için Tamam’ tıklayın.

    Döngü için ilk ve son öğeleri seçme Döngü

    Döngü için ilk ve son öğeleri seçme

  7. Çözüm Gezgini'daWebAndLoadTestProject projesine sağ tıklayın, Ekle menüsünü genişletin ve Yük Testi... öğesini seçin.

    WebAndLoadTestProject projesine Yük Testi Ekleme

    WebAndLoadTestProject projesine Yük Testi Ekleme

  8. Yeni Yük Testi Sihirbazı iletişim kutusunda İleri'ye tıklayın.

    Yeni Yük Testi Sihirbazı

    Yeni Yük Testi Sihirbazı

  9. Senaryo sayfasında Düşünme zamanlarını kullanma'yı seçin ve İleri'ye tıklayın.

    Düşünme zamanlarını kullanmamayı seçme

    Düşünme zamanlarını kullanmamayı seçme

  10. Yük Düzeni sayfasında Sabit Yükleme seçeneğinin belirlendiğinden emin olun. Kullanıcı Sayısı ayarını 250 kullanıcı olarak değiştirin ve İleri'ye tıklayın.

    Kullanıcı sayısını 250 olarak değiştirme

    Kullanıcı sayısını 250 olarak değiştirme

  11. Test Karışımı Modeli sayfasında Sıralı test sırasına göre'yi seçin ve İleri'ye tıklayın.

    Test karışımı modelini seçme

    Test karışımı modelini seçme

  12. Test Karışımı Modeli sayfasında Ekle... öğesine tıklayarak karmaya bir test ekleyin.

    Test karışımına test ekleme Test karışımına

    Test karışımına test ekleme

  13. Test Ekle iletişim kutusunda WebTest1'e çift tıklayarak testi Seçili testler listesine ekleyin. Devam etmek için Tamam’ tıklayın.

    WebTest1 testini ekleme

    WebTest1 testini ekleme

  14. Test Karışımı sayfasına geri dönüp İleri'ye tıklayın.

    Test Karışımı sayfasını tamamlama

    Test Karışımı sayfasını tamamlama

  15. Ağ Karışımı sayfasında İleri'ye tıklayın.

    Ağ Karışımı sayfasında İleri'ye tıklama Ağ Karışımı

    Ağ Karışımı sayfasında İleri'ye tıklama

  16. Tarayıcı Karışımı sayfasında, tarayıcı türü olarak Internet Explorer 10.0'ı seçin ve İleri'ye tıklayın.

    Tarayıcı türünü seçme

    Tarayıcı türünü seçme

  17. Sayaç Kümeleri sayfasında İleri'ye tıklayın.

    Sayaç Kümeleri sayfasında İleri'ye tıklayarak Sayaç Kümeleri sayfasında

    Sayaç Kümeleri sayfasında İleri'ye tıklama

  18. Çalıştırma Ayarları sayfasında Yük testi süresini5 dakika olarak ayarlayın ve Son'a tıklayın.

    Yük testi süresini 5 dakika olarak ayarlama

    Yük testi süresini 5 dakika olarak ayarlama

  19. Çözüm Gezgini'da, test ayarlarını keşfetmek için Local.settings dosyasına çift tıklayın. Varsayılan olarak, Visual Studio testleri çalıştırmak için yerel bilgisayarınızı kullanır.

    Not

    Alternatif olarak, Azure Test Plans kullanarak test projenizi yük testlerini bulutta çalıştıracak şekilde yapılandırabilirsiniz. Azure Test Plans, CPU kapasitesi, kullanılabilir bellek ve ağ bant genişliği gibi yerel ortam kısıtlamalarını önleyerek daha gerçekçi bir yük simülasyonu sağlayan bulut tabanlı bir yük testi hizmeti sağlar. Yük testlerini çalıştırmak için Azure Test Plans kullanma hakkında daha fazla bilgi için bkz. Yük testi senaryoları.

    Test ayarları

Görev 3 – Otomatik Ölçeklendirme Doğrulama

Şimdi önceki görevde oluşturduğunuz yük testini yürütecek ve web uygulamanızın yük altında nasıl davrandığını göreceksiniz.

  1. Çözüm Gezgini'daLoadTest1.loadtest'e çift tıklayarak yük testini açın.

    LoadTest1.loadtest Açılıyor

    LoadTest1.loadtest açılıyor

  2. LoadTest1.loadtest penceresinde, yük testini çalıştırmak için araç kutusundaki ilk düğmeye tıklayın.

    Yük testini çalıştırma

    Yük testini çalıştırma

  3. Yük testi tamamlanana kadar bekleyin.

    Not

    Yük testi, web uygulamasına aynı anda istek gönderen birden çok kullanıcının simülasyonunu oluşturur. Test çalışırken, kullanılabilir sayaçları izleyerek yük testi çalıştırmanızla ilgili hataları, uyarıları veya diğer bilgileri algılayabilirsiniz.

    Yük testi tamamlanana çalışıyor

    Yük testi çalışıyor

  4. Test tamamlandıktan sonra yönetim portalına dönün ve web uygulamanızın Ölçek sayfasına gidin. Kapasite bölümünün altında, grafikte yeni bir örneğin otomatik olarak dağıtıldığını görmeniz gerekir.

    Yeni örnek otomatik olarak dağıtıldı

    Yeni örnek otomatik olarak dağıtıldı

    Not

    Değişikliklerin grafikte görünmesi birkaç dakika sürebilir (sayfayı yenilemek için düzenli aralıklarla CTRL + F5 tuşlarına basın). Herhangi bir değişiklik görmüyorsanız aşağıdakileri deneyebilirsiniz:

    • Yük testinin süresini artırın (ör. 10 dakikaya kadar)
    • Web uygulamanızın Otomatik Ölçeklendirme yapılandırmasında Hedef CPU aralığının en yüksek ve en düşük değerlerini azaltın
    • yük testini Azure Test Plans ile bulutta çalıştırın. Burada daha fazla bilgi bulabilirsiniz

Özet

Bu uygulamalı laboratuvarda uygulamanızı ayarlamayı ve Azure'da üretim web uygulamalarına dağıtmayı öğrendiniz. Entity Framework Code First Migrations kullanarak veritabanlarınızı algılayıp güncelleştirerek başladınız, ardından Git kullanarak sitenizin yeni sürümlerini dağıtıp sitenizin en son kararlı sürümüne geri alma işlemleri gerçekleştirerek devam ettiniz. Ayrıca, statik içeriğinizi bir Blob kapsayıcısına taşımak için Depolama'yı kullanarak uygulamanızı ölçeklendirmeyi öğrendiniz.