Build 2015 – dag 2

Om Build keynote dag 1 i mångt och mycket handlade om att annonsera en mängd spännande nyheter, handlade keynote dag 2 mer om hur du kan använda teknikerna, med fler hands on kod-exempel i Visual Studio som visade hur man faktiskt bygger Universal Platform-appar.

Men vi fick också veta att nu finns det som hintades om i gårdagens Holo Lens demo med en Raspberry Pi tillgängligt: Windows 10 IoT Core. Goda nyheter för oss som har väntat på att få köra Windows på Raspberry 2 eller Arduino.

En annan sak som överraskade positivt var att Microsoft nu satsar hårdare på media och audio-API:er för Windows. Kul också att det svenska företaget Propellerhead lyftes fram som exempel på keynoten.

Andra nyheter som presenterades var Vorlon för att fjärrdebugga javascript, Project Oxford som tillhandahåller REST-api:er från Microsoft Research för ansiktsigenkänning, taligennkänning, bildanalys och språkförståelse samt GitHub Enterprise for Azure.

how-old.net

how-old.net

En rolig demosajt som heter how-old.net har gjorts tillgänglig för att visa på styrkan i dessa API:er samt Azure Stream Analytics. Den drog klädsamt av 7 år på min ålder när jag testade den :-)

En stor del av keynoten handlade också om Internet of Things och Machine Learning, illustrerat med uppkopplade kossor. En Microsoft-chef som jag inte sett tidigare, Joseph Sirosh,  höll i denna del – och han var helt briljant talare. Du kan se en tidigare inspelning av samma föredrag här.

Inte lika många kioskvältare på dag 2:s keynote, utan mer praktiskt hands on demonstrationer, men ändå med tillräckligt mycket nyheter insprängda för att hålla igång känslan av ett Microsoft som nu ligger långt ovanför konkurrenter vad gäller innovationshöjd.

 

Build 2015 – dag 1

I den inledande keynoten på Build 2015 så märktes tydligt hur viktig Azure-plattformen har blivit för Microsoft. Efter en kortare inledning av Microsofts VD Satya Nadella fick moln-chefen och utvecklar-idolen Scott Guthrie ta över scenen. Han inledde med några intressanta och imponerande fakta – bland annat:

  • Det finns nu över en miljon servrar i Azure-klustret
  • 1,4 miljoner SQL Databases körs i Azure
  • 425 miljoner användare finns registrerade i Azure Active Directory

Därefter var det dags för att visa och demonstrera applikationsbehållar-tekniken Docker i Azure med Dockers VD och Azure CTO:n Mark Russinovich. Docker, som nu också går att köra i Windows, kommer att få stor betydelse för distribuering och skalning av lösningar i Azure framåt.

Sedan klev utvecklar-idol och Scott nummer 2 upp på scenen: Scott Hanselman. Hanselman körde en demo av Azure App Service och visade en ny Android emulator i Visual Studio.

Men den riktigt stora skrällen var när han demonstrerade ett helt nytt IDE som går att köra både i Linux, Mac och Windows: Visual Studio Code. Programmet i sig är en Node.js-applikation skriven i TypeScript/JavaScript. Eftersom Microsoft själva använder själva Visual Studio Code för att utveckla Visual Studio Code så lämpar den sig utmärkt för just Node.js-utveckling (men är inte begränsad till det).

Därefter ägnade han en stund åt ett gäng spännande nyheter för Azure SQL Databases och data-plattformen i stort:

  • SQL Data Warehouse – data warehouse som en tjänst
  • Transparent Data Encryption för att förenkla kryptering av data i Azure SQL Databases
  • Fulltext-sök i Azure SQL Databases. När det gäller sök tycker jag man först och främst ska kolla på Azure Search som alternativ, men för legacy-system kan det vara intressant.
  • Azure Data Lake för att lagra och arbeta med stora mängder ostrukturerad data.
  • SQL Database elastic pool. Det här är en riktigt intressant funktion för de scenarion där man hanterar en databas per kund/avdelning/område och behöver kunna dimensionera dessa utifrån varierande användningsgrad. Med elastic pool kan du säga att du vill ha en resurspool med en viss nivå av garanterad prestanda och de ingående databaserna delar på denna prestanda.

Hanselman lämnade sedan scenen och det var dags för en kortare demo av några nyheter i Office bl.a. kring SAP-integration.

Sedan var det dags för det som många hade väntat på: nyheterna för utvecklare i Windows 10.

Terry Myerson berättade om den gemensamma Windows Store som kommer finnas för alla versioner av Windows oavsett vilken device det körs på samt Windows Store for Business för att möjligöra publicering av interna företags-appar.

Därefter om de fyra olika sätten som du kan utveckla Universal Windows Apps på – appar som kommer kunna köras i Windows, Windows Phone och kommande versioner av Windows:

  1. Webb-sajter. Kapsla in din webb-sajt och kör som en app.
  2. Win32 and .NET. Det blir nu möjligt att använda dina befintliga Win och .NET-kunskaper även för Store-appar.
  3. Java och C++ från Android-appar. Windows Phone får möjighet att exekvera kod från Android-appar. Fortfarande rätt oklart exakt vilka begränsningarna blir för detta, men förmodligen så finns det ett antal specifika API:er som inte är direkt portabla,
  4. Objective-C för iOS. Genom ett verktyg kan du porta ett Objective-C-projekt till en Visual Studio-solution som sedan kompileras och kan köras i Windows Phone. Även här råder viss oklarhet exakt vilka begränsningarna kommer att vara.

Efter det tog Joe Belfiore över scenen. Han är en av mina favorit-presentatörer vad gäller Windows-delarna från Microsoft, kör alltid med en avslappnat skön stil, utan att vara insäljande.

Den liten skräll för en tid sedan var att Internet Explorer kommer upphöra som varumärke – nu annonserades vad namnet på webbläsaren i Windows 10 kommer att bli: Microsoft Edge.

Joe snackade lite med Cortana, visade lite av det nya Windows 10-gränssnittet och annonserade den nya imponerande ‘Continuum for phones’-funktionen som betyder att du kan köra ut program från telefonen på en stor skärm, koppla in tangentbord & mus och arbeta med dem som om du hade en dator.

Holo Lens Demo

Holo Lens Demo

Därefter avslutades keynoten med några fullkomligt lysande demos av Microsoft Holo Lens, vilket fick en fullkomlig våg av ha-begär skölja genom publiken – otroligt cool teknik med massvis med intressanta tillämpningar.

Det ska bli mycket intressant att se vad keynote dag 2 på Build har att bjuda på, jag misstänker att Microsoft kan ha ytterligare några äss i rockärmen att förvåna folk med.

TechX Azure – Introduktion till Azure SQL Database

Idag hade jag förmånen att få medverka på Microsofts Azure TechX-konferens. Konferensen var fullsatt med över 250 deltagare som tagit sig till Microsofts kontor utanför Kista för att få ta del av tre parallella spår under två dagar fullspäckade med intressanta dragningar. Kul!

Den mest spännande dragningen jag själv gick på tyckte jag var Robert Lucianis föredrag om Machine Learning. Grymt intressant, inte bara ur ett specifikt teknikperspektiv, utan om något som kommer omvälva hela vår arbetsmarknad – i takt med att smarta maskiner kommer ta över mer och mer av vad vi gör idag. Tyvärr så spelade inte just den sessionen in, men du kan se en intro film om ML i Azure på Channel9 här.

Precis som på TechDays hade vi även med oss vårt IoT-robotprojekt, med uppkopplade legorobotar, vågar och “Candy Push”-godistävling: TechXRobot

Introduktion till Azure SQL Database

Min egen session handlade om Azure SQL Databases. Powerpoint-bilderna som jag visade finns här: Introduktion till Azure SQL Database.pptx.

I presentationen nämnde jag en viktig aspekt: nämligen vad som INTE stöds i Azure SQL Database idag. Här finns Microsofts dokumentation kring vad som inte stöds i Azure SQL Database idag.

De demos jag gjorde av SQL Management Studio var gjorda med Management Studio 2014 samt en uppdatering som gör det möjligt att bland annat högerklicka och välja “Edit Top 200 rows” och “Design” precis som du är van vid från lokala SQL-databaser. En bra genomgång av vad som är nytt i Azure SQL Databases med den nya v12-versionen (som alltså motsvarar SQL Server 2014) finns här.

För att undersöka resursutnyttjandet jämfört med de “DTU”:er, Database Throughput Unit – som du har tillgång till i en viss version av Azure SQL Database så körde jag följande script (finns tillgängligt på MSDN här):

-- dm_db_resource_stats

SELECT
AVG(avg_cpu_percent) AS 'Average CPU Utilization In Percent',
MAX(avg_cpu_percent) AS 'Maximum CPU Utilization In Percent',
AVG(avg_data_io_percent) AS 'Average Data IO In Percent',
MAX(avg_data_io_percent) AS 'Maximum Data IO In Percent',
AVG(avg_log_write_percent) AS 'Average Log Write Utilization In Percent',
MAX(avg_log_write_percent) AS 'Maximum Log Write Utilization In Percent',
AVG(avg_memory_usage_percent) AS 'Average Memory Usage In Percent',
MAX(avg_memory_usage_percent) AS 'Maximum Memory Usage In Percent'
FROM sys.dm_db_resource_stats;

Följande SQL-script är intressant om du vill undersöka en äldre “Web”- eller “Business”-version av Azure SQL Database för att se vad den motsvarar i den nya modellen:


-- DTU mapping, kan bara köras i gamla Web/Business Master db
WITH DTU_mapping AS
( SELECT *
FROM ( VALUES (1, 10,'Basic'), (2, 20,'S0'), (3, 40,'S1'), (4, 100, 'S2')
, (5, 200, 'P1'), (6, 400,'P2'), (7, 1600, 'P3')
) AS t(id, percent_of_S2, target_edition)
), rc as
( SELECT start_time, end_time
, (SELECT Max(v)
FROM (VALUES (avg_cpu_percent)
, (avg_physical_data_read_percent)
, (avg_log_write_percent)
) AS value(v)) as [avg_DTU_percent]
FROM sys.resource_stats
WHERE database_name = 'NamnPåDinDB'
)
SELECT rc.*
, (SELECT TOP(1) t.target_edition
FROM DTU_mapping AS t
WHERE t.percent_of_S2 > CAST(1.2*rc.avg_DTU_percent as int)
ORDER BY t.percent_of_S2) as target_edition
FROM rc;

En utförlig artikel om hur du ska dimensionera Web och Business-version finns här.

Slutligen så visade jag en demo av Elastic Scale som hjälper dig att skala ut Azure SQL Databases på flera instanser. Den demo jag visade på utskalning av Azure SQL Dataabases finns här.

TechDays 2014

Förra veckan medverkade Active Solution på Sveriges största Microsoft-konferens TechDays. Vi medverkade i Microsofts monter och visade vårt Internet of Things-influerade spel “Candy Push Saga”, som gick ut på att via mobilen styra två robotar – som kommunicerade via Webbsocket mot en Azure Web Site. Spelet gick ut på att putta ner godisar i två hål i spelplanen. Godisar som vägdes av vågar under hålen – vågar som naturligtvis också var uppkopplade mot Azure och lagrade resultatet i table storage.

Candy Push Saga

“Candy Push Saga” in action på Techdays.

Jag gjorde ett litet inhopp innan keynote och hjälpte Dag König och Joachim Nässlander att värma upp inför keynoten med lite frågespel om programmeringsspråk man minns (eller kanske glömt i mitt fall :-) Kul var det hursomhelst.

Jag medverkade också i en intressant paneldebatt om molnets påverkan på arkitektur och utvecklingsprocesser tillsammans med Magnus Mårtensson, Sten Sundblad, Fredrik Normen och Dag König. Den kommer förhoppningsvis publiceras via Dag Königs blogg inom kort. Edit: här är direktlänken till vår paneldebatt.

Sedan körde jag en session om Azure Web Sites sista passet dag 2. Tack alla som kom till den sessionen trots att det var sent på dagen och sista passet! Den kod som jag demade finns tillgänglig här och de powerpoint-bilder jag visade finns här.