Techorama 2015 – dag 1

De Techorama is een twee-daags congres in een bioscoop te Mechelen, België. Er zijn meerdere tracks naast elkaar, uiteenlopend van Mobile, IoT, Azure, Enz.

WP_20150512_001

Mijn aandacht gaat voornamelijk uit naar meer Azure kennis opdoen en ik zal van een aantal sessies een (semi) live verslag doen. Dit zal ongetwijfeld spelfouten en kromme zinnen opleveren maar dat heeft ook zijn charme (ahum).

De lokatie is overigens een bioscoop, dus we zitten de hele dag in het rode plush naar enorme beamerschermen te kijken.

De keynote is van Hadri Hariri en gaat over “The Silver Bullet Syndrome”.

Hari vindt de presentatie zelf niet zo informatief, maar dat viel gelukkig wel mee.

Hij begon met de voorlopers van WCF zoals Midas, Corba, Dcom, etc. En vertelde over het mooie ABC verhaal maar dat het snel omdraaide naar de configuratie hel. De belofte werd niet ingelost.

WIN_20150512_091834

Daarna werd Rest aangehaald en nu wordt er over MicroServices gepraat. Hoe klein moet een microservice zijn, bijvoorbeeld?

En hetzelfde gebeurde met DAL. Opeens moest xHibernate gebruikt worden. En nu zijn ORMs opeens slecht. CQRS is nu hot. Maar de DAL is niet het probleem. De onderliggende opslag is de belemmering. Wat is de silver bullet voor opslag? No sql?

En ook de silver bullet van ontwikkeltalen kwam naar voren.

Wij doen het zelf fout. Functionele talen zijn een oplossing voor OO. Maar Javascript neemt de wereld over (volgens tellingen in GIT).

Nu kwamen er een aantal pakketten voorbij: angular, react, etc. Wat is hype en waarom is het onstaan?

Maar er is geen conclusie. Er is geen zilveren kogel…

Waarom springen we steeds op de trein van nieuwe technologie?

Software is niet het doel voor ontwikkelaars. Het is de automatisering. Daar doen we het voor. Upgrades zijn niet ons doel. We willen betere automatisering. En onze drang tot innovatie maakt ons manisch om de nieuwste technologie te gebruiken.

Maar we moeten op de context letten. Als [groot bedrijf] overstapt naar een bepaalde technologie, moeten wij dat dan ook? Want zij proberen ook maar wat en kijkt wat er aan de muur blijft plakken.

Wij kunnen niet gokken. We moeten niet achter glimmende zaken aanrennen.

Of zijn we CV gedreven? Proppen we zo veel mogelijk technologie in onze projecten of denken we na hoe we voor de klant kunnen automatiseren op de veiligste, goedkoopste manier.

Evalueer dus wat anderen roepen. Waarom wil je iets nieuws gebruiken? Wat levert het je op?

Microsoft heeft op de stand fraaie stickers, een must have:

WP_20150512_002

En natuurlijk is er ook swag:

WP_20150512_003

SELECT value from DataStream – Alan Smith

Dit is een sessie van Alan Smith rond Azure EventHub en StreamInsight.

Het gaat om grote hoeveelheden data dit continue binnenkomt in een queue en over de tijd heen gecontroleerd moet worden. Denk aan een gemiddelde temperatuur van het afgelopen kwartier, het hele jaar door. En dat kunnen dus miljoenen berichten per seconde zijn.

WIN_20150512_102336

En dit willen we via een SQL achtige taal representeren.

Overigens kunnen we de invoer simuleren via de blob storage.

StreamAnalytics bewerkt het en de output wordt weer opgeslagen in SqlAzure of andere storage. Het is dus indikken en filteren.

Berichten kunnen Json, Csv of Avro zijn (de laatste komt van Apache).

Maak dus een job aan in StreamAnalytics. En geef voor de job de input op. Dit kan dus blobstorage of eventhub zijn. De output is dan ook te selecteren.

En schrijf daarna je query. Een query kan zijn:

Select driver, avg(speed) from telemetry group by SlidingWindow(second, 10), driver having speed > 100

Er werd gedemonstreerd hoe even een testbestand met jsonberichten werd gebruikt om de query te testen.

We willen dus door de tijd heen filteren. We hebben drie testen: Sliding interval, Tumbling interval en Hopping interval. Let op het aantal berichten wat de keuze kan opleveren. Sliding window kan een verdubbeling van data opleveren!

Maar let er op dat de test standaard niet de tijdsafhankelijkheid test. Maar we kunnen dit gelukkig wel forceren door de timestamp te definiëren.

En de ene query kan gefilterd worden als bron voor een andere query. Erg krachtig dus!

Leuk was dat het racespel van de Azure Bootcamp van enkele weken geleden ook door StreamAnalytics heen gehaald is en dus weten we van iedere speler de gemiddelde snelheid, maximum snelheid, etc. Waarom? We weten van iedere speler de plaats op de track, de stuurpositie, snelheid, etc. Dit kon ook gesimuleerd worden.

Job kunnen real time draaien maar het kan ook draaien alsof het enkele uren/dagen geleden is. De data wordt namelijk enige tijd bewaard in de eventhub. En je kunt ook starten waar je de vorige keer gestopt bent. Handig als je tussendoor de query wilt aanpassen.

Dit is erg interessant en vooral de export naar CSV voor Excel voor verdere verwerking was erg leuk om te zien.

The internet of your things – Jan Tielens

Deze sessie begon met een nogal algemene (saaie) opzet. Helaas moeten we nog even wachten op echt interessante zaken. Later dit jaar komen de Azure IoT Suite en de IoT Hub uit. Hiermee zijn algemene IoT vraagstukken zoals command&control, identiteit en dataoverdracht slim opgelost.

WIN_20150512_122454

De EventHub kwam iets te snel voorbeid. En StreamAnalytics is in de vorige sessie van Alan Smith in meer details uitgelegd.

De demo maakt de partition key en retention time zichtbaar van de EventHub.

De consoleapp demo rond de Raspberry pi met mono erop was wel erg interessant. Helaas werd niet helemaal getoond hoe de een bericht helemaal door het systeem doorgegeven werd tot aan de live rapportage.

Ook de Windows 10 IoT core demo op de Raspberry Pi2 was interessant.

Managing Azure Workloads with Chef – Rasmus Hald

Rasmus gaf al snel aan dat er DevOps hackatons in Amsterdam gaan komen, iets wat in Amerika al populair is.

WIN_20150512_133818

Het was een DevOps sessie hoewel Rasmus ook de tem ‘NoOps’ noemde, de doodsteek voor IT-Pro dus.

Infrastructure as Code gaat over de strijd tussen scale dimenties: # servers, bemensing, complexiteit en time-to-market.

Het gaat dus om het automatiseren van infrastructuur. En dat betekent dus ook complexe afhankelijkheden zichtbaar maken. En het moet fouttollerant zijn. En verschillende platformen moeten ondersteund worden. En ook Cloud resources moeten ondersteund worden.

Scripting heeft het voordeel dat het zelfdocumenterend is. En scripts is ook code dus zet dit in een versiebeheersysteem (inclusief auditing en workflow voor goedkeuring).

Dan Chef.

Een demo. Op zijn ontwikkelmachine stond de Cfef Dev kit en Azure Powershell. En er is een Chef server geplaatst… ergens… wellicht on premise.

Hij werkte dezelfde hoeveelheid werk af, met de hand, via knife (een cross platform shell script dos box (..)) en powershell. Was Chef de snelste? Daar leek het op..

De chef server werd geconfigureerd via een Manage Website (gratis tot vier nodes).

Chef valt uiteen in cookbooks en daar staan recipies in (in dit geval een aprate recipy per operating system).

In de omgevingen (Azure, on-premise, AWS) staan client nodes geconfigureerd.

In de checf recipy stond gewoon powershell geschreven omdat we naar Windows deployen. Niks nieuws leren dus… voor de andere omgevingen (Linux, AWS) werd knife gebruikt.

Maar we rollen dus een kookboek uit.

Kortom, waarom Chef als je ook Powershell kunt gebruiken? Nou, soms kan dat niet. Als je een gemixte omgeving hebt, dus geen windows-only, dan is Powershell niet toereikend. Als je ook met Amazon en Google of je eigen on-premise servers te maken hebt met daarop linux, dan wordt Powershell een uitdaging. Met Chef is dit eenvoudig.

In de nabije toekomst zal Chef nog verder geïntegreerd worden met Azure.

EF7, what have you done with my ORM? – Julie Lerman

.. is compleet herschreven

.. heeft de bekende interfaces/APIs

.. heeft betere interfaces/APIs

.. is not backwards compatible!

Het EF team heeft besloten door zo ontzettend veel technical dept om het framework compleet te herschrijven.

Want het team wilt ook niet-relationele platformen ondersteunen. En het kan ook op eenvoudige platformen draaien zoals Windows Phone en store apps.

De EDMX en de Object Context zijn hierdoor gesneuveld. Ook EntitySql en automatic migrations gaat verloren.

Sterker nog EF7 blijft nog even in preview/pre-release want ze lopen erg achter op schema en willen minimaal ASP.Net 5 en coreCLR ondersteunen: “Lean and Composable”.

Je kunt dus naast de EF7 core nuget package de gewenste andere packages ophalen. Wil je geen migrations? Dan hoef je die niet op te halen.

EF7 moet naast CoreCLR ook op de cross platform CLR gaan draaien (linux, ios, etc.). SqlLite en PostgreSql moeten ook ondersteund gaan worden. En ze willen In Memory data gaan ondersteunen. Fantastisch voor unittesten!

En ze willen ook Redis cache oppakken. En ze willen zelfs NoSQL gaan ondersteunen (Azure Table Storage is als POC ondersteund). WUT? Er zit toch een R van relational in ORM?

EnityModel, DbContext, Migrations, SaveChanges, Change tracking en LinQ2entities zal amper veranderen.

En dan nu de langverwachtte functionaliteit die niet kon zonder de enorme refactorslagen: Batch CUD, Unique constraints (maar dan wel goed), queries kunnen nu slimmer uitgebreid worden met eigen code (voorheen werd geprobeerd hier SQL van te maken), type conversions.

EF7 moet ook IOC vriendelijk maken.

Entiteiten kunnen ook een ‘schaduw toestand’ krijgen?? Hmm. Geen demo hiervan dus.

Maar EF6 blijft voorlopig nog wel even bestaan. En maak de keuze of de pijn van overstappen gerechtvaardigd is met de voordelen.

 

Advertenties