Wednesday, April 18, 2012

Is Agile Deployment an oxymoron?

One must say that considering the amount of planning, rigidity and inertia involved, agile is not the first adjective that comes to mind when talking about software deployment. Yet, software development processes have evolved so much in the last few years, gaining in responsiveness and productivity, so why should software deployment not be able to keep up? So much emphasis is put on software development yet, consider the first principle of the Agile ManifestoCustomer satisfaction by rapid delivery of useful software.

Wednesday, February 22, 2012

Kwatee 2.1 release

Kwatee Agile Deployment 2.1 has just been released. The major news of version 2.1 is that Kwatee is now free to use for personal and commercial purposes without any functionality or time restriction.

There are great improvements in the creation and definition of variables. A notable enhancement is the introduction of the Version Variable panel which shows all the variables that are used either in archive files or actions and makes it possible to define default values which can be overriden in deployments.

Visit for more details and download the application.

Thursday, January 19, 2012

Software deployment is no rocket science

Image: dream designs /
Technically speaking, software deployment requires little more than knowledge of the application's installation or update procedures, shell scripting and systems administration skills. So what's all this fuss about "the complexity of software deployment" that we can read about?

A financial software that processes millions of transactions per hour or a mobile network monitoring system that tracks the quality of every single call for an entire country in real-time, now these are example of complex systems which raise serious challenges.

Updating software involve copying files, setting up application and system security parameters, upgrading database schema and possibly configuring startup/cron configurations; that's about it.

So where is this so called complexity? And why is it that, more often than not, it takes less time to develop, test and package a new software update than to upgrade a customer deployment?

Ok, I admit that I'm leaving out some details but the truth is that while it doesn't take a rocket scientist to do software deployment, there are difficulties of a different kind:
  • It's a mind-bogglingly dull task: repetitiveness is an attention killer and increased release frequency resulting from agile development processes doesn't help.
  • Some applications must be updated on tens of servers. This type of repetition has even worse consequences on the mental sanity of the deployers.
  • Previous application configuration parameters must be re-applied to the new update. Since these are not always strictly documented, the safer procedure usually involves a careful and time-consuming inspection of the differences between old and new versions of all the files to copy changes over.
  • Implicit knowledge: the documentation of installation procedures is often slim and riddled with unwritten assumptions, relying on the experience gathered by deployment engineers over time.
All this introduces serious operational risks in the deployment process and so require additional time for double-checking and then trouble-shooting the new setup. Even then, a large proportion of defects, often insidious, that surface at production are directly attributable to simple mistakes during configuration.

So don't go looking for rocket scientists. All you need is a bunch of mindless and unerring drudges or ... empower your IT team with good agile deployment software to make their work immensely more efficient and rewarding but that will be another story.

Monday, January 16, 2012

Kwatee 2.0 release

After a long time of working on exciting enhancements, Kwatee Ltd releases a major update of it's Kwatee Agile Deployment software (formerly known as KwateeSDCM).

"Kwatee Agile Deployment is a free language-agnostic tool that deploys web applications or software on any operating system. Tedious and error-prone update operations are automated and carried out on any number of servers in your premises or in the cloud in minutes rather than hours or days."

Besides a major revamp of the user interface for better usability and readability, Kwatee 2.0 introduces telnet/ftp support for windows deployment, Amazon EC2 and ELB cloud deployment, AIX deployment support, and many more features. See the revision history for full details.

Check out the updated video tutorials and download the package to see for yourself

Tuesday, July 5, 2011

Continuous delivery of distributed applications

Image: Danilo Rizzuti /

Continuous integration has become the bread and butter of most development teams to insure that code changes from a team of developers are automatically built and tested to detect integration errors as early as possible.

Continuous delivery goes one step beyond that by extending the chain and making automated builds available for production. A pre-requisite for continuous delivery is system integration testing. Automating system integration testing is more difficult than unit testing, particularly for applications with many moving parts deployed on more than one servers.

A key-step in  implementing Continuous Delivery is to extend your CI process with an automated software configuration and deployment management system.

Saturday, June 18, 2011

Differential software updates

Image: Suat Eman /
Large applications often lead to lengthy updates. Managing deployment granularity at the component level can help to reduce the size of the updates but shifts the problem to tracking which components have changed and must be updated.

We need a mechanism that keeps track of every deployed file changes (as they really are on the target server) so that only modified files get updated.

Friday, June 17, 2011

Enhance your customer support capabilities

Image: photostock /
The first step in addressing alleged software malfunctions is to verify whether the issue can be replicated in a controlled environment.

That rather straightforward requirement is actually pretty difficult to satisfy because of the variety of operating systems on which the application may be running, the fact that there may be several versions of the application to support, etc.

One step in the right direction is to use virtual machines.

Tuesday, June 14, 2011

Managing server software deployments without remote access

Image: worradmu /
The idea behind deployment tools in general is to automate as much as possible of the process to avoid human errors. You get the full benefits in your internal LAN  but what about production upgrades to customer servers? Smaller companies may grant remote access to their trusted software providers but larger operations will flinch at this type of request and wave their security guidelines at you. What then?

Thursday, May 12, 2011

SSHD servers on Windows

KwateeSDCM requires ssh (with scp support) to be installed on target servers which are standard on Linux/Unix servers but not available by default on Windows.

There are several options available, both commercial and open source. Here's a short list of free ssh servers that can easily be installed on your Windows servers:

Monday, May 9, 2011

Deploy web application on multiple tomcat servers

This tutorial shows how to deploy a war on a tomcat server and activate the changes via tomcat's administration application. The KwateeSDCM configuration can easily be changed to deploy on 2, 9, 21, ... instances. You can read through or simply watch this video.

Monday, April 25, 2011

sdcmlib: a python library to automate software deployment

KwateeSDCM's REST API lets you automate the management of your environments. This is very useful to automate the integration testing of distributed applications.

In this post we provide a simple Python library that makes this automation event simpler as well as some very simple examples.

Wednesday, April 13, 2011

Initial kwateeSDCM release

The first public release of kwateeSDCM (0.9.1) if finally out!

The deployment and configuration management of distributed software over multiple locations, or simply of the instantiation of various configurations in a test environment is a complex and error-prone activity. Taking the risk out of this task and reducing its complexity to a single click is what kwateeSDCM is all about.

kwateeSDCM provides a central repository for software and configuration, auditing of configuration changes, multiple configuration sets (i.e. test, production, ...), single click rollout and software & configuration versioning through a user friendly web interface. The full-featured Community Edition provides major enterprise-grade benefits such as:
  • Major reduction of software upgrade rollout time
  • Quick rollback to previous software version or configuration
  • Reliable and repeatable deployment operational procedures
  • Guaranteed integrity of installed software & configuration

Check out the tutorials and download the package to see for yourself