This is part of a series of posts about running Grafana on Azure. Checkout the others Part 1 - Hosting/ConfigurationPart 2 - Azure MySQL StoragePart 3 - Enabling SSL with LetsEncrypt (this post)Part 4 - Azure AD LoginPart 5 - Azure Monitor Datasource (coming soon) What is LetsEncrypt? LetsEncrypt.org is an initiative to promote sites... Continue Reading →
Grafana on Azure – Azure MySQL Storage
This makes it great for our database for Grafana as the point of a monitoring system is be always up, and you don't want to be monitoring your monitoring system with your monitoring system.
Grafana on Azure – Hosting/Configuration
There as a balancing act to be done here. Speed and simplicity could be achieved using a database on the machine, that's then backed up, at the expense of management overhead. Reduced Management could be achieved using ACI or App Service, at the expense of cost (unless you already have a container infrastructure). The solution here, I believe, gives a fair balance
Pulumi Multiple projects with Custom Backends
I've been working with Pulumi to create a reference architecture for a client that provides individual team autonomy while providing some shared resources. In addition, the client is also wanting to utilise a custom backend in Azure Blob storage. This presented some issues as the documentation around projects, stacks and stack references for custom backends.... Continue Reading →
Speed up legacy ASP.NET applications with HttpContext.Items caching
One of the goals of most websites is to return the page for a user within the fastest time possible. Adding caching of frequently accessed data is a really easy way to do this, however, in legacy applications, there can be a lot of context heavy code making it hard to understand what can be... Continue Reading →
Infrastructure Autonomy using DNS Delegation and internal Top Level Domains
In this post we'll talk about using a specific Top Level domain to separate your internal application infrastructure addresses from what you're users see. Further, how to provide team level autonomy to using DNS delegation to provide a predictable naming strategy. The Problem One of the big issues with DNS management is the security elements... Continue Reading →
Manage Cross team terraform and azure-cli versions with docker
One of the issues with having multiple teams, and pushing for autonomy to choose everything from infrastructure to languages, is making sure that you have the right versions of everything installed. As developers, we want to be on the bleeding edge, playing with new things, new versions, etc. However, that can have an impact beyond... Continue Reading →
Writing IAM PolicyDocuments in Pulumi C#
I've playing with Pulumi recently, and came across an issue trying to generate an IAM PolicyDocument that included an ARN resource. After hours of searching and trying to get my head around the Ouput<T> types, I found Output.Format(). The Problem Pulumi allows you to define everything you want to create in C#. What it also... Continue Reading →
Deploying .NET Core to Linux using CodeDeploy
I'm a big AWS fanboy, and although I absolutely love Octopus Deploy and advocate for it wherever I go, CodeDeploy is my preferred method of deploying in AWS. That said, when working with Linux and .NET core it's not a simple process to get things deployed seamlessly (at least as a Windows dev). In this... Continue Reading →
Serilog and CloudWatch (with inbuilt credentials)
In this post we'll look at the best way to get Serilog entries to push to Cloudwatch in the most unobtrusive way. Serilog is the defacto standard for logging in dotnet core. It provides integration with the ILogger interface, along with supports structured logging. Beyond that integration, it has extensive support for a multitude of... Continue Reading →