Getting started with DevOps

DevOps, micro-services, containers, Agile etc. All these terms are widely (ab)used in the developer circles and for many developers they are the norm. There's no tech conference today that doesn't have a track on at least one of these and for a good reason. They are the new and, almost, established way of working with code. Some of them have been around for a while, so they are well established. Others are just getting into the enterprise world - think of containers here. DevOps is definitely not new. If you're a developer, you've been doing DevOps for a long …[read more]

Securing ASP.NET Core application settings using Azure Key Vault

Azure Key Vault is one of my favourite services, competing for first place with Azure Functions. And .NET Core is my favorite framework for writing applications. Imagine, then, my suprise when I found out that my favorite tools can now work together! Azure Key Vault is a cloud service for storing sensitive "secrets" and (encryption) "keys". Key Vault is simple, easy and indispensible when developing secure applications. It helps avoid the complexity of storing sensitive information in configuration files. This can be API passwords, database connections strings etc. You get the point! Previous solutions where convoluted and complex and often …[read more]

Deploying Functions with ARM templates and inline code

Last week I started a mini-series that focused on [Azure Functions and DevOps. The tooling is still being worked and in the interim we need a solution in order to do proper CI/CD with Azure Functions. In this post we're looking into how to deploy Azure Functions using ARM Templates only. That's correct. This is a one stop solution but requires that you include your function code inline to the ARM JSON template. This is somewhat undocumented and I had to figure out how do it with help from the Azure PG (product group). The good parts Obviously this …[read more]

Azure Functions custom logging with AppInsights

You can tell I'm working on Azure Functions from the frequency of posts. This one focuses on logging. Functions by default generate plenty of logs which you can view in the portal or download using the Kudu REST API. This is great and it comes out of the box without you having to configure a single thing. However, what if you have some custom, complex logic that you want to capture and log. And I guess that in most instances there will be more than one Function per AppService and potentially a lot more applications and services deployed on Azure. …[read more]

Deploying Azure Functions with ARM templates and the Kudu REST API

This approach is by far my preferred and favourite. Ok, it's not perfect but I believe that it provides the most open source, versatile and flexible way to deploy your functions using any tool and any platform. This one does not require you to install any special tools other than the Azure CLI on your build server. In this step, rather than trying to do everything from one file, i.e. the ARM template, I decided to go with the 2 step approach: Deploy the ARM template with the Application Service and Function(s) structure Deploy the Function(s) code. …[read more]

DevOps with Azure Functions - a holistic approach

Azure Functions is Microsoft's answer the serverless architecture. They are very popular due to the incredible integration they provide with Azure Services, SaaS providers and on-premise application. It definitely drives the whole microservice architecture design which is built on top of Azure's established Platform-as-a-Service. And enables developers to think about APIs and integration in a totally different way - serverless (even though there are still servers under the hood). It's even more exciting seeing so many organisations embarking in larger scale projects that take advantage of Functions and LogicApps. If you want to know more about the whole serverless design, …[read more]