Deployment in medical institutions?

Hi folks,

We are working on a project, which has distributed topology, i.e. a set to tier 1 servers, some several regional servers, some local office servers, bunch of hand-held devices and workstations. We serve to medical institutions, which deploy our product throughout their organizations (hence the distributed nature of the product). As you would imagine, the upgrade story giving us headaches.

We looked at the Octopus and we like what we see, especially the use of NuGet packages and decent degree of deployment automation. The challenge is that the “production” environments are very isolated (hospitals) and super locked down. Also, the local IT staff is not always helpful and normally overwhelmed with other work. So I imagine the following issues:

  1. The servers need to be upgraded in certain order, because updates are not forward-compatible (only backward-compatible, meaning that newer version can talk to both old and new servers, but older version can only talk to old servers).
  2. We need to collect authorization from hospital IT staff before deploying. This should be under their management.
  3. Customers don’t necessarily want to deploy a 3rd party deployment tools worldwide, this would be nightmarish to push through from regulations perspective.

So my “ideal” scenario would be like this:

  1. We make this a self-contained solution. So that customers put updates on the local server in a hospital and then updates are pushed to local servers and workstations the same way we push data.
  2. Once the software is distributed, we first upgrade the endpoints, then upgrade travels up the hierarchy to the root servers.

Hence the questions:

  1. Does it make sense?
  2. Is there a way to embed octopus server or tentacle services into our product?
  3. Overall, what would you recommend in this situation?

Thank you very much in advance,

Hi Dan,

Thanks for reaching out to ask this question and sharing the scenario.

I imagine that you might be able to have an Octopus server in each region, with Tentacles running on the target machine. The first step of your deployment could be a manual step that prompts users to confirm the deployment before it proceeds.

You could then use the Octopus API to connect to all of your distributed Octopus servers, update the deployment process, push packages, create releases, and trigger the deployments. Then you could email the local staff with the deployment details, they can review, and hit “proceed” when they are ready.

Of course I’m making the assumption that you have HTTP/HTTPS access to all the distributed Octopus servers from your central location. If not, you may need to provide a script that the local staff can run when they are ready to deploy - this would update the Octopus server and trigger the deployments.

I may have misunderstood the scenario, so if my suggestions above don’t make any sense please do follow up.

Hope that helps!