Et kig ind i 2011 hos Microsoft

Der er ingen tvivl om, at industrien står lige midt i en spændende transformation. For det første er måden, vi leverer applikationer og software på i dag, under kraftig påvirkning qua cloud computing. For det andet er måden, vi konsumerer software og informationer på, under hastig udvikling påvirket af både nye hardwareenheder med nye egenskaber samt ændret forbrugeradfærd.

Af Henrik Westergaard Hansen, Architect Evangelist, Microsoft

Cloud computing – nye muligheder og udfordringer

Danmark er blandt de hurtigste i verden til at tage cloud til sig. Analyser peger på, at årsagen til den hurtige adoption er lavere pris og højere realiseret værdi – man får mere IT for færre penge.  

Det kommer vi som IT-professionelle naturligvis til at skulle levere på. Hvis vi starter med at kigge på driften af IT-systemer, så vil optimering og automatisering i høj grad komme endnu mere i fokus. Cloud computing, hvad enten det er public eller private cloud, har i den grad været medvirkende til at skubbe til forventningerne om, hvad der kan leveres hvor hurtigt og til hvilken pris. Arkitekter og udviklere skal nu tage højde for, at ressourcer kan allokeres og deallokeres on demand i skyen. Måske flere hundrede servere i nogle få timer eller 100 TB diskplads – on demand. Det er en agilitet og fleksibilitet, som betyder meget. For systemejere vil det bl.a. betyde, at man kan håndtere alt fra meget høje spidsbelastninger til meget små, formentlig med en ny variabel prisstruktur på systemerne som resultat. 

Helt overordnet er der to nye firebogstavforkortelser (FBF’er) som man skal tage stilling til - nemlig de to cloudplatformparadigmer. Den første er nok den mest familiære for mange; Infrastructure as a Service (IaaS). Kort sagt, så er det virtualisering, du kan trække på og rekvirere on demand. Man flytter applikationer til IaaS og opnår en umiddelbar outsourcing på HW og infrastruktur. Platform as a Service (PaaS) har generelt en lidt højere grad af automatisering og optimering. Abstraktionsniveauet er større, da OS, OS services og infrastruktur er pakket pænt ind. 

Windows Azure er Microsoft’s PaaS platform – en public cloud. IaaS leveres af hostere eller implementeres som en private cloud efter de principper, der ligger bag ved Microsoft Dynamic Datacenter.

Hvis man kigger på hele leverancen af IT eller et helt IT-projektforløb, så er der ingen tvivl om, at cloud computing har større indflydelse end mange andre teknologiske udviklinger. NIST har en rimelig koncis beskrivelse af begreberne (NIST, 2009). ”(Kilde: http://csrc.nist.gov/groups/SNS/cloud-computing/cloud-def-v15.doc)”

Nye enheder, nye muligheder

Der er ingen tvivl om, at consumerization har bragt fokus på web 2.0, sociale medier og brugen af forskellige hardware-enheder. I sidste årti var det ofte nok at udstille én grænseflade til brugerne. I dag forventes det, at applikationer eller services kan konsumeres på forskellige enheder: telefon, pc, tv, Windows 7 Slate osv.

Brugerne af applikationerne stiller sig ikke længere tilfredse med sidste årtis browser-applikationer. For at assistere brugerne i deres kontekst ses større brug af interaktionsformer som touch, multitouch og tabletfunktionalitet. For yderligere at tilpasse applikationerne til den kontekst brugeren befinder sig i, kommer vi til at se større brug af forskellige ’sensorer’ som kan hjælpe med at identificere kontekst, f.eks. lokation, bevægelse, mikrofon osv. 

Senest har der været stor udvikling og momentum bag Silverlight. Silverlight er blevet det runtime, der kan distribueres til flest enheder. Med Silverlight 4 kom der mulighed for at lave COM interop og derved få adgang til den underliggende hardware. Silverlight 5, der kommer i beta inden sommerferien, vil på den ene side have fokus på flere features til medie-applikationer så som forbedret H.264, hardware og DRM support. På den anden side vil der være fokus på endnu bedre understøttelse af line of business applikationer, bl.a. gennem bedre databinding i XAML og fluid UI.

Hvor blev min vinkel på HTML 5 af? Alle byder sig til, når der inviteres op til ”HTML 5 dans”. Personligt vil jeg også interessere mig for HTML 5 i 2011. Måske knap så meget, som jeg interesserer mig for MVC, JQuery, CSS og HTML 4.01 og Silverlight. 

Parallel Computing – noget alle må tage stilling til i dag

Pc’er med fire kerner er næsten standard i dag. Til gengæld er clockfrekvensen faldende eller i bedste fald stagnerende. Eksisterende programmer udnytter ikke automatisk alle kerner. Det betyder, at folk, der køber en ny pc, formentlig ikke vil opleve, at applikationerne kører hurtigere, grundet den lidt langsommere clockfrekvens. Det samme gør sig gældende, hvis du laver en applikation, og på et tidspunkt vælger at skalere vertikalt, altså større maskine med flere kerner. 

Siden .NET 4.0 har der været understøttelse for parallel computing. Der er bl.a. kommet et Task begreb, som er en abstraktion over Threads. Tasks er mere light weight og har et rigere API. Desuden er der kommet flere extension methods til IEnumberable. Man kan nu kalde .AsParallel() på lister, for derved at distribuere load over flere kerner. En linje kode kan skærpe nysgerrigheden: 

var query = (from n in

                (from n in Enumerable.Range(1, 3000000).AsParallel()

                 select new { number = n, key = Guid.NewGuid() })

              orderby n.key

              select n.number);

Flyttes applikationen til en pc med flere kerner, vil .NET selv finde ud af at udnytte gældende hardware. 

Desuden kommer DryadLINQ henover sommeren. Det er en implementering af MapReduce samt et server runtime. Det betyder, at man vil kunne distribuere LINQ udtryk over flere servere. 

2011 bliver et år med masser af muligheder.

INtf?