There were a lot of great Azure Service Fabric announcements at Build this year. Most importantly, you can now run Windows Server Containers on Service Fabric. Linux remains in public preview for now, but will be GA’ing soon in the next release. You can read all about these announcements over at the Azure Service Fabric Team blog.

There were two much smaller features that I especially liked though. Both are changes in the portal experience for creating new clusters.

Continue reading

I’m currently working on a project where we use Azure Event Hubs to collect telemetry data from connected field devices such as gas and electricity meters. This data gets processed in a variety of ways. We use Azure Stream Analytics to transform and forward the data to various subscribers. For more complex scenario’s where the functionality provided by Stream Analytics isn’t sufficient, we use the Event Processor Host SDK (hosted in a stateless Service Fabric service) to process the events.

Continue reading

I recently visited the DEVintersection conference in Las Vegas. It’s a very nice conference with interesting workshops. I attended a two-day TypeScript / Angular2 workshop by John Papa and Dan Wahlin.

While there, Edwin van Wijk and I interviewed Scott Guthrie and Scott Hanselman for the dotnetFlix podcast. You can view these episodes at the following links:


Tech Days NL 2016

The videos of the two Tech Days NL 2016 talks I did are up on channel9:

Both are in Dutch, and unfortunately there’s no sound after the first couple of slides of the second talk due to some technical difficulties :-(

At the conference I also had the chance to talk to both the opening and closing keynote speakers for the dotnetFlix podcast. You can view these episodes at the following links:


For a Service Fabric project I’ve been working on, the project team has implemented a release management pipeline in Visual Studio Team Services. When a commit is pushed to the master branch, the build is run and (if succesful) a release is created and automatically deployed. The release pipeline basically does two things: 1) make sure the environment is up to date using some ARM templates and 2) upgrade the Service Fabric application to the new version.

Upgrading the application requires that you increment the version numbers in the application and service manifests. One way to deal with this is simply by incrementing the version number of each service whether or not it has actually been modified. You can do this by using an auto-generated build number as explained in Colin’s blogpost. In a lot of situations this works fine because Service Fabric allows for zero downtime deployments.

However, we needed to be sure that some services aren’t unnecessarily upgraded. Some of the stateful services in the application maintain connections to external hardware devices. We don’t want to interrupt these each time we need to roll-out a change in any of the other services.

Continue reading

When you create a Service Fabric cluster using the Azure Portal, there is no way to select an existing Virtual Network (VNET) to host the cluster in. Usually there is no harm in running the cluster in its own VNET. However, when you’ve got an existing VNET to support integration with a third party using a VPN tunnel, this may become a problem. Reconfiguring / recreating the VPN tunnel whenever a new cluster is deployed is not an ideal situation.

Fortunately, it’s relatively easy to make some changes to the ARM template used by the Azure Portal to support an existing VNET.

Continue reading

In this post I’ll demonstrate how to protect an Azure API App by using App Service authentication; a turn key solution for providing authentication and authorization to any kind of Azure App Service. It supports many types of authentication providers, but for this post I’ll use Azure Active Directory. Once that is set up, I’ll show how to generate a client library for the API using AutoRest. The generated client authenticates with the API App by using a bearer token that is retrieved from Azure AD by providing application identity (service principal) credentials.

Continue reading

Sander Molenkamp

Sander Molenkamp is a Solution Architect at Info Support with a passion for cloud native architectures. He’s a Microsoft Azure aficionado and a Microsoft Competence Center lead within Info Support, where amongst other things he enjoys co-hosting the dotnetFlix podcast. Sander likes to travel, read books and lives in Heiloo in the Netherlands, with his wife, daughter and cat.

Solution Architect

The Netherlands