VSTS Extension – Tagging all resources within a Resource Group

In my current project I’ve stumbled upon a problem. We have many ARM templates and need to add tags to all resources. Doing this within templates can be cumbersome, so I’ve created a small VSTS extension that adds tags to all resources within a specific resource group.

The extension can be installed from https://marketplace.visualstudio.com/items?itemName=PeterRombouts.autotagging-extension

The working is pretty simple; enter the values for your subscription, and resourcegroup, and then add the tags.

The tag pairs should be entered, one pair per line, comma separated. The extension will add these tags to all resources in the given resource group, and will not do anything to the existing tags.

Remarks? Please do give feedback! The project is available on Github if you want to contribute!

ARM Outputs in VSTS pipelines

In my work as Cloud Solution Architect I often find teams struggling with the exact same problem. In this blogpost I will highlight one of those problems; passing on ARM output variables within a VSTS pipeline.

Many developers have Powershell or other scripts in place, that fix this problem, but I want to highlight an extension, which is freely available and does this for you, for free!

ARM Outputs by Kees Schollaart

 

This extension enables you to use the ARM Deployment outputs in your VSTS environment.

This step will use the last successful deployment within the selected resource group. If this deployment has outputs, all of them are copied to VSTS variables by the ARM Output key.

These outputs can then be used by default VSTS ways: $(same-key-as-in-arm-template)

Usually this task is ran directly after the ‘Azure Resource Group Deployment’ task.

So my pro-tip; Stop using your own scripts and implement this handy extension!

PS: On a sidenote, Kees is also a great guy, give him a tweet after you install this in your project 😉

Link to Marketplace: https://marketplace.visualstudio.com/items?itemName=keesschollaart.arm-outputs
Kees on Twitter: https://twitter.com/keesschollaart

Real-World Partitioning CosmosDb

Azure Cosmos DB is a globally distributed, multimodel database service designed to help you achieve fast, predictable performance. It scales seamlessly along with your application as it grows.

This blog explains exactly how it works and what to do in some scenarios. But in my work as Cloud Architect I sometimes need to dig deeper and figure out if my solution scales for a particular case.

For example, a ‘partition’ has a maximum size of 10GB, so it is really, really important to understand how this works, and how you can figure out your partition size over the time.

This blog will explain, using a recent real-world scenario, how you can determine your partition key and scaling.

Please note that your scenario can differ hugely, but there are some takeways in this blog that could help you when designing your solution.

Continue reading “Real-World Partitioning CosmosDb”

Debugging Azure Functions with LogicApps locally

Azure Functions are a great example of how serverless is conquering the cloud world we live in today. There are also many blogs in how-to-write-functions out there, of which the latest use the precompiled functions, in Visual Studio 2017.

Think of a scenario, where you want to test a LogicApp against your function, but that app obviously cannot connect to localhost. You have two options; You can deploy the Functions app to Azure and use remote debugging or you can use your own localhost, with the use of ngrok.

This blog will explain how to debug locally, when using other services in the cloud.
Continue reading “Debugging Azure Functions with LogicApps locally”

TechDays 2017 Presentation – Emotion and Face recognition using Cognitive Services.

Slides of my presentation; Emotion and Face recognition using Cognitive Services.

Abstract:
In this session I will show how to train and use the Face API for recognition of people. Secondly I will show an example of how to determine emotions using the APIs. After this session attendees will have a basic understanding of setting up the APIs, and know how to use and implement the Face and Emotion APIs on the Cognitive Services Stack.

Deploy LogicApps using linked templates

Deploying LogicApps with VSTS is easy. You can create a new project using the steps defined in this post and you are all set with deployment settings in place.

But, when you add more and more LogicApps your JSON file will grow and you might be better off putting each LogicApp within its own JSON. Not to speak of the parameters running wild within your files…
This post will explain how to set this up, and what is needed in your VSTS builds to enable the deployment of all the linked apps.

Continue reading “Deploy LogicApps using linked templates”

Text Analytics – Dutch Support

Recently, Microsoft added Dutch language support for the Text Analysis API within the Cognitive Services stack. In this blogpost I will show how to determine the sentiment of a newsfeed in Dutch.

The importance of language support

Most development articles are written in English. Most documentation is written in English. I’m Dutch and even I am blogging in English!

With the rise of chatbots and other dialogue based UX apps, native language support becomes ever more important. Think of an insurance company wanting to let users talk to their chatbot, or a banking app that lets you choose what mortgage you want for your house. In these situations most companies and clients want to use their native language in communicating with the apps.

With the latest update, the Text Analysis API now partly supports my native language Dutch (along with several other ones).

Continue reading “Text Analytics – Dutch Support”

Emotion Recognition using WPF

A lot of examples of the Cognitive Services include UWP applications and samples. But sometimes you have to support older operating systems, that force you to fall back on techniques like WPF. The use of webcams in WPF is not included by default in the framework.

In this blog I will explain how to implement the Emotion API and build a WPF application capturing your webcam.

A sample of an application you can create shown in the following screenshot. This application shows the realtime spline chart of emotions, and the average bubble chart of the recorded session.

Emotion App with near realtime tracking

Continue reading “Emotion Recognition using WPF”

Microsoft Build 2017 – Dag 1

Op de eerste dag van Build in Seattle maakt Microsoft het heel duidelijk; AI wordt de toekomst. De tooling en SDKs die vanaf nu beschikbaar zijn maken het eenvoudiger om snel applicaties te schrijven die gebruikmaken van de geavanceerde services die Microsoft biedt op het gebied van cognitieve apps.

Keynote

Tijdens de Keynote zijn veel nieuwe diensten aangekondigd, en dat is uiteraard te zien op Channel 9. Erg indrukwekkend was de demonstratie van de verzameling van nieuwe cognitive services toepassingen. In de demo wordt een werkplaats gesimuleerd, waarbij alle personen op de werkvloer worden herkend, én er bepaalde privileges kunnen worden toegekend. In dit geval mag een stuk gereedschap door bepaalde personen worden gebruikt, en als een niet geautoriseerd persoon deze pakt, worden meldingen gegenereerd via bots. De moeite waard om te bekijken dus!

Azure

Op het gebied van Azure wordt uiteraard continu doorontwikkeld door Microsoft. De nieuwe Azure Cloud Shell is vanuit het portal in je browser te benaderen, waarbij je dus via CLI alle bewerkingen kan doen zoals nu ook via je desktop CLI. Er is een nieuwe Microsoft Azure app voor mobiel, waarbij je al je resources kan zien en bedienen vanaf elke plek.

Debuggen op Azure is nu ook een stuk makkelijker geworden met Visual Studio snapshot. In feite is het geen echte debug sessie, maar wordt er op bijvoorbeeld productie een snapshot gemaakt waardoor je snel problemen die wellicht enkel op productie voorkomen, kan onderzoeken en verklaren.

Ook op gebied van serverless, functions en Logic apps is nu eindelijk ondersteuning voor tooling in Visual Studio 2017. Tevens is Application Insights voor functions nu beschikbaar, en niet meer in preview. Dit maakt het een stuk eenvoudiger om de algehele staat van alle serverless code beter in de gaten te houden.

ASP.NET / Core 2

Voor het ontwikkelen op meerdere platformen is er nu .Net Standard.  Het is niet echt een framework maar meer een set afspraken. De vergelijking wordt getrokken met de API levels zoals je deze kent van de Android SDKs. Ook de ontwikkelingen rondom ASP.NET Core 2 worden uitgebreid getoond, en beide sessies waar Scott Hanselman medepresentator is, zijn gezien zijn energie en humor zeker de moeite meer dan waard. Op dit moment zijn ze nog niet beschikbaar op Channel 9 maar houdt de site in de gaten.

Project Emma

Als afsluiter van de blog het project Emma. Dit project is een erg indrukwekkend voorbeeld van hoe wearables en IT het leven van een Parkinson patiënt, een grafisch ontwerper, een stukje beter maakt. Bekijk de video, ook tijdens de Keynote, en ik hoop dat er erg veel mensen geholpen mee kunnen worden.

Op naar dag twee van Build hier in Seattle!