/azure-servicefabric-arm

Azure Service Fabric cluster deployment for dummies

Primary LanguagePowerShellMIT LicenseMIT

Azure Service Fabric cluster deployment (for lazy people)

This repository contains fully automated script to create a Service Fabric cluster with least hand movement possible. Just sit back and enjoy.

How to use

Clone this repository and launch cluster.ps1 which asks you only for deployment name. This is a short string like mycluster01 (no spaces or hyphens or other strangeness).

Apparently before running the script you need to:

  • Log in to azure account with Login-AzAccount
  • Optionally select the subscription you wan to work with (view subscriptions with Get-AzSubscription and choose with Select-AzSubscription) otherwise the cluster will be created in your default subscription.

The script does the following:

  • Creates a new resource group named after deployment name
  • Creates a new Key Vault and sets vault policy to allow importing certificates from current user
  • Generates self-signed certificates
  • Imports self-signed certificates into the Key Vault
  • Kicks off ARM template which:
    • Creates Azure AppInsights resource
    • Creates storage accounts for diagnostics
    • Creates VM Scale Set with Silver level for both reliability and durability which has 5 nodes in it. 5 nodes is a minimum required amount for autoscaling to work flawlessly.
    • Binds AppInsights resource to Service Fabric cluster
  • Enables Reverse Proxy
  • Enables DNS Service

The whole thing just works and doesn't need any human intervention.

A proof that AppInsights actually works:

You can use this program to update the ARM template with new settings and re-run the script. As long as deployment name is the same, the script will update the cluster with new settings.

How do I access Service Fabric explorer from my browser?

The script generates a PFX certificate during the successful cluster creation, therefore you can use it to connect from the browser. The PFX is placed in the same folder as cluster creation script (added to .gitignore):

Deploying OMS (Log Analytics)

You can deploy OMS alongside the cluster, which is an optional feature. To deploy it, just pass a switch to cluster.ps1:

.\cluster.ps1 -Name mycluster -DeployOMS

You will see OMS solution and workspace deployed to the resource group and connected to Azure Service Fabric cluster:

Deploying a mini cluster

This cluster type should only be used for development purposes or really small applications. The cluster is still secure and has full capabilities like above, however it can't be scaled and reliability level is set to None. To create this cluster pass -MiniCluster switch to the script.

Active Directory Authentication

todo

Known Issues

Please read the Known Issues for possible problems you may encounter while using this script.