0

Aside from development & marketing changes pushed to git, what are the other possible reasons why Tooltwist Controller would proceed in the installation of new bundles in the web servers.

It was observed that even though Jenkins detected that 'No Changes' were made in git, new bundles were still installed during the Transfer Phase.

(Reference: Using Jenkins 1.462 and ToolTwist Controller Version 8.0.2.20130510).

Logs: Starting installation at Wed Aug 27 18:57:21 EDT 2014 fip /ControllerV8/launchpads/xxxxx-prod-servers/image xxx.domain.com:3YXY3/$HOME/server/ Bundle 1 (8.87mb = 53 installs, 0 deletes) Bundle 2 (8.95mb = 53 installs, 0 deletes) Bundle 3 (8.86mb = 53 installs, 0 deletes) Bundle 4 (8.94mb = 53 installs, 0 deletes) Bundle 5 (8.96mb = 52 installs, 0 deletes)

1 Answers1

1

The Controller performs two operations before deploying:

  1. Building the application after pulling source from Git.
  2. Generating navpoints JSPs

The first step should not result in files to be deployed, unless your source code changes.

However in the second step JSP files are generated by the widgets in your application, and may vary at the whim of your widgets. To make web pages run as fast as possible in production, HTML content is often generated by widgets based on database content (using product prices, etc). For page content involving data that doesn't change second by second, this performance saving is significant.

This mechanism allows the home, category and landing pages to be almost static - they run fast because they require few, or no database accesses. The database accesses and content creation are done at generate time, typically once every fifteen minutes, rather than hundreds of times a second as users accesses web pages.

So, if your widgets are dynamic and generating HTML based on data that is changing, then the Controller may have many changed files to be deployed to production, even though the source code remains unchanged. Similarly if widgets decide for any reason to generate different code each time the Controller is run, then the Controller will also have changed files to deploy.

To determine which files are being deployed each time, take a look at the hidden files used by FIP (File Installation Protocol). They can be identified by the prefix .fip-, and should log the transfers on both the Controller and the deployed server.

Note however that even when the web content remains exactly the same, the Controller does place a timestamp into one of the deployed files (or possibly a jar), so that file always needs to be deployed. I don't recall it's name but it will always be there in the FIP logs.

Philip Callender
  • 1,465
  • 1
  • 14
  • 21