Monday, February 13, 2012

Automation of code build and deployment (Continuous Integration & Deployment)

 I have been working on code build and deployment automation for a couple of days. Have gone through many tools that are good and can help in this case. Below is a table that that lists down the applications that help at different stages of the cycle. Below table shows movement of the code (source to binary form).


Tools/ Stage Version Contol Checkout Compile & build Run unit tests Configuration of deployment environments Deployment of build to various environments Deployment of DB changes to various environments
Tools Git Cruise Control Cruise Control (ANT, MAVEN, Make, Scripts, etc) Junit cfEngine Control Tier Liquibase
SVN Jenkins Jenkins (ANT, MAVEN, Make, Scripts, etc) Nunit Smartfrog Capistrano Scripts
CVS
Hudson(ANT, MAVEN, Make, Scripts, etc) Scripts Bcfg2 Fabric dbdeploy
Clearcase More tools


Smartfrog
More Tools
More Tools More unit testing frameworks



I was looking only at the open source tools, thus commercial tools are not found in this list. I found Jenkins to be amazingly simple and powerful. With a rich set of plugins and super easy interface and configuration its a breeze. In fact I was able to use it for the entire cycle right from checkout to deploy. It checks out the code, builds the war file (using ANT) transfers it to a windows or unix machine and deploy it.

While other tools might provide extra functionality but they will also add the overhead of managing multiple tools. Using a single tool for the entire cycle reduces the complexity of entire system.

Am currently exploring it for continuous integration and deployment for one of our legacy systems built on COBOL. Theoretically it would work. Just need to iron out a couple of issues on the legacy system front and it would be good to go.

Cruise control was a bit buggy (perhaps the windows build had an issue) and a lot more difficult to configure compared to Jenkins.

Also tried Beebox, but could not get to to work.

Did not try Luntbuild as the last release was somewhere in 2010. Not sure if it is still being maintained.

My verdict is Jenkins. The way to go...

Saturday, January 21, 2012

Open Source Shopping Carts evaluation

I was looking at some open source shopping carts in the process of setting up an online shop. Read a lot of sites/posts/blogs however none of them could make me really understand which one to choose and I ended up downloading, installing and experimenting to find one which one suits best.

In fact it all depends on what is it that you are trying to achieve and how much of money and expertise do you have. I was not looking to do any coding (very minimal if any) to modify the shopping cart to suit to my needs. I will just tabulate the basic feature set that someone setting up an online shop would look for. I started with zencart moved to opencart and then to oscommerce before finally coming back to opencart. I read somewhere that opencart is wordpress of shopping carts, and I wholeheartedly endorse this statement.

 Goal: To set up an online shopping site as quickly as quickly as possible.

Opencart Vs Zencart vs Oscommerce

ParameterOpencartZencartOscommerce
Version1.5.1.31.5.02.3.1
Installation10 min10 min10 min
Possible customizations without codingLow. But most will not need.Highest. Entire screen layout can be changed. Sections can be defined and worked out.Medium
Free AddonsNot really usabe addonsGood ListGood List
Do you need addonsNoYesYes
Base installation look & FeelDecent look and feel with all the features out of box without adding any plugins are available. Product images with lighbox is available.Bad. Something as basic as image zoom using lightbox is not available. Cannot attach multiple images of the product without addons.Bad. Can attach multiple images. Lighbox for image zoom is available out of box.
Basic theme/templateDecent. Additional good freely downloadable templates are not availablke freely. However in most cases the default is decent to start with.Bad. You will have to search for themes templates that can make the site look decent. Haven't really seen good ones available freely.Bad. Same story as zencart.
Ease of use (Admin)Easiest. Provides google analytics integration out of box andd that is cool for most.For uploading images to server you will need to create the folder on server using ftp and then you can upload the images using web front end. Can be improved hugely.Decent
Ease of use (Customer)Easiest with folding javascript sections.Easy but inefficient as page refreshes for every section.Easy but inefficient as page refreshes for every section.
SlideshowsVery easy to build. Put the images and set them via front end.Will need addon (Free).Will need addon (Free)

Support on zencart forum as pretty good and you get your questions answered pretty quickly. In fact zencart is a fork of oscommerce and has gotten added more features but usability has reduced.

Though oscommerce is pretty good I could not find good free templates for it. STS (Simple Template System) does not work for version 2.3.1 and MTS (mini template system) though appears to be pretty good costs money.

I also tried magento. But the base installation downloaded from their site was broken. So did not pursue it.

Remember, shopping cart is only a tool for you get your products online quickly so that you can start selling and making money. Try to have minimal addons as they would have their own overhead and will demand time from you.

My recommendation. Go for opencart. It has everything you need to set up an online store and your effort to result ratio in setting up the shop would be highest without much disappointment.

Cheers!!!