Archive for January, 2006

Scripting with ANT… Groovy

January 31, 2006

While ANT definitely is a great tool, and it’s benefits over MAKE well proven by now, it does have some limitations when it comes to scripting complex build and deploy tasks.  Well, not so much ‘limitations’, cuz it’s pretty open to extend it any way you could want. 

But anyone who’s ever tried to do something fancier than “grab code, compile, package into .ear file”, has had to get real creative with XML to get it to act like a scripting language.

Groovy looks like it could help make life easier for us build/release managers.

Article in JavaWorld… 

It’s even got an ANT Task.


Migrating apps from Windows to Unix – Intro

January 31, 2006

App migrations can be a real headache.  They don’t have to be, but they often are.  Especially when moving from one platform to another.  This is the story of such a migration…

The powers that be in my organization have decided to move away from MSFT technology, and get into the whole Java/Linux thing.  While I’m all for learning new stuff (especially Java/*nix stuff), this is turning out to be a pretty major effort.  We’ve currently got about 80 or so apps (ASP or .NET) on a handful of IIS servers.  All of these apps will eventually need to either be rewritten or ported to run in a java environment.  Can you say job security?

We decided on Weblogic as our new Java app platform (with Apache out front).  From what I can tell, it’s pretty sweet.  As a step in the direction we’re headed, we decided to use Apache to front our IIS servers, so we can just proxy our IIS apps though a unified web server.  Apache is cool.  Using Apache as the out-facing web server, we can then proxy app request to either IIS, or Weblogic, or that pesky little Tomcat service we’ve got runnin – all through one unified namespace.  Neat!

This is just the introduction to the app platform migration saga, and I have a feeling it’ll turn into a pretty regular series of articles for a while.  It sort of ties into the VSS / Source control discussions, since part of the migration is to create an entire new development environment for our engineers.

And here’s where it gets real interesting – we don’t have very thorough docs on all of our apps and their depelndencies (I know, shocking!), since some of them were written years ago, when we didn’t have much in the way of processes and proper documentation.  So trying to figure out how to map all the inter-app and server dependencies has been quite a challenge.

One really cool thing about the whole effort is that I’m getting to play with Linux, Apache, and Weblogic a lot more, which is fun!

More to follow…

VSS 2005 Upgrade

January 29, 2006

So while we’re trying to decide what do do with source control long-term, we figured we’d take VSS 2005 for a test run – just to see if it’d hold us over for a while. 

The main thing we’re missing right now is access over http for our remote crew.  Sure there are some nifty tools for VSS over http, but VSS 2005 has it built-in.

The good: VSS 2005 client sure is purty.  It’s definitely a little slicker, and the branching/merging seems a bit smarter (it couldn’t get worse, right?).  Seems to run faster too, which is nice.

The bad: Turns out, you need to use the latest VStudio (2005) client to access the repository over http.  Pretty lame, you’d think you could at least just use the VSS client.  I suppose since it’s really just exposed as a web service, someone’ll make a better interface to it, but I haven’t seen it yet.

The ugly:  Took me about 3 days to get the darn thing runnin.  For some (as yet unknown reason), VSS and IIS just would not play nicely together.  After a couple days and a few unfruitful hours on the phone with MSFT techs, I decided to just install it on another machine (an IIS box built to the same specs as the first one, just without anything on it yet).  20 minutes later it was up and runnin… go figure.

Automated build examples

January 29, 2006

Stumbled acrosss an article with some nice examples of how to automate builds. Check it out:

Which source control system?

January 28, 2006

So we’re thinkin about getting off of this clunker VSS.  Sounds like MSFT is plannin to phase out VSS as a stand-alone solution, and bundle it in with the VS Team Foundation suite.

In doing some research and product comparison, it looks like PerForce is the way to go.  Anyone have any thoughts/tips about migrating source control systems?  Sounds like it’s gonna be a fun one! 

What is Release Management?

January 28, 2006

As systems, processes, and resources become more distributed, they invariably become more specialized.  Furthermore, software products (especially web-based apps) are typically in an ongoing cycle of development, testing, and release.  Add to this an evolution in the platforms on which these systems run, and you’ve got a lot of moving pieces that must fit together to guarantee the success and long term value of a product or project.

The need exists for a resource to oversee the development, testing, deployment, and support of these systems.  This resource must have a general knowledge of every aspect of the SDLC, various operating systems and software application platforms, and an understanding of different business functions and perspectives.  Release Management addresses this need.

Release Management is the discipline (art, science, strategy, headache) of building, packaging, and deploying software for consumption.

A Release Manager is:

  • Architect – the release manager helps to identify, create, and implement processes or products to efficiently manage the release of code.
  • Gatekeeper – a release manager “holds the keys” to production systems and takes responsibility for their quality and availability.
  • Facilitator – a release manager serves as a liaison between varying business units and users to guarantee smooth and timely delivery of software products or updates.

There’s an apparent scarcity of information out there on release management in general (at least there is a tag for it at Technorati).  There’s stuff about change management, configuration management, defect tracking, source control, etc., etc.  But there’s not a lot of general info about the overall process of managing code releases.  I’d like to change that.  I’ll be posting on various release related issues as often as I can.

If you’ve ever had issues with building, deploying or releasing code for consumption, I’d like to hear about it.  This is the place for it!