Microsoft Azure klasik Sanal Makine (VM) Mimarisinin İş Akışı

Önemli

Cloud Services (klasik), 1 Eylül 2024 itibarıyla tüm müşteriler için kullanım dışı bırakılmıştır. Çalışan tüm dağıtımlar Microsoft tarafından durdurulacak ve kapatılacak ve Veriler Ekim 2024'den itibaren kalıcı olarak kaybolacaktır. Yeni dağıtımlarda yeni Azure Resource Manager tabanlı dağıtım modeli Azure Cloud Services (genişletilmiş destek) kullanılmalıdır.

Bu makalede, sanal makine gibi bir Azure kaynağını dağıttığınızda veya güncelleştirdiğinizde gerçekleşen iş akışı işlemlerine genel bir bakış sağlanır.

Uyarı

Azure’da kaynak oluşturmak ve bunlarla çalışmak için iki farklı dağıtım modeli vardır: Resource Manager ve klasik. Bu makale klasik dağıtım modelini incelemektedir.

Aşağıdaki diyagramda Azure kaynaklarının mimarisi gösterilir.

<alt Azure iş akışı hakkındaki görüntü>

İş akışı temelleri

A RDFE / FFE, kullanıcıdan dokuya giden iletişim yoludur. RDFE (RedDog Ön Uç), Yönetim Portalı'nın ön ucu ve Visual Studio, Azure MMC gibi klasik dağıtım modeli API'sinin ön ucu olan genel kullanıma sunulan API'dir. Kullanıcıdan gelen tüm istekler RDFE üzerinden gider. FFE (Doku Ön Ucu), RDFE'den gelen istekleri doku komutlarına çeviren katmandır. RDFE'den gelen tüm istekler, doku denetleyicilerine ulaşmak için FFE'den geçer.

B. Kumaş denetleyicisi, veri merkezindeki tüm kaynakların bakımını yapmak ve onları izlemekle sorumludur. Konuk işletim sistemi sürümü, hizmet paketi, hizmet yapılandırması ve hizmet durumu gibi bilgileri gönderen fabric işletim sistemi üzerinde bulunan "fabric" konak acenteleriyle iletişim kurar.

C. Konak Aracısı, Konak işletim sisteminde bulunur ve Konuk işletim sistemini ayarlamakla sorumludur. Ayrıca, rolü istenen duruma güncellemek ve Konuk Aracısı (WindowsAzureGuestAgent) ile sinyal kontrolleri yapmak için iletişim kurar. Eğer Host Aracısı 10 dakika boyunca sinyal yanıtı almazsa, Host Aracısı, Konuk İşletim Sistemini yeniden başlatır.

C2. WaAppAgent, WindowsAzureGuestAgent.exe yüklemekten, yapılandırmaktan ve güncelleştirmekten sorumludur.

D. Aşağıdaki görevlerden WindowsAzureGuestAgent sorumludur:

  • Güvenlik duvarı, ACL'ler, LocalStorage kaynakları, hizmet paketi ve yapılandırma ile sertifikalar dahil konuk işletim sistemini yapılandırma.
  • Rolün altında çalıştığı kullanıcı hesabı için SID'yi ayarlama.
  • Rol durumunu yapı bileşenlerine iletme.
  • Rolün hedef durumunda olduğundan emin olmak için WaHostBootstrapper'ı başlatmak ve izlemek.

E. WaHostBootstrapper şu işlemden sorumludur:

  • Rol yapılandırmasını okuma ve rolü yapılandırmak ve çalıştırmak için tüm uygun görevleri ve işlemleri başlatma.
  • Tüm alt işlemlerini izleme.
  • Rol konağı işleminde StatusCheck olayının tetiklenmesi.

F IisConfigurator, rol Tam IIS web rolü olarak yapılandırıldıysa çalışır. Aşağıdakilerden sorumludur:

  • Standart IIS hizmetlerini başlatma
  • Web yapılandırmasında yeniden yazma modülünü yapılandırma
  • Hizmet modelinde yapılandırılan rol için AppPool'u ayarlama
  • Tanılama Deposu LocalStorage klasörüne işaret edecek şekilde IIS günlük kaydını ayarlama
  • İzinleri ve ACL'leri yapılandırma
  • Web sitesi %roleroot%:\sitesroot\0 konumunda bulunur ve AppPool IIS çalıştırmak için bu konumu gösterir.

G. Rol modeli başlangıç görevlerini tanımlar ve WaHostBootstrapper bunları başlatır. Başlangıç görevleri arka planda zaman uyumsuz bir şekilde çalışacak şekilde yapılandırılabilir ve konak başlatıcısı başlangıç görevini başlatır ve ardından diğer başlangıç görevlerine geçer. Başlangıç görevleri, Basit (varsayılan) modda çalışacak şekilde de yapılandırılabilir. Basit modda, konak önyükleyicisi, başlangıç görevinin çalışmasını bitirip (0) başarılı çıkış kodu döndürmesini bekler ve ardından bir sonraki başlangıç görevine devam eder.

H. Bu görevler SDK'nın bir parçasıdır ve rolün hizmet tanımında (.csdef) eklentiler olarak tanımlanır. Başlangıç görevlerine genişletildiğinde DiagnosticsAgent ve RemoteAccessAgent benzersizdir ve her biri normal ve biri /blockStartup parametresi olan iki başlangıç görevi tanımlar. Normal başlangıç görevi, rolün kendisi çalışırken arka planda çalışabilmesi için arka plan başlangıç görevi olarak tanımlanır. /blockStartup başlangıç görevi, WaHostBootstrapper'ın devam etmeden önce görev sonlanana kadar beklemesini sağlamak için Basit başlangıç görevi olarak tanımlanır. /blockStartup görevi normal görevin başlatılmasını tamamlamasını bekler ve sonra çıkıp konak önyükleyicisinin devam etmesine izin verir. Bu işlem, /blockStartup görevi aracılığıyla gerçekleştirilen rol işlemleri başlamadan önce tanılama ve RDP erişiminin yapılandırılabilmesi için yapılır. Bu işlem, ana bilgisayar önyükleyicisi Normal görev aracılığıyla gerçekleştirilen başlangıç görevlerini tamamladıktan sonra tanılama ve RDP erişiminin çalışmaya devam etmesine de olanak tanır.

Ben. WaWorkerHost, normal çalışan rolleri için standart konak işlemidir. Bu konak işlemi, rolün OnStart ve Run gibi giriş noktası kodları ile DLL'lerinin tümünü barındırmaktadır.

J. WaIISHost, Full IIS kullanan web rolleri için rol giriş noktası kodunun ana bilgisayar işlemidir. Bu işlem RoleEntryPoint sınıfını kullanan ve bu sınıftan (OnStart, Run, OnStop) kodu yürüten ilk DLL'yi yükler. RoleEntryPoint sınıfında oluşturulan tüm RoleEnvironment olayları (StatusCheck ve Changed gibi) bu işlemde oluşturulur.

K. W3WP, rol Tam IIS kullanacak şekilde yapılandırılmışsa kullanılan standart IIS çalışan işlemidir. Bu işlem IISConfigurator'dan yapılandırılan AppPool'u çalıştırır. Burada oluşturulan tüm RoleEnvironment olayları (StatusCheck ve Changed gibi) bu işlemde tetiklenir. Her iki işlemdeki olaylara aboneyseniz RoleEnvironment olayları her iki konumda da (WaIISHost ve w3wp.exe) tetikleniyor.

İş akışı İşlemleri

  1. Kullanıcı, ".cspkg" ve ".cscfg" dosyalarını karşıya yüklemek, bir kaynağa durması ya da bir yapılandırma değişikliği yapması talimatını vermek gibi bir istekte bulunur. İstekler Azure portalı veya Visual Studio Yayımlama özelliği gibi klasik dağıtım modeli API'sini kullanan araçlar aracılığıyla yapılabilir. Bu istek, abonelikle ilgili tüm işleri yapmak ve ardından isteği FFE'ye iletmek için RDFE'ye gider. Bu iş akışı adımlarının geri kalanı yeni bir paket dağıtmak ve başlatmaktır.
  2. FFE doğru makine havuzunu bulur (müşteri girişlerine dayalı olarak, ilişki grubu veya coğrafi konum artı makine kullanılabilirliği gibi altyapıdan alınan girdiler) ve bu makine havuzundaki ana altyapı denetleyicisiyle iletişim kurar.
  3. Yapı denetleyicisi, kullanılabilir CPU çekirdeklerine sahip bir konak bulur (veya yeni bir konak başlatır). Hizmet paketi ve yapılandırma konağa kopyalanır ve yapı denetleyicisi paketi dağıtmak için konak işletim sistemindeki konak aracısı ile iletişim kurar (DIP'leri, bağlantı noktalarını, konuk işletim sistemini vb. yapılandırır).
  4. Konak aracısı Konuk işletim sistemini başlatır ve konuk aracısı (WindowsAzureGuestAgent) ile iletişim kurar. Konak, rolün hedef durumuna ulaşıp ulaşmadığını kontrol etmek için konuğa sinyaller gönderir.
  5. WindowsAzureGuestAgent konuk işletim sistemini (güvenlik duvarı, ACL'ler, LocalStorage vb.) ayarlar, c:\Config dosyasına yeni bir XML yapılandırma dosyası kopyalar ve waHostBootstrapper işlemini başlatır.
  6. Tam IIS web rolleri için WaHostBootstrapper IISConfigurator'ı başlatır ve IIS'den web rolü için mevcut AppPool'ları silmesini söyler.
  7. WaHostBootstrapper, Başlangıç görevlerini E:\RoleModel.xml'den okur ve başlangıç görevlerini yürütmeye başlar. WaHostBootstrapper tüm Basit başlangıç görevleri bitene kadar bekler ve bir başarı iletisi döndürür.
  8. Tam IIS web rolleri için WaHostBootstrapper, IISConfigurator'a IIS AppPool'u yapılandırmasını söyler ve siteyi E:\Sitesroot\<index> konumuna yönlendirir; burada <index>, hizmet için tanımlanan <Sites> öğelerinin sayısına göre sıfırdan başlayan bir dizin sağlar.
  9. WaHostBootstrapper, rol türüne bağlı olarak ana bilgisayar işlemini başlatır.
    1. Çalışan Rolü: WaWorkerHost.exe başlatıldı. WaHostBootstrapper, OnStart() yöntemini yürütür. Geri döndüğünde, WaHostBootstrapper Run() yöntemini çalıştırmaya başlar ve aynı anda rolü Hazır olarak işaretler ve yük dengeleyici döngüsüne alır (InputEndpoints tanımlanmışsa). WaHostBootstrapper daha sonra rol durumunu kontrol etme döngüsüne girer.
    2. Tam IIS Web Rolü: aIISHost başlatıldı. WaHostBootstrapper, OnStart() yöntemini yürütür. Geri döndüğünde Run() yöntemini yürütmeye başlar ve aynı anda rolü "Hazır" olarak işaretler ve yük dengeleyici rotasyonuna ekler. WaHostBootstrapper daha sonra rol durumunu kontrol etme döngüsüne girer.
  10. Tam IIS web rolüne gelen web istekleri, W3WP işlemini başlatmak ve isteği şirket içi IIS ortamında olduğu gibi sunmak için IIS'yi tetikler.

Kayıt Dosyası konumları

WindowsAzureGuestAgent

  • C:\Logs\AppAgentRuntime.Log.
    Bu günlük, hizmetteki başlatmalar, durdurmalar ve yeni yapılandırmalar dahil olmak üzere yapılan değişiklikleri içerir. Hizmet değişmezse, bu günlük dosyasında büyük zaman aralıkları görmeyi bekleyebilirsiniz.
  • C:\Logs\WaAppAgent.Log.
    Bu günlük durum güncellemeleri ve sinyal bildirimlerini içerir ve her 2-3 saniyede bir güncellenir. Bu günlük, örneğin durumunun geçmişe dönük bir görünümünü içerir ve örneğin Hazır durumda olmadığını size bildirir.

WaHostBootstrapper

C:\Resources\Directory\<deploymentID>.<role>.DiagnosticStore\WaHostBootstrapper.log

WaIISHost

C:\Resources\Directory\<deploymentID>.<role>\WaIISHost.log

IISConfigurator

C:\Resources\Directory\<deploymentID>.<role>\IISConfigurator.log

IIS günlükleri

C:\Resources\Directory\<guid>.<role>.DiagnosticStore\LogFiles\W3SVC1

Windows olay günlükleri

D:\Windows\System32\Winevt\Logs