Patterns&practices: soluții big data în Azure

Arhitecții noștri de la patterns&practices au scos un ghid despre dezvoltarea de soluții big data folosind serviciul Hadoop din Azure, cu denumirea HDInsight Service. Da, este o implementare de Hadoop pe care o oferim clienților noștri sub formă de serviciu. Big data este un scenariu excelent pentru cloud, fiindcă stochezi acolo tot ce vrei în storage-ul care devine din ce în ce mai ieftin, apoi, când ai nevoie să macini datele, ridici un cluster de Hadoop și îi dai bătaie atunci când îți trebuie, cât timp îți trebuie.

Recomand cu căldură această lectură lejeră de vară: http://msdn.microsoft.com/en-us/library/dn749874.aspx

Iată și cum se așează aceste soluții big data în tabloul platformei de date Microsoft:

Microsoft data platform

Patterns&practices: dezvoltarea de aplicații de business pentru Windows Store

Dezvoltarea de aplicații de business pe Windows a fost una din punctele noastre tari în această industrie, dar de când a apărut noul model de aplicații de Windows Store (odată cu Windows 8) a fost un pic neclar cum vom/veți mărita cele două concepte.

Arhitecții noștri de la patterns&practices au scos un ghid, biblioteci și implementare de referință pentru dezvoltarea de aplicații de business folosind C#, XAML și Prism. Bibliotecile și implementarea de referință sunt la http://code.msdn.microsoft.com/windowsapps/Prism-for-the-Windows-86b8fb72 și pe NuGet, iar documentația e la http://msdn.microsoft.com/en-us/library/windows/apps/xx130643.aspx.

Suntem la Cluj la ITCamp

itcamp-logo-whiteToată echipa DPE (Oana, Cătălin, Petru, Sebi și eu) suntem la Cluj la conferința ITCamp. Ieri am avut șansa să ciocnim niște țuici cu Richard Campbell, Tim Huckaby și ceilalți speakeri. Citez din memorie despre reacția lor: this jetfuel is dangerous stuff Smile.

Cu cca 400 de participanți plătitori și un tablou de speakeri fabulos, ITCamp își consolidează poziția ca cel mai important eveniment de IT din România.

Dacă sunteți în zonă și vreți să schimbăm o vorbă, dați-ne un semn.

PS: Richard a ținut săptămâna trecută un Architect’s Master Class în Cluj și am înțeles că a fost de mare succes.

RABS îl aduce pe Richard Campbell în România la un nou Architect’s Master Class

Richard_CampbellÎn septembrie 2011 s-a anulat pe ultima sută The Architect’s Master Class din Cluj organizat de RABS cu Juval Lowy, dar văd că nu se lasă. În 19-23 noiembrie 2012 este programată o nouă ediție, de data asta cu Richard Campbell.

Detalii la http://www.rabs.ro/events/master-classes/the-architects-master-class.

Dacă sunteți senior developer, arhitect, team lead, sau tindeți să deveniți unul, nu ratați această oportunitate!

PS: stați cu ochii pe http://www.rabs.ro/ fiindcă sunt și alte chestii faine ce se întâmplă în Cluj în acest domeniu.

PPS: e vorba de dezvoltare de software, desigur.

RABS îl aduce pe Juval Lowy în România cu Architect’s Master Class

Romanian Association for Better Software s-a născut la Cluj cu scopul de a (reciclez de pe siteul lor):

– Provide resources for the continuous education of experienced Software Developers and Architects
– Share best practices on Software Architecture and the Architect’s role in modern software development
– Bring together local software thinkers with international experts in order to increase both local experience and the global awareness of Romanian skills.

The association will organize free and paid events centered around software engineering topics. We will invite top international and local speakers to teach us and help us make the leap forward, faster.

O primă astfel de inițiativă este organizarea la Cluj în perioada 12-16 septembrie 2011 a unui Architects Master Class cu nimeni altul decât Juval Lowy.
Recomand cu căldură!
Disclaimer: Bineînțeles, nu e pentru începători.

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:

Programatori din Iași, mergeți la CodeCamp!

CodeCamp.ro și Ditech vă invită sâmbătă (8 mai) la o întâlnire cu agenda asta:

09:15 – 09:30 Introducere
09:30 – 10:45 WCF for the web developer, Florin Cardasim (dezvoltator, rms.ro)
10:45 – 11:00 Pauză de cafea
11:00 – 12:30 Performance in .NET: Best practices, Vlad Balan și Sorin Oboroceanu (dezvoltatori, rms.ro)
12:30 – 13:30 Masă de prânz
13:30 – 15:15 SCM project – An architectural overview, Gabriel Cristescu (dezvoltator, ditech.ro)
15:15 – 15:30 Pauză de cafea
15:30 – 17:00 QA and Testing in Agile Projects, Ana Figher (QA Manager, embarcadero.com)

Detalii la http://www.codecamp.ro/post/2010/04/14/CodeCamp-de-primavara-la-Iasi-08-mai-2010-hotel-Ramada.aspx.

Ghid de autentificare și autorizare

După aproape un an de muncă, Eugenio Pace a publicat A Guide to Claims-Based Identity and Access Control, o lucrare esențială pentru orice dezvoltator, care s-a săturat să creeze dependențe față de diferitele tehnologii de autentificare. Structura ghidului este:

A Guide to Claims-Based Identity and Access Control

Nu uitați nici de prezentarea de la Solution Architect Briefing: SAB 26jan2010 claims-based identity.pptx (1MB)

Prezentările de ieri de la SAB

După o pauză de 3 ani, am relansat ieri întâlnirile arhitecților software din Romania, sub același brand: Solution Architect Briefing. Tema a fost cloud computing și identity. Am decis organizarea acestui eveniment, profitând de prezența în România a doi executivi din Microsoft Corporation, din divizia de servicii: Norm Judah, Chief Technology Officer și Dan Neault, General Manager, Mission Critical & Cloud Strategy.

Prezentările mele au fost:

SAB 26jan2010 patterns for cloud computing.pptx (6MB)
SAB 26jan2010 claims-based identity.pptx (1MB)

Voi reveni cu prezentarea lui Norm…

Filmulețele arătate au fost astea:

TechEd 2009 – ziua 5

Am văzut:

  • Mark Russinovich cu ”Windows and Malware: Wich Features Are Security and Wich Aren’t”. Mark a vorbit despre:
    • security boundaries, pe care le garantează Windows:
      • mașina fizică
      • mașina virtuală
      • sesiunile utilizatorilor
      • .NET Code Access Security
    • a mai vorbit și despre mecanisme, care nu sunt considerate security boundaries:
      • procesele
      • kernel patch protection (PatchGuard)
      • kernel-mode code signing
      • protected-mode IE
      • user account control
    • este important să facem distincție dintre aceste categorii, pentru a înțelege de ce Microsoft Security Response Center emite buletinele de securitate: greșelile/bugurile din security boundaries devin buletine critice de securitate (cu excepția celor legate de sesiunile utilizatorilor, care devin importante).
  • Aaron Margosis cu ”Sysinternals Tutorials”. A fost interesant să-l vedem pe Aaron încredințat cu jucăriile lui Mark. Mai ales că Aaron este de multe ori mai haios decât Mark… când una din jucării nu se comporta cum trebuie zicea: ”hmmm, it must be a Windows bug”.
  • Simon Guest cu ”Patterns for Cloud Computing”. A reluat în detaliu cele 5 patternuri enunțate ieri (scale, multi-tenancy, compute, storage, communications), arătând și câte un demo. În final a arătat un demo, care combină aceste patternuri într-o soluție pentru aflarea numerelor prime între 1 și 10.000.000. Un laptop obișnuit face asta (cu același algoritm) în cca 45min. Soluția creată a fost cam așa:
    1. avea 3 aplicații în cloud, care să execute joburile:
      1. una în PHP în Windows Azure cu 10 noduri
      2. una în Java în Google AppEngine
      3. una în ASP.NET în Amazon EC2 cu 5 noduri
    2. toate cele 3 aplicații din cloud stocau rezultatele într-o bază de date SQL Azure, tot în cloud
    3. aplicația client împărțea efortul în mai multe joburi; intervalul și nr de joburi erau parametri de intrare ceruți de la utilizator: în demo a folosit 1 la 10.000.000 și 40 de joburi
    4. punea 40 de mesaje (cu joburile) în .NET Service Bus în cloud
    5. trimitea mesaje REST la cele 3 aplicații din cloud, pentru a prelua joburile
    6. citea/afișa rezultatele din baza de date
    7. timpul efectiv până la obținerea rezultatului: cca 50sec
    8. timpii totali de procesor din cloud: cca 5min.

image

Filed under: Securitate, ASP.NET, TechEd, Interoperabilitate, PHP, Java, Windows Azure, SQL Azure, Arhitectura, .NET Services