Workflow Foundation Activity Pack CTP1 pentru Windows Azure

Tocmai a fost anunțat Workflow Foundation Activity Pack pentru Windows Azure CTP 1. Proiectul dedicat lui Workflow Foundation pe CodePlex este http://wf.codeplex.com/, iar pachetul este disponibil și prin NuGet (sau pentru cei mai hardcore, în consola de management de pachete pot butona Install-Package WFAzureActivityPack).

Ca și implementare, Activity Pack se bazează pe Windows Azure SDK, update-ul din August 2011, ce trebuie descărcat pentru a testa pachetul. În plus, activitățile se bazează pe Windows Azure Storage Service și Windows Azure AppFabric Caching Service, ce permit accesul la servicii lui Windows Azure în cadrul unei componente/aplicații bazate pe workflow-uri.

Tot la implementare trebuie menționat faptul că deși activitățile pot fi folosite într-un workflow și se bazează pe Windows Azure Storage Service/Windows Azure AppFabric Caching Service, acestea nu au implementare pentru tratarea excepțiilor într-un mod special. Toate excepțiile sunt conforme cu API-ul furnizat de Windows Azure Service. Cu alte cuvinte, dacă GetBlob (una din activitățile ce permit descărcarea unui blob) încearcă să acceseze un blob ce nu există, va fi aruncată o excepție de tipul StorageClientException.

Ca și best practice pentru CTP-ul curent (am testat-o) trebuie să fim pregătiți pentru orice potențială excepție și la nivel de workflow-uri să includem activitățile specifice Windows Azure în cadrul activității de TryCatch.

În versiunea curentă, la nivel de API, avem următoarele activități (sursa Windows Azure Blog):

 

1. Pentru Windows Azure Storage Service – Blob

  • PutBlob crează un bloc de blob-uri sau înlocuiește unul existent
  • GetBlob descarcă conținutul binar al unui blob
  • DeleteBlob șterge un blob dacă acesta există
  • CopyBlob copiază un blob într-o altă zonă în cadrul contului de storage
  • ListBlobs enumerează lista de blob-uri dintr-un container sau dintr-un director din cadrul unei ierarhii

 

2. Pentru Windows Azure Storage Service – Table

  • InsertEntity<T> introduce o nouă entitate într-o tabelă specifică
  • QueryEntities<T> interoghează entitățile dintr-o tabelă conform unei interogări (luând în considerare și opțiunile de interogare)
  • UpdateEntity<T> actualizează o entitate (existentă) din cadrul unei tabele
  • DeleteEntity<T> sterge o entitate (existentă) din cadrul unei tabele, specificând obiectul acelei entități ca și parametru
  • DeleteEntity șterge o entitate (existentă) din cadrul unei tabele, folosind cheile de partiție și rând

 

3. Pentru Windows Azure AppFabric Caching Service

  • AddCacheItem adaugă un obiect în cache, sau actualizează un obiect existent în cache
  • GetCacheItem întoarce un obiect din cache, cu tot cu timpul de expirare al acestuia din cadrul cache-ului
  • RemoveCacheItem șterge un obiect din cache.

 

Un scenariu (primul la care mă gândesc), destul de interesant, care se pretează atât pentru Windows Azure, cât și pentru utilizarea acestor activități în cadrul unei aplicații bazate pe workflow-uri este de a face trace-ul și log-ul a tuturor proceselor dintr-o soluție complexă de tip SaaS. Avantaje sunt foarte multe: spațiu infinit (2 TB per cont de storage), posibilitatea de a interoga rapid informațiile înregistrate, back-up + failover asigurat.

Am lansat Windows Azure AppFabric Caching

Ura! Velocity ajunge în cloud. Deși inițial părea că AppFabric-ul din Azure este altceva (Access Control, Service Bus) decât AppFabric-ul on-premises din Windows Server (Caching, Service Hosting), iată că încep să se unifice. Puteți pune în cache orice tip de date, cu condiția să fie serializabile (ex obiecte CLR, XML, date binare etc). Detalii la http://msdn.microsoft.com/en-us/library/gg278356.aspx. Plata se va face în funcție de dimensiunea cache-ului (128MB, 256MB, 512MB, 1GB, 2GB și 4GB) dar până la 1 august 2011 e gratuit.

În plus, s-a actualizat kitul de training pentru platforma de cloud Windows Azure cu suport pentru serviciile lansate în aprilie și câteva laboratoare noi (autentificare de pe Windows Phone prin ACS, Windows Azure Traffic Manager, SQL Azure Reporting Services).

Am publicat cursul lui Ciprian de la Bucuresti

Înregistrările sesiunilor și demonstrațiilor din cadrul cursului din 14-15 octombrie ținut de Ciprian Jichici sunt pe techdays.ro în secțiunea cloud computing:

01A – Introducere în cloud computing
01B – Introducere în platforma Windows Azure
02 – Roluri Web
03 – Stocarea în Windows Azure, comunicarea prin cozi de mesaje
04 – Stocarea în Windows Azure, tabele
05 – Stocarea în Windows Azure, blob-uri
06 – Roluri Worker în Windows Azure
07 – Diagnoză și management de aplicații în Windows Azure
08A – SQL Azure, partea I
08B – SQL Azure, partea II
09A – Windows Azure AppFabric, partea I, Access Control Services
09B – Windows Azure AppFabric, partea II, Access Control Services, Service Bus

Demo 1 – Dezvoltarea unei aplicații web și publicarea în cloud pe Windows Azure
Demo 2 – Stocare în Windows Azure
Demo 3 – Roluri worker
Demo 4 – SQL Azure
Demo 5 – Windows Azure AppFabric Access Control Services

Materialele de curs (prezentări, laboratoare, cod etc) pot fi descărcate de la http://azurebootcamp.com/.
Introducerea mea a fost asta:

Serie de întâlniri RONUA, TechEd Review

RONUA e în roadshow din nou: 17 noiembrie în Cluj, 18 în Oradea, 19 în Arad, 20 în Timișoara, 23 în Constanța, 15 dec în București. Sibiu, Galați, Iași și Brașov sunt încă în discuție. Reciclez de pe pagina de înscriere:

Iată doar câteva din subiectele și topicile abordate:

Tehnologiile "trendy" ale momentului în nov 2010!
Windows Azure. SQL Azure, AppFabric Data marketplace + oportunitățile momentului pentru developeri!
Windows Phone 7 Windows Mobile- nu mai e. Află și de ce.. Internet Explorer 9, Dezbaterea Falsă HTML 5 vs Silverlight.
BONUS: Vino cu un hardisk extern gol, ca să ți-l umpplem cu informație "caldă".

Facilităti noi în platforma Windows Azure

Aseară la PDC10 au fost anunțate mai multe noutăți legate de platforma de cloud a Microsoft. Majoritatea vor fi disponibile până la sfârșitul acestui an:

  • Virtual Machine role pentru a migra aplicații existente folosind mașini virtuale construite de voi
  • Elevated Privileges, Full IIS și Remote Desktop
  • Windows Azure Connect pentru a face rețele virtuale între aplicații din cloud și aplicații on-premises
  • Extra Small Instance pentru aplicații/siteuri fără pretenții mari, la doar 5 cenți pe oră
  • Windows Azure Marketplace și Data Market (fost ”Dallas”)
  • SQL Azure Reporting pentru a sparge gheața BI-ului în cloud.
  • Windows Azure AppFabric Caching pentru a face primul pas în mariajul dintre AppFabric din cloud (Windows Azure AppFabric) și AppFarbric on-premises (Windows Server AppFabric). După cum știți, Windows Azure AppFabric era format până acum din Service Bus și Access Control, iar Windows Server AppFabric era format până acum din caching și host de servicii WF+WCF. În 2011 urmează să avem și host de WF+WCF în Azure.

Detalii pe blogul Windows Azure, pe blogul SQL Azure, pe blogul Windows Azure AppFabric și pe http://azure.com.

Majoritatea acestor noutăți au fost sugerate de voi prin http://mygreatwindowsazureidea.com. Mulțumim!

La ce să ne gândim când proiectăm o aplicatie în cloud

imageCâteva considerații legate de arhitectura aplicațiilor pe platforma Windows Azure:

1. Vom fi într-un mediu dinamic. Orice dependență de mașina locală trebuie ruptă. Dacă vă bazați pe adrese de IP, porturi, nume de computer, atunci puteți uita de ele. În cloud trebuie să vă așteptați că aplicația voastră va fi mutată pe alte mașini. Altfel nu veți putea scala împreună cu platforma sau nu veți putea relua activitatea în caz că sunteți mutați din cauza unor defecțiuni hardware. La limită, puteți să suprascrieți metodele de stop și start ale mediului pentru a trata schimbările.

2. Vom avea latențe impredictibile. Aplicația trebuie să fie capabilă să lucreze cu timpi de răspuns impredictibili din partea sistemului de stocare, dar și din partea altor aplicații. Dacă pe o mașină locală eram obișnuiți să avem fișiere, tabele sau alte obiecte acolo pe aceeași mașină, ei bine, în cloud aceste obiecte pot fi (și cu siguranță vor fi) pe alte mașini, sau chiar alte containere, sau chiar alte datacentere. Decorați codul cu logică de reîncercare.

3. Tranzacții și efectul asupra benzii și a costurilor. Când plătim pentru bandă, nu vom plăti pentru o anumită dimensiune de țeavă (așa cum suntem obișnuiți de la furnizorii de net), ci vom plăti cantitatea de date transferată în GB. Trebuie să ne obișnuim că stocarea o vom plăti nu numai per GB, dar și per tranzacție (acces). În plus, dacă datele sunt în alt datacenter, vom plăti bandă pentru ambele datacentere.

4. Autentificare și autorizare. Folosiți Azure AppFabric pentru a face ”outsourcing” la autorizare. Apoi veți putea face actualizări prin modificarea configurării, fără eforturi. Dacă folosiți deja ASP.NET membership provider, atunci sunteți acasă pe Windows Azure.

5. Starea aplicației. Am văzut deja la punctul 1. că aplicațiile se pot muta pe alte mașini, ceea ce înseamnă că orice date de care avem nevoie trebuie persistate într-una din elementele de stocare din Windows Azure (bloburi, cozi, tabele nosql sau baze de date relaționale SQL Azure).

6. Datele. Deși am mari îndoieli că cineva își poate proteja mai bine datele pe serverele proprii decât în cloud, hai să numim câteva tehnici de a liniști eventuali clienți paranoici, care preferă să aibă control fizic asupra datelor: modularizare (mutați în cloud doar datele cu care se simte clientul comfortabil, păstrați restul on-premises); sharding; criptare. Nu ezitați să le combinați.

Detalii în:

De la TechEd US

SQL Azure își extinde limita de la 10GB la 50GB în urma feedback-ului de la voi.
SQL Azure Data Sync Service pentru a permite controlul/împărțirea datelor în diferite centre de date de pe glob.
Windows Server AppFabric este gata.
BizTalk Server 2010 este beta.

Mai multe la http://www.microsoft.com/events/techednorthamerica/.

Update: avem o versiune nouă a Windows Azure Platform Training Kit, actualizată pentru Visual Studio 2010.

Platforma de cloud computing a Microsoft este disponibilă în România

De azi, avem Windows Azure, SQL Azure, și Azure AppFabric în România.
Reamintesc că pentru dezvoltare nu e nevoie să plătiți pentru platformă, fiindcă Visual Studio vă poate emula norul Microsoft.

Mergeți și învățați pe http://azure.com/ și pe http://channel9.msdn.com/learn/courses/Azure/.

Enjoy!

Urmăriți online conferința MIX10

MIX10 Dacă nu ați reușit să ajungeți în Las Vegas, de luni puteți urmări online keynote-urile, interviurile și sesiunile la http://live.visitmix.com. Începe la ora 18:00, ora Bucureștiului.

Subiectele fierbinți (pentru mine) vor fi: Silverlight 4, platforma de dezvoltare pentru Windows Phone 7 Series (sper să-i găsească un nume mai ușor de pronunțat, fiindcă ăsta nici abreviat nu se poate rosti fără să te împleticești), IE9, Expression 4, AppFabric și noutăți pentru dezvoltarea în cloud.

Cum, nu știți ce-i aia AppFabric? Sunt două chestii, care (deocamdată) nu au nici o legătură:

  • Windows Server AppFabric = ușurează crearea, scalarea și managementul aplicațiilor pe webserverul Microsoft (IIS) = ”Dublin” (host de servicii WF și WCF) + ”Velocity” (cache de mare viteză, distribuit)
  • Windows Azure AppFabric = conectarea serviciilor din cloud cu aplicațiile on premises = fostul .NET Services din cloud-ul Microsoft, adică un Internet Service Bus și framework de identitate.