Jednym z głównych tematów konferencji PDC 2008 jest Windows Azure, czyli system operacyjny “w chmurze”.

Windows Azure to system operacyjny, który umożliwia w prosty sposób wykorzystanie możliwości maszyn na których jest postawiony. Azure ma za swój celu rozwiązanie problemów związanych ze skalowalnością aplikacji oraz dylematu, przed którym stoi nowo powstający serwis czy usługa. Czy od początku inwestować w architekturę i farmę serwerów, które zapewnią mi skalowalność (i wydać mnóstwo PLN/$/ czy też innej waluty) czy poczekać i być może narazić serwis na przestój w pracy. Dzięki Azure (według zapewnień twórców) w prosty sposób będzie można wykorzystać dostępną moc/skalowalność w razie konieczności.

Azure to także platforma dla developerów. Czyli mamy SDK (link poniżej), które umożliwia nam pisanie programów na ten system “w chmurze”. Na razie to wszystko w wersji CTP, a że C znaczy Community postanowiłem, się trochę tym pobawić 🙂

Po zainstalowaniu SDK widzimy, że dostaliśmy do zabawy kilka nowych projektów:

W projekcie Cloud Service:

  • Web Cloud Service – to strona internetowa ASPX (choć pewnie ma też jakieś dodatkowe możliwości)
  • Worker Could Service – to projekt, umożliwiający stworzenie programu do obliczeń numerycznych lub podobnego typu zadań, nie potrzebujących interface’u Webowego.
  • Web & Worker Cloud Service – to zapewne (jeszcze tego nie sprawidzłem) połączenie dwóch powyższych.

Cloud Workflow zapowiada się też ciekawie – użycie WF “w chmurze”. Muszę się temu bliżej przyjrzeć.

Jednak teraz na pierwszy ogień poszedł – Worker Cloud Service.
Kod, który otrzymujemy na wejściu jest niezwykle prosty:

public override void Start()

{

    // This is a sample worker implementation. Replace with your logic.

    RoleManager.WriteToLog(“Information”, “Worker Process entry point called”);

 

    while (true)

    {                               

        Thread.Sleep(10000);

        RoleManager.WriteToLog(“Information”, “Working”);

    }

}

 

public override RoleStatus GetHealthStatus()

{

    // This is a sample worker implementation. Replace with your logic.

    return RoleStatus.Healthy;

}

Zatem dwie metody, które w większości przypadków będą nas obchodzić już dodane. Start i GetHealthStatus. Znaczenia ich chyba nie trzeba tłumaczyc. Gdy uruchomimy usługę takiego workera Azure instaluje u nas w systemie, dodatkowe elementy, które pozwolą nam na testowanie. A uruchomiony proces wygląda tak:

Widzimy (czerwona ramka) jakieś wyniki, które zwraca nasza “logika”. Na razie jedyną metodą, którą mam na wypisywanie jest:

RoleManager.WriteToLog

Na razie musi to wystarczyć….
Taka metoda workera może robić znacznie więcej niż “tylko” obliczenia :). Poszukiwanie źródeł życia w kosmosie czy analiza różnego tpu białek to tylko przykłady :).

Jutro zobaczymy co potrafi trzeci typ projektu – CloudWorkflow. (Dopisano: Na razie nie bardzo widać, gdzie go taki projekt można hostować 🙁 )

Źródła:
Windows Azure – Strona domowa
Wywaiad Stevem Marx’em na Channel 9
Azure SDK