How to Build a SQL Server AlwaysOn Failover Cluster Instance with SIOS DataKeeper using Azure Resource Manager

The officially recommended way for building highly available SQL Server environments in Azure is AlwaysOn Availability Groups, see here. This approach has many benefits, e.g. failover for a discrete set of user databases, flexible failover policies and read-only secondaries, but it requires SQL Enterprise edition (as described in the feature matrix of SQL Server 2014).

If you don’t need these additional capabilities and you like saving some money, there is an alternative way to build a highly-available and very scalable 2-node cluster on top of AlwaysOn Failover Cluster Instances (FCI) using SQL Server Standard edition. ‘Hang on’, you might say, ‘doesn’t FCI require shared storage – is that possible at all in Azure?’ Actually it is, by leveraging SIOS DataKeeper from the Azure Marketplace in order to synchronize local disks attached to the cluster nodes.

This post will show you how to set up this environment in Azure Resource Manager step-by-step, using PowerShell 1.0 as well as the new Azure Portal.

Continue reading

Access your Azure VMs through a Web Browser with ThinRDP

Sometimes, especially in enterprise environments, firewalls prevent connecting via RDP to Azure Windows VMs over port 3389. Quite often, the only outgoing ports being open in the network are 80 and 443 for HTTP(S). Additionally, RDP-over-SSL based technologies like Azure RemoteApp require users to install an app on the client, which also imposes a challenge in many cases, e.g. due to corporate policies.

Wouldn’t it be nice to access your Azure VMs via the browser in an RDP-like manner, without the need for special client-side software and networking configuration? Well, that can actually be done by installing ThinRDP on the target VM. This post will show you how to achieve that in a completely automated manner, using PowerShell with an Azure Resource Manager template and a custom script extension.

Continue reading

Hosting Multiple SSL Sites in Azure VMs

Until recently, it was not possible in Azure to host multiple SSL websites in a single IaaS VM (or load-balanced set of VMs), all listening on port 443 using different certificates (e.g. for separate domain names). People had to either use ARR farms in front of the web servers (making deployments more expensive and hard to manage) or use SNI (Server Name Indication) certificates, eliminating usage by all those brave people still running XP. This limitation was caused by the fact that a cloud service in Azure did only get one Virtual IP Address (VIP) from the fabric to get bound to port 443 for a single certificate.

Now, as Microsoft has announced availability of multiple VIPs per cloud service around Build 2015, it’s finally possible to configure several SSL endpoints, each of them pointing to a different website on the same VM (or set of VMs behind the Azure load balancer). This post will go through a simple example of setting up two SSL websites on a single VM.

Continue reading

Disk Encryption in Azure VMs

People were asking for disk encryption in Azure VMs for quite a while now. With the announcements made at TechEd 2014 in Houston it’s finally here. Instead of re-inventing the wheel, Microsoft is relying on established solutions in the market and initially provides two encryption options for Azure VMs:

This post will walk you through the steps to enable Trend Micro SecureCloud in your Azure VMs in order to encrypt your drives.

Continue reading

Assign Public IP Addresses to your Azure VMs

One of the great new Azure features announced at TechEd 2014 in Houston is the capability of assigning public IP addresses directly to VMs on an instance-level. As these IP addresses are public (that’s why they’re also called PIP) they allow you to access your VMs directly from outside the datacenter, without having to define any endpoints on the virtual IP address (VIP) of the corresponding cloud service.

This can be handy for example if you need to access your Azure VMs via RDP from your corporate environment and your firewall admin has blocked ports other than the ‘mainstream’ ones (80, 443, 3389, …). If you have deployed multiple VMs in a single cloud service, the Azure load balancer provides port forwarding to those VMs from random high ports to port 3389 internally. If your firewall blocks those high ports you’re stuck. PIPs to the rescue! This post will describe what it takes to create a PIP for a VM and how to avoid common pitfalls.

Continue reading

Start and Stop Windows Azure VMs According to Time Schedule

Today, the Windows Azure management portal does not provide an out-of-the-box capability to define a time schedule for startup and shutdown of virtual machines. Having an automated process for this is of great use, as by simply deprovisioning VMs during off-hours can save you a lot of money. This post will describe a lightweight approach for automated provisioning of VMs according to time schedule.

Continue reading

Change the Temporary Drive in a Azure VM and Use D: for Persistent Data Disks

Quite often people want to use the D: drive in a Windows Azure VM for their apps or data. For example, you might want to migrate an existing Windows application to the cloud without change and this app is relying on data being stored on the D: drive. Or your corporate policy mandates installing applications on D:.

By default, Windows VMs in Windows Azure host their operating system on drive C: as a persistent data disk located in blob storage. Additionally, each VM gets a scratch disk labeled as D: which is NOT persisted in blob storage. It’s rather disk space provided by the specific Hyper-V host of your VM. Data on this scratch disk is volatile in a sense that it will get lost whenever your VM will be relocated to another physical host (e.g. because you changed the VM size in the portal).

So if you want to use D: as a persistent data disk, read on…

Continue reading

Migrate your VMware VM to Windows Azure in 30 Minutes

You are running your virtualized workloads on top of VMware? You’ve heard about Windows Azure and believe it could be a valuable alternative or extension to your current IT landscape? Check out how you can migrate VMware Windows Server Guest VMs directly to Windows Azure in only a couple of steps using the Microsoft Virtual Machine Converter.

Continue reading

Building a Multi-Node Hadoop v2 Cluster with Ubuntu on Windows Azure

With HDInsight, the Windows Azure platform provides a powerful Platform-as-a-Service (PaaS) offering for quickly spinning up and managing Hadoop clusters on top of Windows VMs. These clusters are based on the HortonWorks Data Platform (HDP) distribution. Currently, the newest version of HDP in HDInsight is 1.3.0, which is deployed with the HDInsight version 2.1 (go here for the Microsoft versioning story). For sure, HortonWorks will eventually release a 2.x version for HDInsight on Windows, but if you prefer Ubuntu or you need a Hadoop v2 cluster now – what to do …?

Well, the good news is that Windows Azure is a very flexible platform and does not only provide platform services like HDInsight and many others, but also a powerful Infrastructure-as-a-Service (IaaS) model which allows you to deploy virtual machines based on Windows or Linux and manage them in virtual networks. So, Windows Azure IaaS allows you to build your own Apache Hadoop v2 cluster running in Ubuntu. In this post I will walk you through the steps to get there. We will build up a Hadoop 2.2.0 cluster consisting of a single master node and 2 slave nodes, using a custom-built VM image for all Hadoop nodes. Basically, the post will enable you to build arbitrary-sized Hadoop clusters on top of Windows Azure.

Continue reading

High-Available File Share in Windows Azure using DFS

Windows Azure Storage provides a scalable, reliable and highly available service to manage relational as well as unstructured data in the cloud. In order to access your data you can either leverage the Storage REST API directly or use one of the available abstractions on top of it (e.g. the Management Portal, PowerShell Cmdlets, .NET Libraries, 3rd Party Tools, etc.). Windows Azure Blob Storage can be used to store binary data. Many existing applications have requirements in terms of accessing data on network shares using the SMB protocol in Windows. When migrating these applications to Windows Azure one option is to change the file access code to the native REST interface of Blob Storage. However, often the effort for changing an application is too high and customers are looking for a ‘lift & shift’ migration without having to change any of their code.
Continue reading