Load Balancer Administration - Current Status

I presented about Load Balancer Administration in the User Experience Group. You can take a look at the slides and the meeting minutes. I received good feedback, especially from Vince Kraemer. He carefully reviewed CLIs and GUI and pointed out some issues. Some of which have existing RFEs/bugs associated with them.

As a follow-up to the user experience meeting, I wrote two blog entries detailing an easier way to install load balancer plug-in and also setup load balancer so that it receives confiuration updates from DAS automatically - Installing Load Balancer (Using APS Installer) with GlassFish and Updating and Monitoring HTTP Load Balancer. I also added the Loadbalancer Administration module page for GlassFish.

Following is the recap of the feedback Vince and others provided. I tried to classify the feedback into two areas - feedback to the existing features and feedback to Documentation.

Functionality Feedback
  • loadbalancer.xml's DTD lets user to configure error-url per web-module. By default LB uses a local  page in its installtion directory called default-error.html. There is no way to configure this now. Load Balancer admin should provide a way to configure this error url. (Bug # 6463611 is filed for this)
  • DTD documentation error was pointed out by Vince. DTD says the unit of measurement for disable-timeout-in-minutes is seconds. It should say minutes. Bug 6463768 is filed for this).
  • Simplify adding multiple clusters to LB configuration.  User should be able to enter comma separated targets for --target argument in   create-http-lb-config  and create-http-lb commands. (Pre-existing RFE: 6193575 )
  • Thee is a data overlap between the data in the loadbalancer.xml file for "our" lb plugin and configuration files for some of the other load balancers that I discussed on slide 4 of my presentation. XSLT "scripts" could be created to automate this for users that have those other LB configurations. No customer asked for these yet. We could take community contribution in this area.
  • [Issue 1020] We have options to enable all server instances/applications in create-http-lb-ref command, but also need lbEnableAllInstances & lbEnableAllApplications options for create-http-lb-config.
  • Auto apply should not be enabled by default in GUI. Bug # 6468049 is filed.
  • When auto-apply flag is enabled, it should not produce a large stack trace with every asadmin command if DAS is unable to contact the loadbalancer. We should warn the user without creating lots of stack traces.

Documentation Feedback

I filed a documentation bug to improve documentation with the following items. The issue 1019 is filed as a tracking bug. I need to spend some more time to write the following documentation suggestions in great detail, which can then be consumed by the documentation team for production. Documentation for Application Server 8.2 is missing the following topics:

  • The current Loadbalancer Administration documentation mentions the CLI commands. It should also provide a link that CLI command, so that user can click on the CLI command and immediately can read more about that command.
  • Document the way to change the value of the properties that were used/defaulted when a health-checker was created. Example dotted commands must be provided.
  • Clarify that the additional health-checker  properties, like active-healthcheck-enabled are global to the load balancer.
    • These properties can added during create-http-lb-config or create-http-lb.
  • Clarify that there is no stand-alone verifier for the loadbalancer.xml. asadmin (GlassFish) generates a correct loadbalancer.xml. We try to remove the need to edit the loadbalancer.xml manually and avoid any editorial mistakes.
  • Clarify that  all the customizations of the loadbalancer.xml file are supported by CLI commands and GUI screens. If they aren't, it is a bug and must be fixed.
  • Table 5-1 and other tables must use the actual names for the parameter specified in DTD.
  • Document the way to set/change the disable-timeout-in-minutes attribute of the instance element. Provide a sample command.
  • Use cases like what happens when a new application is deployed, un deployed, a new HTTP listener is added and their semantics must be clearly documented. This should also cover how web-module elements are added and deleted from loadbalancer.xml.
  • Provide a link to the latest version of DTD/Schema of the loadbalancer.xml.
  • Talk about why we require the user to execute disable-http-lb-server  before they can execute delete-http-lb-ref.
  • Discuss the behavior of delete-http-lb-config, it does not delete the loadbalancer.xml file from the machine that has the lb installed. It only removes the config object on DAS. Even in the Auto Apply mode, the loadbalancer.xml is not deleted from lb installation. No further configuration updates are sent from DAS into LB in this case.
  • Provide the mapping between the elements of the lbxml and the asadmin commands that manipulate the object created by the create-http-lb-config command? For example:

    <!ELEMENT web-module (idempotent-url-pattern\*)>
    <!ATTLIST web-module       context-root    CDATA     #REQUIRED   --> comes from domain.xml ( context-root in web-module element for stand alone modules, for an application it comes from descriptor)
     enabled         %boolean; "true"                                      -->  asadmin http-lb-enable-application
     disable-timeout-in-minutes CDATA     "31"                  -->   asadmin http-disable-http-application --timeout (you can only modify during disable, because that is when this is useful)                          error-url      CDATA ""  >                                            --> Bug # 6463611 is filed to fix this
The following must be corrected/added in 9.1 Documentation:

  • All the new commands like create-http-lb, delete-http-lb etc must be documented. New commands to add policy modules, set/change the listeners/weight attribute of the instance element must also be discussed. The way to enable/disable all the servers/applications in a config with just  --lbEnableAllApplications and --lbEnableAllInstances command/argument must be discussed. Please refer to the latest CLI man pages here.
  • Auto Apply feature must be documented.
  • The way to enable/disable all the servers/applications in a config with just  one command/argument must be discussed.
  • If the user wants to configure custom error pages, they need to be present on the machine that is balancing the load.  "best practice" for names/locations/content/whatever that we should encourage folks to follow (or build tools to automate) must be documented.

Post a Comment:
Comments are closed for this entry.



« July 2016