Narzędzia Azure
Autor: Piotr Zieliński
Opublikowano: 2010-11-24
Przed rozpoczęciem przygody z platformą Azure należy zainstalować odpowiednie narzędzia, ponieważ środowiska programistyczne nie zawierają w domyślnej instalacji odpowiedniego oprogramowania (szablony, środowisko uruchomieniowe itp.).
Instalacja Windows Azure Tools
Podstawowym składnikiem są tzw. narzędzia Windows Azure. Windows Azure Tools zawiera podstawowe szablony potrzebne do stworzenia aplikacji Azure. Ponadto w skład pakietu wchodzi również SDK i środowisko uruchomieniowe. Windows Azure jest wspierany przez Visual Studio 2008 SP1, Visual Studio 2010 i Visual Web Developer 2010 Express Edition. Jeśli chodzi o wspierane systemy operacyjne, deweloper ma do dyspozycji Windows 7, Windows Vista SP1 oraz Windows Server 2008. Zakładając, że prawidłowa wersja Visual Studio jest już zainstalowana, wykonujemy następujące czynności:
Ściągamy i instalujemy Windows Azure Tools for Microsoft Visual Studio 1.2 (June 2010).
Rys. 1. Instalacja narzędzi jest bardzo intuicyjna.W zależności od konfiguracji systemu oraz zainstalowanego oprogramowania może zajść potrzeba instalacji dodatkowych łatek:
- 2.1. jeśli zainstalowany jest system operacyjny Windows 7 lub Windows Server 2008 R2, należy doinstalować WCF: Hotfix rollup in .NET 3.5 SP1 for Win 7 and Win 2k8 R2,
- 2.2. dla 32-bitowych systemów operacyjnych należy zainstalować Intellitrace hotfix to address issues outlined in Cloud Tools,
- 2.3. jeśli na komputerze jest zainstalowany inny system, niż Windows 7, należy zainstalować Hotfix: Improve Visual Studio Stability,
- 2.4. jeśli na komputerze jest zainstalowany inny system, niż Windows 7 lub Windows Server 2008 R2, należy zainstalować Hotfix: Support for FastCGI on the Development Fabric oraz WCF: Wrong metadata when hosting behind a load balancer,
- 2.5. dla wersji innych niż Visual Studio 2010 należy zainstalować Hotfix: Native Debugging Improvements.
Po instalacji można uruchomić Visual Studio i przekonać się, że został dodany nowy szablon projektu:
Rys. 2. Azure Tools dodaje m.in. nowy szablon do Visual Studio, umożliwiający pisanie aplikacji na platformę Azure.
Dzięki dodatkowi do Visual Studio większość czynności będzie wykonywana automatycznie podczas uruchamiania projektów. Dodatek zwalnia programistę np. z ręcznego wdrożenia aplikacji.
Windows Azure MMC
Konsola MMC w systemach Windows stanowi narzędzie znacząco ułatwiające wszelką konfigurację. Użytkownik, zamiast szukać danej opcji w różnych okienkach i panelach, otwiera konsolę MMC i w drzewie hierarchicznym ma wszystkie dostępne konfigurowalne elementy. Ponadto istnieje możliwość tworzenia własnych konsol, dopasowanych do konkretnych potrzeb. Więcej ogólnych informacji o MMC znajduję się np. na WSS.
W świecie platformy Azure istnieje Windows Azure Management Tool (MMC). Po zainstalowaniu, należy uruchomić StartHere.cmd. Po chwili pojawi się okno kreatora:
Rys. 3. Konfiguracja MMC.
Kreator wykona za użytkownika większość czynności – sprawdzi wymagane oprogramowanie, zainstaluje przystawki MMC (snap-in), a na końcu uruchomi konsolę:
Rys. 4. Konsola MMC.
Dzięki konsoli najczęściej występujące czynności można wykonać w jednym oknie. Poniższa tabela zawiera ogólny opis możliwości Azure MMC:
Tabela 1. Węzły konsoli Azure MMC.
Hosted Services | Zarządzanie usługami Azure. | |
Diagnostics | Konfiguracja licznikami wydajności, logami – diagnostyka. | |
Certificates | Zarządzanie certyfikatami. | |
Storage Services | Konfiguracja zasobów. | |
Blob Storage | Zarządzanie zasobami typu BLOB. | |
Queues | Zarządzanie kolejkami Azure (Windows Azure Queues). | |
Tables | Zarządzani tabelami Azure (Windows Azure Tables). | |
Extensibility | Rozszerzenia – np. własna wizualizacja liczników wydajności. | |
PowerShell-based backend | Skrypty PowerShell. |
Windows Azure Service Management CmdLets
Windows Azure Service Management CmdLets zawiera zbiór skryptów PowerShell. Dla przypomnienia – PowerShell to rozbudowany interpreter poleceń oferujący dużo większe możliwości niż popularny cmd.exe. Jedną z wyróżniających jego cech jest w pełni obiektowa logika. Wszelkie operacje nie są już wykonywane na strumieniu znaków, a na konkretnych obiektach (przykładem jest tutaj np. pipeline). CmdLet oznacza komendę – jest to skrót od command-let.
Wszystkie produkty serwerowe Microsoft (od 2008 roku) są zgodnie z tzw. listą common criteria i muszą być konfigurowalne przez PowerShell’a. Windows Azure nie jest oczywiście wyjątkiem. Przed rozpoczęciem pracy ze skryptami PowerShell Azure należy je ściągnąć i zainstalować. Po zainstalowaniu uruchamiamy startHere.cmd i wykonujemy instrukcje zawarte w kreatorze.
Następnie można uruchomić już konsolę PowerShell (Menu Start->Programy->Akcesoria->Windows PowerShell). Zanim zaczniemy jednak używać cmd-let, należy dodać odpowiedni snap-in:
PowerShell:
Add-PSSnapin AzureManagementToolsSnapIn
W celu wylistowania wszystkich zainstalowanych cmdletów Azure można wywołać:
PowerShell:
Get-Command -PSSnapin AzureManagementToolsSnapIn
Rezultat:
Rys. 5. Dostępne cmdlety dla Azure.
Opis wszystkich komend znajduje się w dokumentacji. W artykule zostanie przedstawionych tylko kilka poleceń, które mają na celu wprowadzenie czytelnika w cmdlety Azure. Należy oczywiście ustawić zmienne subscriptionId oraz apiCert na prawidłowe wartości.
Listing wszystkich usług:
PowerShell:
Get-HostedServices -subscriptionId $subsId -certificate $apiCertListing usług według kryterium nazwy usługi (z wykorzystaniem pipeline):
PowerShell:
Get-HostedServices –subscriptionId $subsId -certificate $apiCert | { where $_.ServiceName –eq “nazw_uslugi” }Listing usług według kryterium nazwy usługi:
PowerShell:
Get-HostedService -subscriptionId $subsId -certificate $apiCert –serviceName “nazwa_uslugi”Szczegółowe informacje (nazwa, url, status) wdrożenia w środowisku testowym (staging):
PowerShell:
Get-Deployment –subscriptionId $subsId -certificate $apiCert –serviceName “nazwa” –slot stagingSzczegółowe informacje (nazwa, url, status) wdrożenia w środowisku produkcyjnym (production):
PowerShell:
Get-Deployment –subscriptionId $subsId -certificate $apiCert –serviceName “nazwa” –slot productionSzczegółowe informacje (nazwa, url, status) wdrożenia w środowisku produkcyjnym (production) z wykorzystaniem pipeline.
PowerShell:
Get-HostedService -subscriptionId $subsId -certificate $apiCert –serviceName “nazwa” | Get-Deployment production
Fiddler
Fiddler stanowi proxy, umożliwiający przechwytywanie i debuggowanie ruchu HTTP pomiędzy klientem a serwerem. Dzięki programowi można analizować ruch, ustawiać breakpointy itd. Oczywiście Fiddler jest narzędziem ogólnego zastosowania, ale można go również wykorzystać do analizowania ruchu Azure lub Azure Storage.
Azure Storage jest usługą typu REST. Oznacza to, że wykorzystuje protokół HTTP do wykonywania wszelkich operacji. Na podstawie zapytania (adresu URL) oraz metody HTTP (GET, PUT) wykonywana jest odpowiednia operacja – zwrócenie wartości lub wstawienie nowego wpisu w podanej przez URL lokalizacji. Ze względu na to, że usługi REST wykorzystują protokół HTTP, za pomocą Fiddlera z łatwością można przeanalizować ruch.
Obsługa Fiddlera jest bardzo intuicyjna. Wystarczy włączyć aplikację, a następnie upewnić się, że stosowny breakpoint jest ustawiony. W menu głównym przechodzimy do Rules->Automatic breakpoints i ustawiamy na Before Requests. W tej chwili, wysyłając jakieś zapytanie HTTP (np. wchodząc przez przeglądarkę na jakąś stronę internetową), Fiddler będzie przechwytywał zapytanie i czekał na reakcję:
Rys. 6. Debuggowanie HTTP.
Użytkownik może wybrać opcję Break On Response (zatrzymanie po odebraniu odpowiedzi) lub Run to Completion, aby wykonać całe zapytanie. Fiddler umożliwia wysyłanie własnych zapytań, modyfikowanie właśnie wysyłanych, filtrowanie oraz analizowanie pakietów itp.
Szczegółowe informacje na temat przedstawionych narzędzi znajdują się w dokumentacji. W następnej części zostaną opisane podstawy platformy Azure – jak stworzyć prostą aplikację.
Materiały dodatkowe:
Piotr Zieliński
Absolwent informatyki o specjalizacji inżynieria oprogramowania Uniwersytetu Zielonogórskiego. Posiada szereg certyfikatów z technologii Microsoft (MCP, MCTS, MCPD). W 2011 roku wyróżniony nagrodą MVP w kategorii Visual C#. Aktualnie pracuje w General Electric pisząc oprogramowanie wykorzystywane w monitorowaniu transformatorów . Platformę .NET zna od wersji 1.1 – wcześniej wykorzystywał głównie MFC oraz C++ Builder. Interesuje się wieloma technologiami m.in. ASP.NET MVC, WPF, PRISM, WCF, WCF Data Services, WWF, Azure, Silverlight, WCF RIA Services, XNA, Entity Framework, nHibernate. Oprócz czystych technologii zajmuje się również wzorcami projektowymi, bezpieczeństwem aplikacji webowych i testowaniem oprogramowania od strony programisty. W wolnych chwilach prowadzi blog o .NET i tzw. patterns & practices.