Skip to main content

Wolfpack vNext = vExcited

I'm getting excited about the next release of Wolfpack (v2.3). It's going to be the first application  that uses Sidewinder (unless someone beats me to it with my own framework!).

I'd been discussing updates and NuGet with a few people and wondered how it could be applied to Wolfpack - its plugin architecture makes it a perfect candidate for being able to download or upgrade plugins plus I also wanted to explore a better way of upgrading the entire install - make this as painless as possible.

Taking inspiration from the NuGet.exe commandline app that self updates I had a look at the code and took the plunge and created Sidewinder. I'll let you investigate Sidewinder yourself (if it sounds interesting) but wanted to share what this will mean when it lands in the next version of Wolfpack and how I plan to use it.

Wolfpack is a pluggable, modular system - a number of contrib projects have sprung up and a few dedicated individuals have invested time and effort into adding to the HealthCheck and Publisher plugins available (Thanks guys!). Sidewinder, harnessing NuGet will bring application update to your Wolfpack installation but also provides it with the ability to pull down new plugins and deploy them into your Wolfpack installation folder (including any configuration files required).

Updating your Wolfpack install will be as simple as running...

Wolfpack.Agent.exe /update


That's it - the entire installation will be updated if a new version has been published. Your configuration files will not be updated, only new configuration files will be installed - existing ones will remain unchanged and will need manual update if changed (I'm working on a mechanism to allow the update to make changes as part of the install).

Wolfpack vNext is also taking the first steps towards a more modular system. Feedback has highlighted that the system contains lots of functionality, AppStats, BuildAnalytics, NServiceBus, WCF, Growl, Geckoboard and it would be good to split these away from a "Core" system - making these optional sub-systems that you use if required/suitable for you. I've fragmented the configuration files and started to look at turning these areas of Wolkpack into separate packages to be delivered via Sidewinder. I am also refactoring the Wolfpack.Contrib components into new NuGet packages that can be delivered with Sidewinder...they will be the first plugin test pilot packages for Wolfpack/Sidewinder!

Finally Wolfpack vNext has got some other improvements including...

  • Logging improvements to it's startup code it make it easier to debug/understand/fix configuration issues.
  • New HealthCheck - Host (ICMP) Ping
  • Ability to load HealthCheck components directly into the IoC container (this makes DI into the check possible now) 
A really cool new feature developed by Phil Bolduc is a Powershell HealthCheck - this health check can execute a powershell script to perform any tests/checks you need - this is in beta and will be delivered after vNext as an optional package like this.


Wolfpack vNext will be appearing in a NuGet gallery near your very soon!

Comments

Popular posts from this blog

Walk-Thru: Using Wolfpack to automatically deploy and smoke test your system

First, some history... The advent of NuGet has revolutionised many many aspects of the .Net ecosystem; MyGet, Chocolatey & OctopusDeploy to name a few solutions building upon its success bring even more features to the table. I also spotted that NuGet could solve a problem I was having with my OSS System Monitoring software Wolfpack ; essentially this is a core application framework that uses plugins for extension ( Wolfpack Contrib ) but how to unify, standardise and streamline how these plugins are made available? NuGet to the rescue again - I wrapped the NuGet infrastructure (I deem NuGet to be so ubiquitous and stable that is has transcended into the software "infrastrucuture" hall of fame) with a new OSS project called Sidewinder . Sidewinder allows me to wrap all my little extension and plugins in NuGet packages and deploy them directly from the Wolfpack application - it even allows me to issue a new version of Wolfpack and have Wolfpack update itself, sweet huh

Configuration in .Net 2.0

11-Dec-2007 Update I've updated this post to fix the broken images and replaced them with inline text for the example xml and accompanying C# code. This post has been by far the most hit on this blog and along with the comments about the missing images I thought it was time to update it! Whilst recreating the examples below I zipped up the working source code and xml file and loaded this onto my Project Distributor site - please download it to get a full working custom configuration to play with! Just click on the CustomConfigExampleSource link on the right hand side, then the "Source" link to get the zip. We are in the process of converting our codebase to .Net 2.0. We've used Enterprise Library to great effect so decided that we should continue with this in the form of the Jan 2006 release which targets 2.0 and I've got the job of porting our Logging, Data Access etc wrappers to EntLib 2.0. ...And so far so good - the EntLib docs aren't bad and the migrati

Castle/Windsor schema enables Visual Studio intellisense

There has been a lot of noise recently about Inversion of Control (IoC) with .Net recently (stop sniggering at the back java guys!).... I've been using IoC via the Spring.NET framework for over 2 years now - it's a completely different approach to coding and once you get your head around it everything just falls into place and development is a real joy again. As I mention, Spring.NET is my framework of choice but a recent change in employer has seen me bump up against Castle/Windsor . First impressions are that I like it - it's not as powerful or feature rich as Spring but that's not always a bad thing! The one thing I did miss though was Visual Studio intellisense when editing the configurations - Spring has an online schema that can be associated with a Spring configuration. This got me thinking - if the VS intellisense can be hooked into that easily why not create one for Windsor configuration? So I did...you can download it from my new google code site here . Remem