Most of us working on Oracle Commerce (ATG/Endeca) have done the installation & configuration of the platform dozens of times already on our local machines & on server environments. And, I’m sure we hardly would have any exceptions who didn’t experience the steep learning curve. Such is the process with learning enterprise grade products that needs tons of customization before the product is ready to use.
CHALLENGE # 1
What are the typical challenges we have faced with this mammoth platform and so is applicable to any such platform?
- Size of the downloads
- Install the operating system of choice (if not already wanting to use Windows)
- # of dependencies (Web server, Application server, JDK, IDE tools, plug-ins, source code management integration, database setup, database integration, etc…)
- Oracle’s own # of installers based on what you are trying to do with Commerce, Search and experience management
- 100s of steps involved in installation of all the products
- 100s of steps involved in configuration of the Oracle commerce software & application(s)
Lot of these steps are error-prone for new and experienced users, and could lead to re-installation or re-configuration of some or all parts based on how bad it becomes in the process.
CHALLENGE # 2
Assuming you have floated new RFQ/RFP for an upcoming project & have picked the vendor to deliver the project OR you have 4-5 new team members joining the team from another project who just finished delivering another project (non-Oracle Commerce & have background of the Oracle Commerce platform).
You want these new members to start working on your project… Do you know how much is the lead time you need to bring these new resources on board and have the right kind of development environment setup?
Let us say it will take anywhere from 3-5 days (if you are lucky) to have all the access to the software, permissions, downloads, install, configure, and get going.
You really do not want these resources to be spending their 1st week on a mammoth of error-prone processes/methods of setting up the development machines.
What can you do about it? How can you cut down the time to start for these new members? How do you work with infrastructure team to make sure you can get these members up and running quickly on the new project? In the matter of minutes to a day – v/s 3-5 days or even more.
SOLUTION # 1
One solution to handle this situation is to create a Virtual Machine with all the software, tools, and configuration that you can think of that the developers would need. And, then copy the VM to developers machine and code against the Virtual Machine. Would cut down the get go time for the development team to a great extent. But, you are still looking forward to about a week of time to plan, setup & configure the virtual machine, and test it for stability & reliability.
But, this solution has a potential bottleneck. Once you have a new version out or an upgrade… you are required to redo the whole exercise again and create a NEW Virtual Machine and make sure it will work for all developers. That’s the downside of this solution otherwise, it should help cut the chase.
SOLUTION # 2
Other potential solution is to automate the installation and configuration in such as way that you can repeat the process on numerous systems and overcome the challenge posed in Solution # 1.
This can be achieved using the DevOps software such as Vagrant in combination with VirtualBox and Shell/Puppet/Chef scripts & configuration.
You can find and clone a GitHub project that provides you a complete automated solution to setup a virtual environment with both Oracle Commerce products (ATG and Endeca) including the out-of-the-box CRS – Commerce Reference store.
I’ve set up the Vagrant box project on my Mac and it is painless. It works as expected. The only thing you might want to be careful is do not download the ZIP files on Windows and copy them to Linux or Mac… It was causing the scripts to fail during the installation of Oracle DB.
NOTE: I will create a Slideshare presentation that outlines the entire process (step-by-step) to be able to create an Vagrant Box for Oracle Commerce with CRS.