Endjin - Home

Richard Kerslake's Blog

One very useful but little used pattern when working with Resource Manager templates, is the ability to use parameters to optionally deploy resources, constrain certain resource configurations based on other user defined parameters, or to toggle parameters based on other values. To give a couple of concrete examples, imagine we have a highly reusable template […]


If you are trying to create a package to deploy a web project from the command line using msbuild, you might be struggling with the required arguments. Simply specifying /target:package is not enough. While this will generate a zipped web package, it will only include direct references from the web project itself. Any projects the […]


Azure Resource Manager Azure Resource Manager (ARM) is a set of APIs that enable interacting with Azure for creating and managing resources. ARM Templates create a simpler way of automating deployment to Azure, by allowing all the parts of your infrastructure to be declared in the template. Azure itself then handles how that infrastructure gets created […]


What is Azure Machine Learning? Azure Machine Learning (Azure ML) is a fully managed cloud service that enables you to easily build, deploy and share predictive analytics solutions. Azure ML allows you to create a predictive analytic experiment and then directly publish that as a web service. The web service API can be used in […]


Over a year ago, I wrote a similarly titled post on how to use Azure Automation to run VMs during office hours only. Since then, much has changed with Azure Automation and the previous management portal has been replaced. This post goes through how to achieve scheduling of VM running times using the current portal […]


What is Azure Resource Manager? The infrastructure that makes up your application is often composed of various different components. For instance, you might simply be running a web site, but behind the scenes you have an Azure web site deployed, a Storage account for tables, blobs, and queues, a couple of VMs running a database […]


Previously each component in Azure was deployed, managed, billed and monitored separately. Azure Resource Manager (ARM) is a new approach that allows you to declaratively state what a group of Azure infrastructure should look like as a template, then deploy that template in an idempotent way (i.e. you can run it multiple times and it […]


Azure Automation scheduler and daylight saving time

by Richard Kerslake

Update 18/10/16: Azure Automation schedules do now support time zones, which means they can properly adjust for daylight savings! To use this feature creating a new schedule is required – all existing schedules prior to the release of this feature will be stored in UTC. Specifying a timezone in the portal looks like this: Daylight […]


In a previous post, I showed how to report errors to New Relic from an Azure Worker Role. This Cloud Service could be deployed in a number of environments, such as Test and Production. With the NewRelic.AppName setting defined in app.config (or web.config for a Web Role), all deployments will report data under that single […]


Reporting errors to New Relic from an Azure Worker Role

by Richard Kerslake

New Relic is a great tool for monitoring applications and servers. It can integrate nicely with Microsoft Azure, especially with web/IIS based applications. For applications that run in a Worker Role, it can be a bit more tricky to get the project set up correctly and data flowing to New Relic. The following steps walk […]


Diagnostic logging with Azure SDK 2.5

by Richard Kerslake

Azure SDK 2.5 was announced on November 12th 2014.  Among other changes, the SDK includes Azure Diagnostics Client Library 1.3, which has significant and breaking changes since previous versions (Azure SDK 2.4 and previous versions used Diagnostics 1.0). One of the primary reasons for the change is to move from a plugin model to an […]


Using Azure Automation to run VMs during office hours only

by Richard Kerslake

There is an updated version of this post. Please read the new version, which guides you through similar steps using the latest and greatest Azure Portal and Azure Automation features: Using Azure Automation to run VMs during office hours only – using graphical runbooks   Endjin have been using Microsoft Azure to host our ALM infrastructure […]


Elasticsearch gotchas and tips – part 2

by Richard Kerslake

It has been some time since my last post giving tips on the hardware and software requirements for installing and running Elasticsearch on Azure. This post is a further series of gotchas and tips that I’ve picked up on during my journey using Elasticsearch. It is split into 3 broad categories covering various configuration items, […]


Troubleshooting Twilio with New Relic

by Richard Kerslake

Recruitment Genius asked endjin to develop an automated, telephony-based candidate interviewing system, using Twilio and Microsoft Azure. After it went live, Recruitment Genius started receiving a number of support calls from users who were having trouble logging into the system. Troubleshooting involved a series of laborious steps to manually tally Twilio logs with logs from the rest […]


Gotchas when installing an Elasticsearch cluster on Azure

by Richard Kerslake

Elasticsearch is an open source distributed search server, based on Lucene. It provides full-text search via a RESTful interface and JSON documents. It is ideally suited for running on cloud platforms like Azure. This is not a step-by-step guide to using Elasticsearch and running it on Azure. I’m assuming you already have some basic knowledge […]


At the moment, endjin are working hard on a new Azure based content management system. It is an exciting and modern solution that is rapidly approaching an alpha release. A large part of how this product works is through the use of plugins. As part of creating an excellent developer experience, we wanted to create […]


How to retry commands in PowerShell

by Richard Kerslake

Recently while working on a set of scripts to provision some infrastructure in Azure, I needed to be able to retry various commands in case of intermittent failures. With remote infrastructure in particular it is worth considering retry logic, because you never know when you might have trouble reaching it, or internal problems in the […]


Event stream manipulation using Rx – Part 2

by Richard Kerslake

In Part 1 of this post we became familiar with the Observer pattern, the Rx framework, and using marble diagrams to represent and think about sequences of events. In this post we will use a few of these ideas to write some code and produce something. Let’s get started! An example scenario and requirements Imagine […]


Event stream manipulation using Rx – Part 1

by Richard Kerslake

In a previous post I started talking about semantic logging and using the ETW and Tx technologies to assist in doing that. ETW and the EventSource package enable you to write trace events directly to tracing sessions and the Windows Event Log. Tx builds on Rx and LINQ to allow querying of raw event sources […]


Getting started with semantic logging

by Richard Kerslake

Semantic Logging A more traditional style of logging is to write a line of text for any significant event deemed worthy of recording. If there is an issue with the application which requires analysis of the logs, it largely requires someone to scan through the log files (of which there could be many) line by […]