Selvi Dayabaran

Software Build, CI and Test Automation

Recently, I was leading the efforts of implementing an enterprise build solution to manage web services that are developed using CapeClear. The organization already had Meister in place for build management and were using it to build Java applications that were developed using WSAD and MyEclipse IDE.

As a senior consultant in IT for over 18 years, and working in Configuration and Build Management with Openmake/Meister for about 11 years, I knew exactly what we can do for this implementation to put Meister’s benefits to work for us and boost efficiency.

At the organization, there were two teams performing the initial setup/configuration activities for an application in order to use the enterprise automated build system. One team performed setup tasks related to change to production for the application and the second performed setup tasks related to building the application.

These were some of my thoughts…maximize the use of the infrastructure and tools that are already in place. Do not reinvent the wheel. Keep the build solution simple.

The approach for CapeClear Build automation solution was straightforward. Use Meister’s CapeClear ESB build method for web services. Work with the stakeholders to define standards and provide the foundation to have a reusable parameterized template that can define the openmake project settings for the applications. This eliminated the step of setting up an openmake project for each application. We went one step further. We set up a parameterized template for the target definition file itself and generated the build script for the web service applications dynamically. This eliminated another setup/maintenance task for each application. To tie it all together we used Meister workflow and perl scripts. My design for this solution came to life with the help of one of my team members who did the perl coding and a lot of testing for this implementation. She did a great job!This automated build solution works great!

We were able to eliminate the manual activities of setup and creation of build scripts performed by the second team completely. Now we have the Meister build solution for CapeClear web services in place that is even more manageable,flexible,and scalable and definitely boosts efficiency.

pixelstats trackingpixel
Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • DotNetKicks
  • E-mail this story to a friend!
  • IndianPad
  • LinkedIn
  • Live
  • MisterWong.DE
  • Print this article!
  • Reddit
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
  • YahooMyWeb
  • 2 Comments
  • Filed under: Uncategorized
  • Openmake has made available a new build method for CapeClear ESB WSAR builds.   The  CapeClear Web Services builds can now be automated using this reusable build method.

    pixelstats trackingpixel
    Share and Enjoy:
    • Digg
    • del.icio.us
    • Facebook
    • Google
    • DotNetKicks
    • E-mail this story to a friend!
    • IndianPad
    • LinkedIn
    • Live
    • MisterWong.DE
    • Print this article!
    • Reddit
    • Slashdot
    • StumbleUpon
    • Technorati
    • TwitThis
    • YahooMyWeb
  • 0 Comments
  • Filed under: OpenMake
  • Perl offers various ways to share/reuse code.  When enhancing perl code/modules used in multiple applications and/or parallel releases, it is important to ensure that we get an early warning if the change made is not backward compatible and if there is a potential for the existing applications to break.  With “use” we would know if a reference is made to an unavailable module at compile time itself.  However, there are cases, when we need to be backward compatible and allow the existing applications that share code to function seamlessly.  Using “require” instead of “use” has come in handy to ensure that the existing applications continue to work and at the same time allow the new releases to use the new functionality.  This is because “require” is more dynamic and loads the modules at run time when needed and not at compile time unlike “use”. 

    pixelstats trackingpixel
    Share and Enjoy:
    • Digg
    • del.icio.us
    • Facebook
    • Google
    • DotNetKicks
    • E-mail this story to a friend!
    • IndianPad
    • LinkedIn
    • Live
    • MisterWong.DE
    • Print this article!
    • Reddit
    • Slashdot
    • StumbleUpon
    • Technorati
    • TwitThis
    • YahooMyWeb
  • 0 Comments
  • Filed under: OpenMake, Perl
  • It is common to see a number of products (including Openmake Web Client) launch a browser window to display the logs.   Sometimes we would prefer that output logs not take over the existing IE sessions.   If the log is displayed in an existing window, this is due to browser settings. In Internet Explorer, go to Tools->Internet Options. Select the Advanced tab. In the Browsing section, deselect the option labeled “Reuse windows for launching shortcuts” and select OK.  A separate window will be used to show the log in the future.

    pixelstats trackingpixel
    Share and Enjoy:
    • Digg
    • del.icio.us
    • Facebook
    • Google
    • DotNetKicks
    • E-mail this story to a friend!
    • IndianPad
    • LinkedIn
    • Live
    • MisterWong.DE
    • Print this article!
    • Reddit
    • Slashdot
    • StumbleUpon
    • Technorati
    • TwitThis
    • YahooMyWeb
  • 0 Comments
  • Filed under: OpenMake
  • The key to success in build management is to have a standard build solution that manages builds in all the stages of an application development lifecycle in a consistent manner. Some of the features that must be considered when developing a standard build solution are as follows:

    * Provide a standard, consistent build process from desktops all the way up to production
    * Directory structure standards
    * Standard build tool
    * User and Group Management
    * Ability to run inside or outside the IDE
    * Handle configuration files for the various stages in a consistent way.
    * Runs in an automated fashion without manual intervention
    * Provides Bill of Material reports which shows the matching of the run time objects (executables) to the source code (in a version control tool) for audits.
    * Provides impact analysis (dependency) reports
    * Has the ability to perform pre-processing (such as check out from standard version control tool) and post-processing (such as automated testing and reporting).
    * Repeatable
    * Portable
    * Flexible
    * Documentation and Training

    By using the standard build solution from the developer desktops all the way up to production, the organization can ensure that the same build process is used in each stage of the lifecycle and is consistent, repeatable and auditable. This would minimize finding build issues at later stages of the lifecycle and also reduce the time it takes to release the code to production.

    By incorporating standards and best practices (ITIL, CMMI, SOX…) in the build solution, high quality build management services can be achieved. This facilitates organizations to minimize risk and achieve both high quality and value in IT operations.

    Stay tuned for our next topic…

    pixelstats trackingpixel
    Share and Enjoy:
    • Digg
    • del.icio.us
    • Facebook
    • Google
    • DotNetKicks
    • E-mail this story to a friend!
    • IndianPad
    • LinkedIn
    • Live
    • MisterWong.DE
    • Print this article!
    • Reddit
    • Slashdot
    • StumbleUpon
    • Technorati
    • TwitThis
    • YahooMyWeb

    I received a call from one of our development build meisters … there is a build issue that needs to be resolved for a complex application – this application was building successfully for years without any problems and suddenly it stopped working today. I looked at the error snippet that he had emailed me from the build log…

    [cc lang="java" tab_size="2" lines="10"]

    compile: [javac] The system is out of resources.

    [javac] Consult the following stack trace for details.
    [javac] java.lang.OutOfMemoryError

    [/cc]
    The first thought that went through my head was “I know how to resolve this – I have seen it before”! I knew that the build tool uses Ant under the cover for Java compiles. All I have to do is increase the memory using ANT_OPTS.

    This problem was happening on an Unix machine – this was one of our controlled build machines for our enterprise java builds. Before I changed the environment variable on the build machine, I went through the usual drill…

    I asked if anything had changed significantly with the application today – I heard that there was no change other than a few java files were added. I asked him if his other applications were building – he said that everything else has been building successfully except this one application. I asked him if we are able to reproduce this “out of memory” problem – he tried the build for the same application and the compile failed at the same step.

    Just to be sure, I requested the on call unix administrator to see if there was any memory problems reported at the system level for that machine. The machine didn’t report any errors of being out of memory or high swap at all that day.

    It was time to set the ANT_OPTS environment variable! I added “export ANT_OPTS=-Xmx512m” to the .profile of the system user that is used for all controlled builds on that machine. The development build meister tried the build again – it passed the compile step where it had failed consistently today! The build was successful once again for this complex application. Problem solved!

    pixelstats trackingpixel
    Share and Enjoy:
    • Digg
    • del.icio.us
    • Facebook
    • Google
    • DotNetKicks
    • E-mail this story to a friend!
    • IndianPad
    • LinkedIn
    • Live
    • MisterWong.DE
    • Print this article!
    • Reddit
    • Slashdot
    • StumbleUpon
    • Technorati
    • TwitThis
    • YahooMyWeb
  • 0 Comments
  • Filed under: Ant, Java
  • Investing in Build Management

    My name is Selvi Dayabaran and welcome to my blog series “Investing in Build Management”.  Many companies are in the situation where they must evaluate their current build management strategy or develop a new one.  This series is designed to help you understand build management and key areas that must be addressed when developing a software configuration management strategy for your organization.

    Build management is not often considered important to companies, but in this day and age, if you have been audited or challenged to comply with any regulatory demands (Sarbanes-Oxley, ITIL, CMMI, FDA, HIPAA…) in your industry, you have already seen how critical it is to the success of your organization.

    Not having a standard process to build the same way in all the stages of the development lifecycle could lead to discovering problems at the later stages of the lifecycle becoming a costly endeavor and hindering the on-time delivery to customers. When companies experience mergers, acquisitions, or simply grow, IT infrastructures must be optimized and grow too. The tools available for build management, version control and process management have a range of approaches and so it is important to choose the tool(s) that suit the needs of your organization.

    Upfront analysis keeping in mind the industry, business processes and competition will make your investment pay off and avoid those that won’t.  By being an educated consumer, you can embrace the ideas that work, accomplish the goals that you have set for the configuration management, and begin to measure the ROI within your organization.

    Stay tuned for our next topic…

    pixelstats trackingpixel
    Share and Enjoy:
    • Digg
    • del.icio.us
    • Facebook
    • Google
    • DotNetKicks
    • E-mail this story to a friend!
    • IndianPad
    • LinkedIn
    • Live
    • MisterWong.DE
    • Print this article!
    • Reddit
    • Slashdot
    • StumbleUpon
    • Technorati
    • TwitThis
    • YahooMyWeb