Development / Testing Environment?

Product: PowerShell Universal
Version: 2.2.1

Just curious what everybody is doing in regards to having a separate environment for things in development and one for in production?

We’ve got enough dashboards running now that are end-user facing we’d like to avoid any breaking changes, or at least see them and mitigate them before roll-out.

We’re contemplating the idea of using a development branch in our Azure DevOps git repo, then merging changes after testing with the production branch.

I’m assuming a second license for Universal would be required for a setup like this.

Any insight on this would be welcome :slight_smile:

We’re using a linux docker container, so might look a bit different for you. Staging and Production are running in Azure App Service. Using the configuration in there (environment variable) to set the git branches it uses. In our Azure DevOps repo, we have Azure_Staging and Azure_Prod for the respective app service deployment slots. Branch Rules are set so no one can directly push to these branches, has to go through pull requests.

Each Add/Change/Remove/Update/Fix gets its own git branch based on Azure_Prod. We code it locally in a container and local volume bindings instead of using Powershell universal’s built in git management. Once it’s ready then pull request to staging, test it out there, make sure it works. Then pull request to prod.

If there is a change that needs to happen faster, we’ll unlock the branch policy to allow direct push, but only had to do that a couple of times.

Let me know if there is anything you’d like me to expand on.

This use case is 50% of my reasoning for using IIS, which can allow multiple instances of PSU.

@StuartA, we run two PSU instances on two different IIS servers. One for test and another for prod. Prod box has 16gbs of RAM while test has 8gbs. We connect the test PSU to the develop branch of our ADO repo and the prod PSU to the master branch. To deploy code we do a Pull Request and the PSU git sync automatically deploys our code from test to prod.

We find it works pretty well but we were only able to make it work with a two way git sync. We have to be careful to never make code changes on the Prod box or the git sync will break. This can cause issues and we have to delete the entire repo on the server and re-clone to sync everything up again.

Hope this helps

Awesome, thanks for the suggestions everyone - I knew this was the right place to ask :slight_smile:

Different servers requires multiple licenses no?

I think the someone forgot to check the boilerplate agreement before applying it, despite the website saying otherwise, the EULA says per instance.

PowerShell Universal End User License Agreement

The Software is licensed per running instance of the Software. Each running instance of the Software requires a License. The Licensee is granted access to all features of the Software.

@adamdriscoll Can you clarify?

Also, perhaps… would you consider allowing for a developer (non-production) instance with each license? For the purposes of staging? :grin:

2 Likes

Yes, we have two PSU licenses. One for test, one for prod

1 Like

Oh balls thats unfortunate if true.