PowerShell Universal v3 Nightly Builds

Happy New Year!

We are at a point where we are ready to start releasing nightly build of PowerShell Universal v3. They will be available on the nightly build page starting tonight. We are still a couple of months from a beta but I know there are some users that are always keen to play with the latest and greatest.

Themes for v3

Simplicity

PSU does a lot, and we want to work to simplify the platform without taking away functionality that is actually used. Some ways we are simplifying:

  • No longer including the v2 framework by default (you can install manually if you choose to)
  • Combining the UD components we ship directly into the v3 framework
  • No longer deploying the framework to a separate “asset” directory
  • Removal of the LiteDBv4 database engine
  • Stretch: Embed the v3 framework into the admin console web app so there is only 1 web app (faster builds and reduced size)

These steps will help reduce complexity in development, testing, deployment and configuration. We may consider other changes, but these are the top of the list.

SQL Server Support

We’ve been working on this for some time. It’s getting close and over the next month or so you may see functional SQL storage in PSUv3 nightly builds.

High Availability

This is going to be achieved via SQL Server support. We use Hangfire to execute jobs and it can store agents and job information (parameters, output, etc) directly in SQL. Anything we store in LiteDB, from a PSU perspective, can be stored in SQL after the changes are complete. This means you’ll be able to stand up multiple PSU instances and they can share a database.

We still have work to make UD HA as we need a distributed cache mechanism. We will likely roll HA out feature by feature, starting with jobs.

Cloud Hosting Focus

We want to focus some time on cloud hosting. The biggest hurtle has been using LiteDB in cloud providers. It just doesn’t work that well. We hope that the SQL server support will also help here. We’ll be rolling Azure integration testing into our nightly builds as part of this effort.

Painless Upgrade

We want to ensure that a v2 to v3 upgrade is as painless as possible for most users. This will not be a “burn to the ground” release. It mostly just gives us an opportunity to remove some things that do not see much use in the sake of simplicity.

Most of the things we are moving (UDv2 and LiteDBv4) will still work but will not be included in the box. If you’re using UDv2, it will still load that framework form the asset folder in PSUv3. It just won’t ship with the installation.

.NET 6.0 and PS 7.2

PSUv3 is already running on .NET 6.0 and PS7.2. It’s faster than the previous versions and we get that for free. IIS users will need to upgrade to the .NET 6.0 Hosting Package. Users running as a service will just need to upgrade since we do self-contained installations.

PSUv2 Support

We will continue to support v2 for a year after the v3 release. It will continue to receive bug fixes during this time and features that make sense will be merged from v3 into v2. Nightly builds of v2 will continue to be produced.

GitHub Milestone

We have a very sparse milestone that will start to fill up soon. Feel free to add and comment.

Feel free to chime in below with any concerns, ideas or thoughts what’s outlined above.

8 Likes