Bulk IIS Bindings best practices

I was wondering what everyone is doing regarding best practices when deploying web sites with multiple bindings (some with hundreds?)
I would like to have multiple tenants at the production stage, all with their own list of bindings but can’t see a clean way to do this. Are people storing the bindings in the source code and then creating their own Powershell scripts post deploy to update the binding? Does this mean you have a proprietary list format that you know how to pass to create the bindings? Would you keep 1 list file per tenant?
I’ve been scratching my head over what’s the best way to do this - so any feedback around what has or hasn’t worked for people would be gratefully appreciated :slight_smile:

Thanks,
Gareth

Hi Gareth,

Welcome to the Octopus Forum! Thank you for posting.

The answer depends on your application and configuration.

Generally, I recommend a single source of truth. That way you only have to update one thing.

If you are going with a single website / multiple tenants approach, then that tenant information is typically stored in one of your databases because there is code somewhere translating a host header or something into a tenant record. I’d write a custom script to query that information from your database and manipulate IIS as you see fit.

If it is a unique infrastructure per tenant (database, website, etc) then I’d recommend using Octopus’ Multi-Tenancy feature and store any custom binding as a tenant variable. In your IIS step you’d perform any custom IIS based on that tenant variable.

It’s more like the multi tenant scenario with each tenant having it’s own infrastructure with their own hostnames.
Eg. Blue.tenant1.com, red.tenant1.com
Green.tenant2.com,
Orange.tenant3.com, etc…
There is currently no one truth in source control, but this could be an option if needed.
In my process step, if I have a deploy to iis I can’t see a way of using tenant variables if each tenant has different number of hostnames.

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.