Skip to content

Instantly share code, notes, and snippets.

@PaulStovell
Last active March 20, 2016 12:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PaulStovell/ca7ba5021ba6aecf72bc to your computer and use it in GitHub Desktop.
Save PaulStovell/ca7ba5021ba6aecf72bc to your computer and use it in GitHub Desktop.
Windows Server 2016

Windows Server 2016 comes in three flavours:

  • Full UI
  • Server core
  • Nano

Nano is an exciting change - a disk image is about 700mb, and it boots in a few seconds (IIS serving web requests).

However, it has some limitations. Things it can do:

  • Run IIS, Nginx
  • Run Node and some other platforms
  • Join an AD domain
  • Execute PowerShell

Things that it cannot do:

  • Full .NET framework. Only .NET Core is supported.
  • How does PowerShell work? It uses PowerShell Core, which is built on .NET Core

Also, in 2016, the IIS administration PowerShell modules have changed - on Nano Server, there is no WebAdministration module, which we currently rely on heavily in Calamari.

Tentacle on Nano Server

Some options:

  1. Port Tentacle to .NET Core. This is probably do-able.
  2. Port Tentacle to something else.
  3. Drop Tentacle completely, and just rely on PowerShell Remoting to do everything that we do. This has the attraction to IT/ops of being something they are used to administering/exposing.

The bigger question is, how will people use Nano Server?

  • As bare-metal installs - these would be pets, appearing as machines in Octopus
  • As Hyper-V guest images - again, probably as pets that appear as machines, since changing them/redeploying is clunky
  • As containers. We have pretty good plans for Docker + Octopus (Octopus pushing container images around)

If we did go for PowerShell Remoting as our transport layer, we'd get one big advantage: someone could boot a Nano server, register it in Octopus, and Octopus could deploy entire apps to it - no extra installs needed.

I think the .NET Core/Nano Server combination is pretty incredible - IF you can compile your app with just .NET Core, then you can run it on an incredibly small, fast-booting VM.

Hyper-V as a target

Right now, we register a Windows Server instance as a machine in Octopus, and deploy lots of websites to it.

In future, what if we registered a Hyper-V server in Octopus, and then used it to deploy NanoServer instances?

Hyper-V could be an "account"; the individual NanoServer instances could be linked to the accounts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment