Integrating with Azure Search

I currently help maintain a site called Azure Citadel, which is host to lots of techie articles, guides, labs and things related to Azure

Azure Citadel is in part is a big reason why this blog has been dead for 12 months, as the majority of my technical writing ended up there rather than as blog posts. Sorry!

Running Docker on Windows 10

Running Docker, or specifically running Docker on your Windows 10 machine, sounds simple? Well yes in the most part it is, Docker provide an installer and setup to do just that.

So what’s the issue? Well, ‘Docker for Windows’ is pretty flaky; sometimes won’t start for no apparent reason and installing it often fails. Chatting to colleagues at work and on Twitter several people have had problems with it, usually just before they are running a live demo - the last thing you want to be worrying about before a demo is “will Docker fall over?”

Now I’m not sure what the root of these problems is, but I thought I’d examine some of the alternatives. These alternatives all forgo installing the regular ‘Docker for Windows’ setup on your machine. I will also be ignoring the need to run Windows Containers, as we’ve already got enough to discuss.

Node.js with App Service on Linux

This is a follow up to my first post on running Node.js in Azure App Service, this time I want to cover the newly GA’ed App Service on Linux. In most regards App Service on Linux works the same way as the regular (Windows) App Service, is has the same core features and operate mostly the same.

The main difference (aside from the blindingly obvious; the host OS is Linux!) is App Service on Linux uses Docker containers to host & run your webapp. This provides a heap of advantages when it comes to deploying your app, and IMO containers also make an ideal way to run Node based apps. There’s many lightweight and robust Docker images you can use, the Alpine Linux image notably weighing in at a tiny 23MB.

You have two fundamental ways of working with App Service on Linux:

  • Use one of the provided application stack images
    Referred to as “App Service on Linux” or “Linux Web Apps”
  • Run a custom image, either one of your own Docker images or one pulled from Dockerhub.
    Referred to as “Web App for Containers”

We’ll cover using both approaches to host and run Node apps

Containers & Docker - Tech Primer

My second technical primer, this one covers containers & Docker. Aimed at people that want to understand containers, what they are, how to use them and also get started with Docker. The guide goes into medium technical depth, examples of commands but is not intended as a comprehensive end to end reference.

As usual, these can be used for presentations, used in labs & exercises but also given as handout/reading material.

View & Download

Azure Resource Manager - Tech Primer

First in a series of “tech primers” on a range of topics. Created for a technical audience, that might be new to a particular topic or domain. I wanted to solve several things with these primers, combining both introductory overview content, but also technical reference material and deeper dives into various key areas.

If you’re new to Azure and especially the Azure Resource Manager, this guide is a handy place to get started

This content can be used for presentations, used in labs & exercises but also given as handout/reading material.

View & Download

Running Node.js in Azure App Service

I’ve been using Node.js quite a lot lately as I find it a nice quick way to get web projects started easily, and one of the things I’ve been doing is deploying and running my Node.js apps in Azure. Azure provides a number of ways of to run Node.js code within the platform, but I’ll be focusing on the PaaS Azure App Services or Web Apps (more info), rather than VMs or anything strange.

Why write a blog about this? Isn’t using Node.js with Azure Web Apps all easy and already documented? Well… kinda, there is documentation but there’s also a lot of gotchas, semi-hidden features and things I stumbled across which made me feel like gathering all these nuggets of info into one place