GABC – Atos Amstelveen zaterdag 21 april 2018

“Intelligent Cloud, Intelligent Edge”

logo-2018-500x444

Voor het derde jaar op rij organiseert Atos de gratis Global Azure Bootcamp op haar hoofdkantoor te Amstelveen.

Aanmelden doe je hier!

Traditioneel ligt bij ons de focus op IoT en dus passeren alle mogelijkheden die Microsoft Azure op dit vlak biedt. Er worden naast presentaties ook verschillende workshops gegeven. En natuurlijk is er voldoende tijd om ook met onze Azure IoT platform experts van gedachten te wisselen. Of je nu vragen hebt over Domotica, Lora, Windows 10 IoT Core of industriële IoT, we gaan samen op zoek naar het antwoord.

De agenda voor de dag ziet er als volgt uit:

9.30 Inloop + ontvangst

10.00 Opening

12.00 Lunch

15.30 Tombola + Afsluiting met een hapje en drankje

Tussendoor zijn er meerdere labs, workshops en natuurlijk presentaties over IoT.

Nieuw is de door ons ontwikkelde workshop waarbij jouw laptop in een Edge gateway verandert. Hierbij krijgt je de opdracht om op eenvoudige wijze data uit een industrieel Modbus protocol naar de Cloud te brengen.

En we hebben wederom de workshop rond Lora en Azure op het programma staan.

Neem je laptop dus zeker mee. Voor de labs en workshops is een installatie van Visual Studio 2017 of Visual Code nodig en een Azure Account. Wie nog geen Azure account heeft krijgt zonder verdere verplichtingen de beschikking over een trial licentie.

Ons adres is:

Atos Nederland

Burgemeester Rijnderslaan 30

1185 MC Amstelveen

https://atos.net/nl/nederland

Route

(Gasten dienen zich op ons hoofdkantoor te kunnen legitimeren. Neem dus een geldig legitimatiebewijs mee.)

Advertenties

Tweede Azure IoT Community bijeenkomst op 1 februari 2018

Op 1 februari 2018 wordt al weer de tweede Azure IoT Community bijeenkomst georganieerd!

Na de succesvolle eerste bijeenkomst wordt het weer tijd voor een nieuwe mogelijkheid om elkaar te ontmoeten.

Deze avond is voor iedereen die geinteresseerd is de combinatie van Microsoft, Windows, Azure en natuurlijk IoT. Het maakt niet uit of je nu hobbyist, student of professional bent. Kom lang, neem je vrienden mee en deel jouw ervaringen of doe juist ervaring op.

Het programma voor deze avond is:

17.30 – Inloop en eten

18.30 – Korte introductie en laatste updates van Microsoft IoT producten

18.40 – Industrial IoT with Azure IoT Hub – door Eldert Grootenboer / Motion10

19.30 – Alles over de Azure Stream Analytics

20.15 – Borrel

De avond is dit maal verzorgd door Atos, de locatie is Burgemeester Rijnderslaan 30 in Amstelveen (routebeschrijving)

Dus meld je aan op via deze link (en neem legitimatie mee).

Meer informatie is te vinden op onze website. Tot ziens op de volgende bijeenkomst!

 

IoT at Microsoft Ignite 2017

The Microsoft Ignite just finished and what show it was again!

The Microsoft Ignite was held in Orlando and it’s a great event for Enterprise developers and IT Pros.

But if you are IoT minded like me, it’s also a great event regarding Windows 10 IoT and azure IoT.

And the best news is, a lot of break-out sessions are recorded and available already.

I counted 50+ Breakout sessions, Hands-on labs, Meetups, Microsoft Cloud Show en even a Cert Exam Prep. And there is also an Ignite channel on youtube.

Here are the videos and slides of sessions which are already available (or are available soon, only a teaser is shown on the page)

Continue reading “IoT at Microsoft Ignite 2017”

The Things Network bridge revisited

A few month ago, I wrote about how to collect telemetry from The Things Network back-end and send them to an Azure IoT Hub.

The code was simple and it only provided telemetry for one device. But the technology used, was working.

Last month, I was involved in creating a workshop for the TechDays 2016 in Amsterdam. The two-hour workshop gives a good impression how to build an IoT Backend in Azure. During this workshop, we used a NodeJs bridge to pass the telemetry to Azure.

This bridge is available at using the NPM package installer: npm install –save ttn-azure-iothub@preview

I got inspired by this bridge and now I have rebuilt my bridge to handle multiple devices and more!

Continue reading “The Things Network bridge revisited”

Azure IoT Hub video’s at Microsoft Ignite Australia 2015

One of my biggest resources of knowledge about Software Development is Channel 9 from Microsoft.

My second best source is visiting meeting, seminars, events, etc. But this is not always possible 🙂

fatfight3 Get it on Windows 10

But MSFT is so kind to provide video’s from sessions presented at their  events. And recently they had an Ignite in Australia.

Here is a slide from one of them with all the IoT sessions.

igniteaus2015

I looked them up and these are the links:

Internet of Your Things: Starting with the end in mind (video)

Windows IoT, UWP and the Remote Wiring API (Video) (Sourcecode)

Windows 10 for IoT: What is it and how do you develop for it (Just the PPT)

Connecting Your Devices to the Azure IoT Hub (video)

Seamless bi-directional communication between devices and Azure IoT Hub via Azure IoT Protocol Gateway (video)

But the video “Create the Internet of your things: The Microsoft IoT Suite” from Ulrich Homann is missing. Can somebody call him to get it fixed? Thanks. (perhaps this session from may 2015 has the same information?)

The reason to put the links here is because the search engine of Channel 9 would not provide these as a collection. It is a good thing some presenters take time to put a slide like this one in their presentation.

Update: The video “Windows 10 for IoT” is now not actually shown at https://channel9.msdn.com/Events/Ignite/Australia-2015/MOB111 which is the wrong Channel 9 page. The advertisement image is shown (MOB324) which seems to be the first still from the High-definition video. So download that one (it’s 3+ Gb) and you can enjoy MOB324.

Update 2: There is another video from Ignite in may 2015 about the Alljoyn / Allseen commitment. In my opinion Alljoyn is brilliant for accessing devices over the local network using this consumer/producer relationship.

Techorama 2015 – dag 2

Net als gisteren zal ik weer een aantal sessie semi-live samenvatten. Hopelijk haal ik het einde van de dag, de hoeveelheid informatie was gisteren al overweldigend 🙂

Internet of things, a road to success or absolute failure – Stefan Daugaard Poulsen

IoT is op het niveau van VB6 momenteel. Het is op het niveau van de hobbyisten.

De grote bedrijven barsten van de sensoren maar moet iedere dag achterhalen waarom bepaalde signalen niet meer doorgegeven worden.

Maar consumenten snappen het nog niet. Kijk, een bestuurbare lamp met meerdere kleuren is nog uit te leggen aan mijn ouders. Maar Stefan gaf ook een aantal voorbeelden van idIOTe devices (zoals de Ring).

IOT manifest:

  • Iot devices moeten voor zichzelf werken en beperkt connecties maken
  • De setup moet nihil zijn
  • Mijn Wifi moet niet vollopen
  • Het moet bruikbaar zijn
  • Het moet non-intrusive zijn
  • Het moet betrouwbaar zijn
  • Het moet echt iets toevoegen

Stefan gaf een aantal situaties:

– proximity, auto sensors (smoke detector, precision agriculture, sensors in bomen, early warning for earthquake, anti-diefstal, beveiliging)

– simple direct feedback (personal assistants, dynamische prijzen, versheid detective van fruit, assistentie bij werkzaamheden)

– excessieve feedback (handleidingen, augmentation, iets als hololens)

– mindchangers (tanden nog niet gepoetst, groepen mensen beïnvloeden, je geld beheren)

IoT moet dus een hoger doel nastreven om succesvol te worden.

Technieken? Denk aan security first, privacy second want vertrouwen is belangrijk

De devices moeten simpel zijn, het moet open zijn (als in open standaarden), autonoom, goedkoop, consument vriendelijk.

Dus de uitdagingen zijn: privacy, security, data verwerking, opslag en ‘futuristic thinking’, protocollen, ‘de laatste kilometer van de communicatie’, menselijke interactie

Voor nu?

Ga gave prototypes bouwen. Maar verleg focus van hardware naar interactie.

Big Cloud Workloads – Andy Cross

Azure is pas de laatste 18 maanden opeens populair. De vele jaren daarvoor werd het genegeerd, dat rare spul van MSFT.

WIN_20150513_104713

Azure is distributed. Als je met Jobs en Tasks gaat werken dan wordt het echt schaalbaar. Een taak van 24 uur op 1 machine zal ruim een uur op 24 machines duren (er is overhead en niet alles is schaalbaar).

En we moeten Grids en Clusters benoemen… gewoon een groepje van machines.

Maar fout-tolerant != retry logic en Distribution != Balanced

“Hand rolling” is niet de oplossing…

Wat we willen in High Performance Computation met 1000s cores. En iedere machine kan bij andere machines direct in het geheugen lezen en schrijven. Security moet dus op gehele cluster gezet worden, niet op een node.

Er zijn drie HPC classificaties: parameter sweep, soa en eventbus. Afhankelijk van workload op de clients kies je voor één van de drie.

HPC kan moeilijk omgaan met IO intensieve applicaties.

In Azure is er een HPC Pack beschikbaar. Zelfs Parametric Sweep wordt ondersteund. Er zijn wel keuzes te maken: wil je machines met of zonder zware communicatie netwerk aansluiting (InfiniBand).

Maar HPC is moeilijk.

Er is nu ook Azure Batch: Managed service voor zware berekeningen. Er is ook een SDK voor beschikbaar. Denk aan Blender rendering. Dit is ook op de TechEd gedemonstreerd.

Maar werkt dit ook met een Peta bytes aan data? Of megabytes per seconde aan doorvoer? Wel of niet gestructureerd? Met verschillende bestandsformaten of structuur?

Hadoop of beter bekend als HdInsight biedt hier ook een oplossing voor. Het is een open source oplossing voor Big Data. En er zijn ook SQL achtige talen om hier mee om te gaan (HiveQL en Spark-SQL).

Hadoop kan dus ook met streaming omgaan. Maar dit kan alleen op de Windows distributie, niet op Linux. Het Spark team ondersteunt het ook niet.

Kijk ook naar mBrace als je iets met big data wilt in c#.

En voor de toekomst zien er de taal R binnenkomen, MSFT heeft het bedrijf Rvolution Analytics overgenomen. Het kan zowel met Big Compute als met Big Data omgaan.

En R zal ook met Azure Batch om kunnen gaan.

Azure App Service; Building Workflows using Logic Apps – Sam Vanhoutte

Api Apps zijn simpele services. Volgens de spreker zou dit de Azure implementatie van microservices moeten zijn.

En in een bepaalde mate zijn de karakteristieken van Microservices ook op ApiApps te mappen.

Sam gaf al snel een demo over hoe een ApiApps aan te maken. De ApiDefinition in de apiapp.json was het meest opvallende. Want daarin is Swagger gedefinieerd als definitie van de api…

Kijk ook naar de configuratie van SwshBuckle. Daar is de UI voor eenvoudige testen te activeren.

In de toekomst zal het mogelijk zijn om je eigen ApiApp als een Nuget package in een gallerij te zetten. En dan kunnen andere deze kopen (of gratis krijgen als je dat wilt) en dan hosten ze die zelf, inclusief de configuratie die je ingebouwd hebt.

En automatic update is ook mogelijk. Als de maker een nieuwe versie van een apiapp aanlevert, dan wordt deze automatisch uitgerold op je eigen server. In de praktijk zal deze uitstaan. Want er kan een breaking change in zitten of de billing is aangepast…

Omdat de service met swagger opgeleukt is, kan MSFT ook heel makkelijk een client genereren voor zo’n service.

Een ApiApp heeft in zichzelf een Isolatedstorage voor ZEER eenvoudige opslag.

En je kunt de apiapp afhankelijk maken van een andere apiapp.

De gateway levert oauth security, dankjewel AMS!

LogicApps zijn workflows van gekoppelde apiapps. En deze kunnen binnenkort ook on-premise werken via Azure Stack.

WIN_20150513_121645

Het is een eenvoudige versie van Azure Biztalk maar er zijn nog steeds onderdelen van Biztalk beschikbaar zoals de EdiFact koppeling. Erg krachtig dus.

Logic Apps heeft ook een eigen taaltje om input en output te mappen en om keuzes te maken. De taal is nog erg beperkt. Geen idee hoe dit gaat lopen…

De volgende demo was dus logic apps. Hij liet zien hoe je in de portal een logic app kon aanmaken maar dit bleek ook via VS2013 / Azure SDK 2.6 te doen. Maar dan moest je wel de flow in json gaan intypen.

Er is ook beperkte flow beheersing mogelijk. Als een voorgaande stap fallt dan… Helaas is de flow erg spartaans en moet je ontzettend opletten welke stap van welke afhankelijk is.

Triggers kunnen zijn:

  • Recurrence
  • FTP
  • Api polling
  • Api App trigger
  • Webhooks
  • Conditionals

Debuggen kan met RequestBin om de output van de vorige stap te achterhalen.

Observaties van de spreker:

  • Het is goed toepasbaar voor lichte taken.
  • De kosten zijn moeilijk in te schatten.

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.