ARGUS AE Load Balancing Product & Version Number 1/21/2015 ARGUS Software An Altus Group Company
ARGUS Enterprise 10.5 1/21/2015 Published by: ARGUS Software, Inc. 3050 Post Oak Boulevard Suite 900 Houston, Texas 77056 Telephone (713) 621-4343 Facsimile (713) 621-2787 www.argussoftware.com Information in this document is subject to change without notice and represents no commitment on the part of ARGUS Software, Inc. This document is copyright 2015, ARGUS Software, Inc. All rights reserved. This document is a confidential and proprietary trade secret of ARGUS Software, made available only under a license agreement and or other agreements containing obligations of confidentiality. "ARGUS" and ARGUS Enterprise are trademarks of ARGUS Software, Inc. All other trademarks and registered trademarks are property of their respective companies.
Table of Contents Purpose... 2 About Load Balancing... 2 ARGUS Enterprise Components... 2 Typical Deployment... 3 ARGUS Enterprise Typical Install... 3 Scaled Deployment... 4 ARGUS Enterprise scaled install... 4 Connection Usage in ARGUS Enterprise... 5 Application Service... 5 Application Service Deployment... 5 Recommendations... 6 When to deploy a load balancer... 6 What to recommend to your end users... 6 Alternative to Load Balancer... 6 Appendix... 7 Microsoft Network Load Balancer... 7 Amazon EC2 Network Load Balancer... 8
Purpose The purpose of this document is to provide client IT networking professionals information about load balancing for ARGUS Enterprise. About Load Balancing A Load Balancer (either hardware or software) is a core networking solution that manages concurrent user capacity and general reliability of applications by distributing processing and communications activity evenly across a computer network so that no single device is overwhelmed. It also provides failover redundancy, so if one server fails then calls can still be re-routed through the remaining servers. You will only need a load balancer if you have more than 150 concurrent ARGUS Enterprise users in the system at one time. Concurrent users are actively working in ARGUS Enterprise, not to be confused with licensed users. For example, if you have 600+ users but only about 100 are expected to be in the system on any one day then you should not need load balancing. ARGUS Enterprise supports these main components: User interfaces ARGUS Enterprise Components ARGUS Enterprise Windows Client: The main user interface. Excel Add-in: A convenient tool for importing/exporting bulk data between ARGUS Enterprise and Microsoft Excel 2007 and above. Server Components Application Service: Brokers data requests between the ARGUS Enterprise client user interfaces and the ARGUS Data Warehouse (ADW) Database. Process Service: Services bulk change requests submitted by the user for background processing (e.g. recalculation of a scenario of properties, import of bulk changes to asset models via XL4ADW or the Data Service). Data Service: This optional component services import/export of data between the ARGUS Data Warehouse (ADW) Database and a customer s line-of-business systems via a web service interface and, optionally, the Custom Data Service Client provided, where appropriate, in some services engagements. ADW database: The data storage for ARGUS Enterprise. SQL Server Reporting Services (SSRS): This Microsoft provided service allows for the rendering of Portfolio level reports. 2 2014 ARGUS Software, Inc.
Typical Deployment A typical ARGUS Enterprise install requires the following component deployments. It is recommended that each component be deployed on dedicated hardware. See the AE Enterprise Planning Guides (Small, Medium or Large) for further information. ARGUS Enterprise Typical Install 3 2014 ARGUS Software, Inc.
Scaled Deployment As the size of the user base of an ARGUS Enterprise install increases, the number of components necessary will increase. Consider load balancing to increase concurrent user capacity and provide failover redundancy. ARGUS Enterprise scaled install 4 2014 ARGUS Software, Inc.
Connection Usage in ARGUS Enterprise Every ARGUS Enterprise client that connects to the Server has the potential to consume 1 or 2 session connections: One connection for the Users interaction through the Client User interface An optional second connection if the user has configured the use of a local client queue processor within their user interface. This option is not recommended for Enterprise implementation given the need for an extra session and the ability to set up Process Servers specifically to handle batch processing. Every EXCEL XL4ADW add-in connected to the server uses a further session connection. Users who have both the AE Client and XL4ADW open and connected to the server will be potentially consuming between 2 and 3 session connections each while active in those applications. Application Service The Application Service is configured to handle up to 150 concurrent sessions. A session timeout is set for 10 minutes so if a user does not interact with the server for 10 minutes (possible if they remain in the Property Editor without saving or navigating to other parts of the system), the connection will timeout. The connection is designed to be re-established by the client without the user being aware as long as there are sufficient free sessions within the pool of Application Services. Application Service Deployment For a system specified to run two (2) Application Services behind a load balancer, the system will give you a maximum of 300 concurrent sessions to the server. If all traffic is directed through one Application Service, the maximum capacity is 150 concurrent sessions. If the peak user estimate is 150+ users at peak time, then a single Application Service connection count would be exceeded. Depending on the number of users who also use a local queue or who use XL4ADW in addition to the ARGUS Enterprise client or who open more than one AE Client at the same time, the connection consumption requirement would be proportionately higher. Exceeding the number of connections will lead to denial of access for users who are newly connecting or whose session has timed out due to inactivity. 5 2014 ARGUS Software, Inc.
When to deploy a load balancer Recommendations For connection requirements in excess of 150 concurrent sessions a Load Balancer needs to be deployed in your environment to increase the concurrent connection count. Once the load balancer is operational, we recommend you add more Application Services based on your estimate of concurrent usage which you can assess based on user working habits (and who has access to XL4ADW). Note: ARGUS has tested load balancing with Microsoft NLB and Amazon EC2 load balancers. The only special requirement was to enable session support within the load balancer - session affinity (Microsoft) or Sticky sessions (Amazon). Documentation on the configuration we have employed in our testing is in the Appendix. What to recommend to your end users Send a recommendation to your users to disconnect XL4ADW from the server once data is extracted and they plan to work with the data in EXCEL for a prolonged period without accessing the server again. Strongly discourage users from running a second ARGUS Enterprise Client. Alternative to Load Balancer If you do not have a Load Balancer in use due to cost constraints or technical difficulties in setting one up, multiple Application Services can still be employed using the following strategy: Configure each application service independently. Split the user base into approximately 2 groups. Supply each group with the server name or IP Address and port number of the specific server they should configure their connection for. While this is not as controlled as using a load balancer it will eliminate running out of sessions in peak load times. Also, the session nature of ARGUS Enterprise would have a similar effect on the distribution of users across the servers even with a load balancer in operation (which will not be as even as a sessionless application, anyway). Note: This will not give any failover redundancy. If your concurrent user count is estimated to be slightly above 150 you may try increasing the service throttling parameters in the application service configuration file to get a little extra head room in peak usage. However, this is not a recommended practice and not something ARGUS has tested from a performance perspective. <behavior name="behavioraction"> <servicethrottling maxconcurrentcalls="150" maxconcurrentsessions="150" maxconcurrentinstances="150" /> <servicemetadata httpgetenabled="false" /> <!-- for http, set this to true in dev environment--> <servicedebug includeexceptiondetailinfaults="true" /> <datacontractserializer maxitemsinobjectgraph="2147483647" /> </behavior> 6 2014 ARGUS Software, Inc.
Appendix We do not recommend any particular load balancer since most organizations requiring that many users already have a load balancer or have specific needs/requirements. The only criteria is that the Application Service is session based, not per call, so once the load balancer establishes the session between client and server, all calls for that session should be routed to the same server. Microsoft Network Load Balancer and Amazon EC2 Network Load Balancer are two load balancers we have tested in the past. Below are hyperlinks for more information and examples of what to configure for session based communication. Microsoft Network Load Balancer This link describes how to set up an NLB Cluster using Windows Server 2008r2. http://technet.microsoft.com/en-us/library/cc770689(v=ws.10).aspx This link describes how to set up an NLB Cluster using Windows Server 2012. http://www.serverlab.ca/tutorials/windows/web-servers/load-balancing-web-servers-with-windows-server-2012- r2/. The Servers are vanilla specification App Service Servers and the install and configuration of the NLB cluster follows the installation described in the links. As described above, the Port rule for the application service is as shown below (except we used the standard App Service port) with the Affinity set to Single. 7 2014 ARGUS Software, Inc.
Amazon EC2 Network Load Balancer Amazon s AWS EC2 management console lets you easily add load balancing for large scale implementations requiring additional Application Servers. To get started, follow the steps using the management console using the documentation here: http://docs.aws.amazon.com/elasticloadbalancing/latest/developerguide/create-https-lb-console.html Additionally, ARGUS Enterprise is a session based application, therefore the connection type will need to be configured for to Load Balancer sticky sessions. Where to change this on your load balancer can be found here: http://docs.aws.amazon.com/elasticloadbalancing/latest/developerguide/us_stickysessions.html 8 2014 ARGUS Software, Inc.