<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Erwin Staal</title>
    <link>https://staal-it.nl/</link>
    <description>Recent content on Erwin Staal</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>KVK: Staal IT, 56920202 - Copyright © 2025</copyright>
    <lastBuildDate>Sun, 03 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://staal-it.nl/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Enforcing Microsoft Defender for Cloud Across 30&#43; Subscriptions With Bicep</title>
      <link>https://staal-it.nl/posts/azure-defender-for-cloud-settings/</link>
      <pubDate>Sun, 03 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/azure-defender-for-cloud-settings/</guid>
      <description>&lt;p&gt;Security posture management is one of those things that starts manually and stays manual for too long. Someone enables Defender for Cloud on a subscription in the portal, picks a few plans, saves. Six months later a new subscription appears, nobody remembers exactly which plans were enabled on the others, and the configuration drifts. An audit comes along and suddenly you&amp;rsquo;re comparing screenshots.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Digital Sovereignty in the Microsoft Azure Cloud: Why It Matters More Than Ever</title>
      <link>https://staal-it.nl/posts/digital-sovereignty/</link>
      <pubDate>Sun, 05 Apr 2026 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/digital-sovereignty/</guid>
      <description>With President Trump back in the White House, the topic of digital sovereignty has returned to the center of political and business discussions in Europe. Recent events have shown how dependent we are on non-European hyperscalers like Microsoft and how quickly foreign political decisions can impact European organizations. But what exactly is digital sovereignty, why is it such a hot topic now, and how is Microsoft addressing these concerns in its Azure cloud?</description>
    </item>
    
    <item>
      <title>Installing COTS applications using Azure Gallery VM</title>
      <link>https://staal-it.nl/posts/azure-gallery-vm-app/</link>
      <pubDate>Mon, 03 Mar 2025 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/azure-gallery-vm-app/</guid>
      <description>When having the need to install COTS applications (Custom Off-The-Shelf) on virtual machines in Azure, you have multiple options to manage that. One of the options is to use the Azure Gallery VM Applications. As the name implies, its part of Azure Compute Gallery, formally known as Azure Shared Image Gallery. Azure Gallery VM Applications is a feature that simplifies the process of managing and deploying software packages on Virtual Machines (VMs) at scale.</description>
    </item>
    
    <item>
      <title>Get all available patches for VMs on Azure</title>
      <link>https://staal-it.nl/posts/get-all-available-patches-for-vms-on-azure/</link>
      <pubDate>Fri, 20 Oct 2023 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/get-all-available-patches-for-vms-on-azure/</guid>
      <description>Managing patches across many virtual machines (VMs) in an Azure environment is critical for ensuring security and performance. In Azure, we now have a new product: Azure Update Manager. The service can help us keep our machines up-to-date. Implementing a patch schedule is an aspect of maintaining the security and stability of an IT environment. Critical and security patches are often applied to all machines as soon as possible. Updating test machines before production machines is an often-used practice for other patches.</description>
    </item>
    
    <item>
      <title>Checking left over identities in Azure</title>
      <link>https://staal-it.nl/posts/checked-all-permissions-on-a-principal/</link>
      <pubDate>Wed, 20 Sep 2023 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/checked-all-permissions-on-a-principal/</guid>
      <description>Recently, I was working on a task where I had to delete a subscription because it was no longer needed. On that subscription, however, there were still some identities having permissions asigned. I wanted to check if those identities were still used in other subscriptions. Turns out there is no easy way to do this. So, I wrote a script to get all the principals on the subscription and check their permissions in all subscriptions in the tenant.</description>
    </item>
    
    <item>
      <title>Creating reusable modules with Bicep, Terraform or Pulumi</title>
      <link>https://staal-it.nl/posts/modularizing-iac-bicep-terraform-pulumi/</link>
      <pubDate>Sun, 12 Mar 2023 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/modularizing-iac-bicep-terraform-pulumi/</guid>
      <description>Over the years, I’ve been working with several infrastructure as code tools. One of the things that I always find essential, no matter the tool, is to write readable and maintainable code. One way to do that is to create a proper structure for what you are building. All of the IaC tools I have used allow you to modularize your code somehow. A module is a piece of code responsible for one specific thing.</description>
    </item>
    
    <item>
      <title>Installing multiple VM extensions on an Azure VM using Terraform</title>
      <link>https://staal-it.nl/posts/azure-vm-multiple-vm-extensions-using-terraform/</link>
      <pubDate>Sat, 25 Feb 2023 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/azure-vm-multiple-vm-extensions-using-terraform/</guid>
      <description>&lt;p&gt;In a recent project, we used Azure Datafactory in a closed network and needed to access resources on-premises. That means that you cannot use the Autoresolve runtime of Datafactory. We thus used our own VM and installed the Self Hosted Integration Runtime software using a VM extension. So far, so good. We needed to install another piece of software on that VM a little later in the project. I started adding another VM extension only to find out that you can only install one VM extension per VM on Azure. We needed to find a way to install multiple dependencies on the VM using a single VM extension in a configurable and manageable way. This blog will describe how we did that using Terraform.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Custom Domain on Azure App Service using Terraform and Cloudflare</title>
      <link>https://staal-it.nl/posts/azure-terraform-cloudflare-example/</link>
      <pubDate>Mon, 09 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/azure-terraform-cloudflare-example/</guid>
      <description>&lt;p&gt;The other day, I was building some infrastructure on Azure that contained an Azure App Service. I wanted to use a custom domain so that users can use the application over a nice domain name instead of the *.azurewebsites.net. The infrastructure is built using Terraform; luckily, there is a provider for Cloudflare. Cloudflare is where the domain&amp;rsquo;s DNS is managed. This blog post will walk you through the steps to do all the configuration.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Run a script during deployment with DeploymentScripts in Bicep</title>
      <link>https://staal-it.nl/posts/run-a-script-during-deployment-with-deploymentscripts-in-bicep/</link>
      <pubDate>Wed, 04 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/run-a-script-during-deployment-with-deploymentscripts-in-bicep/</guid>
      <description>On a recent project, I was using Terraform to build some infrastructure. It contained an Azure Web App with a custom domain configured. A custom domain name on a Web App allows you to access it using a friendly URL instead of the &amp;lt;your_name&amp;gt;.azurewebsites.net. In this project, the DNS records for the domain were hosted and managed on Cloudflare. Luckily, Terraform has a provider for both Azure and Terraform, and thus I could write a single module that would create the Web App, set the domain in Cloudflare, and configure the custom domain.</description>
    </item>
    
    <item>
      <title>Passing variables between stages in Azure DevOps pipelines</title>
      <link>https://staal-it.nl/posts/azure-devops-multistage-pass-variables/</link>
      <pubDate>Thu, 03 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/azure-devops-multistage-pass-variables/</guid>
      <description>&lt;p&gt;The other day I was working on an Infrastructure as Code project that involved deploying an Azure Container registry. That ACR is typically a resource that you deploy just ones in your production environment and not one per environment. You do that because you want container images to be used as immutable artifacts that are progressively deployed across all your environments.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Terraform Azure DevOps to Azure example pipeline</title>
      <link>https://staal-it.nl/posts/azure-terraform-example-pipeline/</link>
      <pubDate>Mon, 14 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/azure-terraform-example-pipeline/</guid>
      <description>&lt;p&gt;I finally had the opportunity to work with Terraform on one of my recent projects. I have been building Infrastructure as Code with ARM templates or Bicep for years. Together with two friends, I even wrote a &lt;a href=&#34;https://www.manning.com/books/azure-infrastructure-as-code&#34;&gt;book&lt;/a&gt; on that! Terraform was always on my list of tools to work with. I had played around with it a little in my spare time but never got the opportunity to put it to use in an actual project. This blog will help you get started!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Functions in ARM Templates</title>
      <link>https://staal-it.nl/posts/functions-in-arm-templates/</link>
      <pubDate>Sat, 16 Oct 2021 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/functions-in-arm-templates/</guid>
      <description>&lt;p&gt;To help build templates quicker, make them more expressive and reusable, there are many built-in functions at your disposal. And even if there isn&amp;rsquo;t a built-in function for your specific scenario, you can always write one on your own. The use of functions introduces pieces of logic into your templates, which can be used from expressions.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Automatically renew the image used in an Azure DevOps private agent</title>
      <link>https://staal-it.nl/posts/automatically-renew-private-agent-images/</link>
      <pubDate>Sun, 25 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/automatically-renew-private-agent-images/</guid>
      <description>&lt;p&gt;In a previous post, I wrote about creating your own hosted Build and Release agents in Azure DevOps. That process could be improved by regenerating the VM image, for example, every month. By doing that, you stay up-to-date with both the latest versions of all the tools installed as well as with security patches. This post will describe how to do that using an Azure DevOps pipeline which will be triggered monthly.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Configure Azure Security Center using Bicep</title>
      <link>https://staal-it.nl/posts/configure-azure-security-center-using-bicep/</link>
      <pubDate>Fri, 25 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/configure-azure-security-center-using-bicep/</guid>
      <description>&lt;p&gt;At a few of my recent clients, I&amp;rsquo;m working on moving their infrastructure to code using Bicep. Part of that is always the configuration of Azure Security Center. Things to configure are, for example, the services for which you want to enable Azure Defender or the email notifications. This blog will describe how to do just that.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>ARM template: getting deeply nested resource properties</title>
      <link>https://staal-it.nl/posts/arm-template-reference-not-allowed-in-reference/</link>
      <pubDate>Mon, 15 Mar 2021 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/arm-template-reference-not-allowed-in-reference/</guid>
      <description>&lt;p&gt;The other day I was deploying a private endpoint connected to a KeyVault using an ARM Template. By using a Private Endpoint one can assign a private IP address from your own Virtual Network to an Azure PaaS service like KeyVault, SQL, storage accounts, and others. To resolve the private IP using the service FQDN from within the VNET, I also needed to set an ‘A’-record in the private DNS zone.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Manual approval in an Azure DevOps YAML-pipeline</title>
      <link>https://staal-it.nl/posts/manual-approval-in-an-azure-devops-yaml-pipeline/</link>
      <pubDate>Sun, 31 Jan 2021 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/manual-approval-in-an-azure-devops-yaml-pipeline/</guid>
      <description>&lt;p&gt;Last week I was creating a YAML-pipeline in Azure DevOps to deploy some ARM Templates. Before deploying those changes to my production environment, I wanted to have a manual approval in place. Here&amp;rsquo;s how I did that.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Entity Framework Core and Migrations</title>
      <link>https://staal-it.nl/posts/db-per-tenant-catalog-database-ef-core-migrations/</link>
      <pubDate>Thu, 17 Dec 2020 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/db-per-tenant-catalog-database-ef-core-migrations/</guid>
      <description>Entity Framework could be a logical choice when building a .NET Core API that needs to talk to a database. In this blog, I&amp;rsquo;ll show you how to get started with EF and Migrations. We will create the models, the DbContext, and the migrations needed to upgrade your database when introducing changes. We will also see how we can deploy those changes in your Azure DevOps pipeline on each release.</description>
    </item>
    
    <item>
      <title>Database per tenant infrastructure</title>
      <link>https://staal-it.nl/posts/db-per-tenant-catalog-database-infrastructure/</link>
      <pubDate>Wed, 25 Nov 2020 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/db-per-tenant-catalog-database-infrastructure/</guid>
      <description>In the first post in this series, we&amp;rsquo;re going to talk about the infrastructure. We need some database server to host each tenant&amp;rsquo;s database and the shared database that contains information on all the tenants (like which database belongs to whom). We also need infrastructure to host the API on and off course, need something for configuration and secret management.
TL;DR: All templates and the pipeline can be found in my repository.</description>
    </item>
    
    <item>
      <title>Multi tenant app with database-per-tenant</title>
      <link>https://staal-it.nl/posts/database-per-tenant-series/</link>
      <pubDate>Sun, 15 Nov 2020 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/database-per-tenant-series/</guid>
      <description>I recently started building an architecture for a multi-tenant app to support a database per tenant (customer) scenario for one of my customers. Splitting your data in multiple databases like that has a few benefits like easy backup and restore per customer, better security by separation of data, and potential performance benefits. Especially the separation of data was a hard requirement here. I found this to be a nice challenge as it involves many moving parts to get it right.</description>
    </item>
    
    <item>
      <title>Using an Azure Virtual Machine Scale set as Azure DevOps agents</title>
      <link>https://staal-it.nl/posts/using-vm-scale-sets-as-azure-devops-agents/</link>
      <pubDate>Fri, 02 Oct 2020 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/using-vm-scale-sets-as-azure-devops-agents/</guid>
      <description>Over the past few weeks, I&amp;rsquo;ve been implementing a few new networking features in Azure for a client. We did that to make our infrastructure more secure. I&amp;rsquo;ve been playing around with VNET&amp;rsquo;s, Private Links, Services Endpoints and Access Restrictions on Azure Web App, SQL databases, Storage and KeyVault. One of the issues I stumbled upon quite quickly was the fact that when you restrict access to a resource, Azure DevOps can&amp;rsquo;t reach that anymore as well.</description>
    </item>
    
    <item>
      <title>Disable Azure Security Center recommendations using ARM Templates</title>
      <link>https://staal-it.nl/posts/override-security-center-default-policies/</link>
      <pubDate>Tue, 08 Sep 2020 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/override-security-center-default-policies/</guid>
      <description>&lt;p&gt;Azure Security Center gives you a great overview of the state of your workloads security hygiene and compliance. I recently got tasked with going through the recommendations, take action, and improve our overall security and compliance status. Some of the recommendations presented to me were in the &amp;lsquo;Enable advanced threat protection&amp;rsquo;-group, like &amp;lsquo;Advanced threat protection should be enabled on Azure App Service plans&amp;rsquo;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>My first look at Azure IoT Hub</title>
      <link>https://staal-it.nl/posts/azure-iot-hub/</link>
      <pubDate>Thu, 03 Sep 2020 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/azure-iot-hub/</guid>
      <description>&lt;p&gt;I recently decided it was time for me to take a shot at passing another few Microsoft exams. While studying for one of them, I noticed that I didn&amp;rsquo;t knew too much about Azure IoT Hub. I had never come across it in my daily job. So I gave myself the following goal: have something that acts as an IoT device that sends data into Azure IoT Hub and have something read that data and does something useful with it. When talking about the data that comes out of IoT Hub we usually split that into a hot and/or cold analytics path, in this blog I&amp;rsquo;ll show you an example of both.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Generating API clients using NSwag and Azure DevOps</title>
      <link>https://staal-it.nl/posts/nswag-client-generation-in-azure-devops/</link>
      <pubDate>Mon, 10 Aug 2020 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/nswag-client-generation-in-azure-devops/</guid>
      <description>&lt;p&gt;Whenever you create an API you probably want to be able to create some documentation around that API. Swagger has been around for a long time and allows you to explore and test your API using a nice UI in the browser. It also provides you with an OpenAPI spec in json format describing your service. OpenAPI is to REST what WSDL is to an SOAP-endpoint. Wouldn&amp;rsquo;t it be cool if you could generate your clients using that spec? Well, you can!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Azure App Configuration and KeyVault</title>
      <link>https://staal-it.nl/posts/azure-app-config-and-azure-keyvault/</link>
      <pubDate>Sun, 26 Jul 2020 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/azure-app-config-and-azure-keyvault/</guid>
      <description>&lt;p&gt;Recently I started on a new project and therefor a whole new application. It&amp;rsquo;s build using .NET Core and like many apps, it needs some configuration that varies between deployments. Azure now has a service called Azure App Configuration that allows you to store and manage your configuration. Combined with Azure KeyVault to store your secrets, we get configuration management nearly for free. Let&amp;rsquo;s dive in!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Autoscaling .NET Core Azure Functions on Kubernetes</title>
      <link>https://staal-it.nl/posts/autoscaling-your-azure-function-on-kubernetes/</link>
      <pubDate>Tue, 16 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/autoscaling-your-azure-function-on-kubernetes/</guid>
      <description>Everyone who worked with containers on Kubernetes probably agrees that there is a pretty steep learning curve in the beginning. Once you overcome that, you&amp;rsquo;ll find that it&amp;rsquo;s an awesome and very capable product and that it will make your life better (when used in the right context of-course). One area where Kubernetes is not so great is event-based autoscaling. That&amp;rsquo;s where KEDA comes in. KEDA stands for Kubernetes-based Event-driven Autoscaler.</description>
    </item>
    
    <item>
      <title>Securing your Azure SQL DB using Azure Private Link</title>
      <link>https://staal-it.nl/posts/securing-your-azure-db-connection-using-azure-private-link/</link>
      <pubDate>Wed, 27 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/securing-your-azure-db-connection-using-azure-private-link/</guid>
      <description>Whenever you create a new SQL Database on the Azure Cloud, one of the first things you probably do is set the &amp;lsquo;Allow Azure services and resources to access this server&amp;rsquo;-switch to &amp;lsquo;Yes&amp;rsquo;. This allows your App Service for example to access your database. It&amp;rsquo;s not very secure however since all an attacker then needs is your connections string. And although you are probably very careful with that, it might just accidentally get public.</description>
    </item>
    
    <item>
      <title>Public Speaking</title>
      <link>https://staal-it.nl/speaking/</link>
      <pubDate>Sun, 24 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/speaking/</guid>
      <description>Current and previous speaking engagements</description>
    </item>
    
    <item>
      <title>Using an ARM template to deploy your SSL certificate stored in KeyVault on an Web App</title>
      <link>https://staal-it.nl/posts/using-an-arm-template-to-deploy-your-ssl-certificate-stored-in-keyvault-on-an-web-app/</link>
      <pubDate>Sun, 20 Oct 2019 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/using-an-arm-template-to-deploy-your-ssl-certificate-stored-in-keyvault-on-an-web-app/</guid>
      <description>&lt;p&gt;Everyone knows it&amp;rsquo;s completely normal nowadays to have your website loaded over https. Troy Hunt explains why. There are quite some examples out there on how to use Let&amp;rsquo;s Encrypt certificates on your Azure web app, see this one by Henry Been for example. For most of us that&amp;rsquo;s a perfect and free solutions. It doesn&amp;rsquo;t work for all of us however.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Reading secrets from KeyVault in your Azure Cloud Service</title>
      <link>https://staal-it.nl/posts/reading-secrets-from-keyvault-your-azure-cloud-service/</link>
      <pubDate>Fri, 18 Oct 2019 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/reading-secrets-from-keyvault-your-azure-cloud-service/</guid>
      <description>Azure Cloud Service was one of the earliest Platform as a Service offerings by Microsoft Azure. With Cloud Services you can run web applications or run background applications. Since it is a PaaS offering, you dot not need to worry about the issues that comes with IaaS, patching for example and they offer a lot of flexibility. They are not officially deprecated, though Microsoft is pushing for the use of other PaaS offerings.</description>
    </item>
    
    <item>
      <title>Reading secrets from KeyVault in your Azure Web App</title>
      <link>https://staal-it.nl/posts/reading-secrets-from-keyvault-your-azure-web-app/</link>
      <pubDate>Fri, 18 Oct 2019 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/reading-secrets-from-keyvault-your-azure-web-app/</guid>
      <description>Azure KeyVault is a great Azure offerring that allows you to store for example secrets or certificates. You are currently looking at the first post out of a series of posts on how to grab secrets or certificates from KeyVault in your web applications. This post wil focus on creating the KeyVault, giving access to you Azure Web App and retrieving a secret in two different ways. I will be using an ASP.</description>
    </item>
    
    <item>
      <title>My k3s OpenFaaS Raspberry Pi cluster</title>
      <link>https://staal-it.nl/posts/my-k3s-openfaas-raspberry-pi-cluster/</link>
      <pubDate>Tue, 10 Sep 2019 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/my-k3s-openfaas-raspberry-pi-cluster/</guid>
      <description>A few months ago I build a Raspberry Pi cluster running K3S. I build it because I wanted to have a nice environment the learn more about Kubernetes and OpenFaas. It always feels nice to have something you can actually touch in this all software world I normally live in. After tweeting and giving a session about my OpenFaas Raspberry Pi cluster people started asking what parts the cluster consists of and what software I use to run it.</description>
    </item>
    
    <item>
      <title>Creating a simple OpenFaas template</title>
      <link>https://staal-it.nl/posts/creating-a-simple-openfaas-template/</link>
      <pubDate>Sat, 11 May 2019 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/creating-a-simple-openfaas-template/</guid>
      <description>Whenever you want to create a new function to run on OpenFaas your starting point would be an OpenFaas template. OpenFaas has a template engine build-in which can create new functions in a given programming language. There are the official/default templates and there are templates in the store provided by the community. If a language you would like to use isn’t available or it doesn’t suite your needs, you can always write your own!</description>
    </item>
    
    <item>
      <title>Your first .NET Core Serverless function on OpenFaas</title>
      <link>https://staal-it.nl/posts/your-first-net-core-serverless-function-on-openfaas/</link>
      <pubDate>Wed, 08 May 2019 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/your-first-net-core-serverless-function-on-openfaas/</guid>
      <description>In my previous blog I described how to set-up OpenFaas on a Kubernetes cluster with a little help from Rancher. Now it’s time to deploy our first serverless function. In this blog we’ll create and deploy a .NET Core function that reads a bit of config using both an environment variable and Kubernetes secrets.
Creating your first function In the previous blog we installed the OpenFaas cli. If you didn’t already, here are the instructions.</description>
    </item>
    
    <item>
      <title>About</title>
      <link>https://staal-it.nl/about/</link>
      <pubDate>Thu, 28 Feb 2019 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/about/</guid>
      <description>I am a Tech Lead and Azure Solution Architect at Xebia in the Netherlands, with over a decade of experience spanning startups, enterprise organizations, and international teams. I thrive at the intersection of technology, strategy, and leadership, helping companies deliver software to customers using DevOps practices and Cloud-Native architectures.
Being on the line between IT and business is where I feel most at home—creating technical solutions that address real user needs while driving teams toward success.</description>
    </item>
    
    <item>
      <title>Blog</title>
      <link>https://staal-it.nl/blog/</link>
      <pubDate>Thu, 28 Feb 2019 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/blog/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Contact</title>
      <link>https://staal-it.nl/contact/</link>
      <pubDate>Thu, 28 Feb 2019 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/contact/</guid>
      <description>Please fill out the form and I&amp;rsquo;ll get back to you! Feel free to reach out via social media or email as well.</description>
    </item>
    
    <item>
      <title>Need help?</title>
      <link>https://staal-it.nl/offerings/</link>
      <pubDate>Thu, 28 Feb 2019 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/offerings/</guid>
      <description>Hi, I’m Erwin Staal, a Azure Solution Architect, author of Azure Infrastructure as Code, and international conference speaker. I help organizations design, govern, and scale secure Azure platforms that actually work in practice, not just on paper.
With nearly 20 years of experience in software engineering, DevOps, and cloud infrastructure, I guide teams through every stage of their Azure journey: from strategic planning and technical architecture to hands-on implementation, governance, and long-term platform maturity.</description>
    </item>
    
    <item>
      <title>Octopus Deploy and Entity Framework migrations</title>
      <link>https://staal-it.nl/posts/octopus-deploy-and-entity-framework-migrations-copy/</link>
      <pubDate>Fri, 03 Feb 2017 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/octopus-deploy-and-entity-framework-migrations-copy/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://staal-it.nl/images/OctoEFSmall-300x160.png#floatleft&#34; alt=&#34;OctopusDeploy+EntityFramework&#34;&gt; A step that is very common in almost every deployment pipeline is the migration of the database. In this blog I’ll show you how to do this using Octopus Deploy and Entity Framework Migrations. I’ll be using a very simple ASP.Net MVC application called SimpleMVCApp. In the same solution, I’ve created a library project named SimpleMVCApp.Data in which my context, models, migrations and migration scripts reside. This application can be found on my GitHub account.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Continuous delivery bij SnelStart</title>
      <link>https://staal-it.nl/posts/continuous-delivery-bij-snelstart/</link>
      <pubDate>Thu, 22 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://staal-it.nl/posts/continuous-delivery-bij-snelstart/</guid>
      <description>Bij SnelStart ontwikkelen we boekhoudsoftware voor het midden en klein bedrijf. SnelStart doet dat al meer dan 30 jaar door middel van een desktopapplicatie en sinds kort ook met een online variant. Ongeveer drie jaar geleden zijn we bij SnelStart begonnen met de ontwikkeling van ons service platform. Dit is een Azure Cloud oplossing die onze klanten onder andere de mogelijkheid geeft om in te loggen vanuit hun desktop- of webapplicatie, online administraties aan te maken en belastingaangiften te versturen.</description>
    </item>
    
  </channel>
</rss>
