Multiple instances of the same App on one Target

Hello,

We have a few production instances of the same application on one server (Octopus Target).
For an example, located in the next paths:
C:\app\ins1
C:\app\ins2
C:\app\ins3

Each of these instances started as dedicated IIS web-application.

We need to support a next two options:

  1. Deploy a new verstion for a whole instances using “Deploy to Production” option.
  2. Deploy a dedicated (for example, ins2) instance, without touching the rest of.

How it can be designed using Octopus? Currently this server added as a Target in Production environment, with configured environment variables in this scope for “ins1”. But this allow us to deploy only “ins1” of this application. How other two instances can be added to this process with supporting two options above?

Thank You in advance for your help,
Sincerely, Alex

Hi Alex,

Thanks for getting in touch!

There are two ways of achieving this that come to mind.

Multiple Projects

The first would be to make use of multiple projects and a “master” project to orchestrate them.
The idea would be that you would have four projects total. One for each of your applications and one to deploy them.
e.g.
Project 1 - Deploys ins1
Project 2 - Deploys ins2
Project 3 - Deploys ins3
Project 4 - Contains three Deploy a Release steps configured to Project 1, 2 and 3.

You can then deploy the individual apps as needed and use Project 4 to deploy them all together.
We have further details on coordinating multiple projects available here: Coordinating multiple projects - Octopus Deploy

This option does have the downside of splitting the configuration of the project though. Any changes you want to make would need to be made in every project.

Multi-Tenancy

The other option would be to make use of the Tenants feature. There is a fair bit of complexity behind the Tenants feature, so, I will aim to keep this fairly high level and recommend taking a look through our documentation (Multi-tenant deployment guide - Octopus Deploy) and webinar (Octopus 101 - Multi-tenant Deployments - YouTube).

The idea would be that you create three Tenants (Ins1, Ins2, and Ins3). Each of these Tenants is configured for one of the ins(x) applications and all linked to the same Project and Deployment Target.
The variables for things like installation path and any other settings specific to that application would be configured as a variable template and then the value would be set within the Tenant itself.

Then when you are deploying the Project to Production you would pick which Tenant(s) you want to deploy to and Octopus would automatically apply the correct installation path and other variables for each of the selected Tenants where needed.

We have an Octopus samples site that you can log in to as a guest and see a Project using Tenants fully configured that may help too: Octopus Deploy

I appreciate that this is a lot of information, please let me know if I can expand on any of this.

Regards,
Paul

Dear Paul,

Hello, thank You for so detailed explanation - we will try to use a Tenants approach

// Sincerely, Alex

1 Like

Perfect, I do believe that would be the best option of the two.

If you do get stuck along the way or want a second opinion on anything we do have a dedicated advice team (advice@octopus.com) that can attend a screen share session or provide more structured examples.

Regards,
Paul

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