App stores changed the way we install and maintain software on our devices. You now have a single centralized place where you go and search for what you need, click a button and in a matter of minutes you have the app working on your device. In a similar way you can extend SDL Studio by going on OpenExchange store and download a plugin you would like or need. Now this works just fine for most of the Studio plugins or apps but there are situations when you need to develop something that is specific for your company and doesn't make sense to be public to everyone since it's probably irrelevant for them and it might also contain confidential information. It would be nice if you would be able to create your private store inside OpenExchange where you can have you apps centralized and search-able just by you but such a feature is not available at the moment. This article and video is about an alternate solution for this type of scenarios.

The solution

The solution is very simple and is based on the idea to automate as much as possible the process of releasing you plugin. The exact same thing is promoted by Continuous Delivery practice and together with the evolution of this a couple of release management tools like Octopus Deploy or GO appeared in order to ease the adoption of such a practice. In our case since Studio plugins are developed using Microsoft .Net and it makes perfect sense to use Octopus Deploy since is dedicated for .Net solutions. Of course you can try and use GO or any other release management tool you prefer. If it's not clear by now the solution I'm talking about is to automate your Studio plugin release management using Octopus Deploy.

Octopus Deploy

I'm not going to cover in detail Octopus Deploy since it comes with a very good documentation, rather I'm going to present a higher level overview of how is going to work with Studio plugins. Octopus comes with a central server component which is called Octopus Deploy Server that you need to install somewhere where all your users machines will be able to access it. It can be an internal private server, a public server or somewhere in a cloud platform, there is no limitation as long as it's accessible. Octopus Deploy Server comes with web user interface which you can use once you have the server installed. Besides the server component Octopus comes with a client component called Tentacle Deploy agent. This has to be installed on each user machine and it will be used to deploy your software, in our case the Studio plugins. This is a one time operation and once it's done you will only use the web user interface that comes with the server. There is a third component called OctoPack that is used to push the software/Studio plugin from you development or build machine to Octopus Deploy Server.

Click'n'Deploy Studio plugins

There are quit a few moving parts when you first setup Octopus Deploy and some of the steps might not that obvious so instead off writing them in this article I decided that it would be better if just create a video to show you exactly how you configure Octopus to release Studio plugins to the user machine.

Useful learning resources:

  1. Octopus Deploy Getting Started

  2. Installing Octopus Deploy Server

  3. Installing Tentacles

  4. Using OctoPack

  5. What is Nuget?

  6. Develop SDL Studio plugins

Please leave a comment if you have any questions or feedback.