A method of providing load balancing as a service to a computer network by a load balancer executing on a device intermediary to a plurality of servers and a plurality of clients, the device being located at a point in the computer network between the plurality of servers and the plurality of clients, the load balancer being mapped with a set of servers of the plurality of servers referred to as a server pool, to load balance and this mapping being maintained by publishing the server pool name in a domain name system, each server of the plurality of servers having an agent configured to discover the load balancer to service the set of servers and to initiate establishment of a transport layer connection with the load balancer on the device, the agent configured with a server pool name used by the agent to discover the load balancer using information about the server pool name published in the domain name system, the agent being configured to use the information about the server pool to access a service location record in a database that provides the internet protocol address and port of the load balancer servicing the server pool name for the agent and to initiate establishment of the transport layer connection with the load balancer using this IP address and port, the method comprising: receiving, by the load balancer executing on the device intermediary to each server of the plurality of servers and the plurality of clients, a request from the agent executing on the server initiating establishment of a transport layer connection, the request comprising an identification of the server to the load balancer and authentication credentials for the load balancer on the device to establish the transport layer connection with the server; accepting, by the load balancer on the device, the request to establish the transport layer connection with the server, the load balancer on the device using the authentication credentials received from the agent to establish the transport layer connection with the server, wherein the server is included in the set of servers mapped to the server pool corresponding to the server pool name serviced by the load balancer on the device; receiving, by the load balancer on the device, a request to access one of the set of servers from a client of the plurality of clients; and forwarding, by the load balancer on the device based on one or more factors that facilitate balancing along among the set of servers, the request to the server via the transport layer connection established between the load balancer and the server responsive to the request of the server. receiving, by the load balancer executing on the device intermediary to each server of the plurality of servers and the plurality of clients, a request from the agent executing on the server initiating establishment of a transport layer connection, the request comprising an identification of the server to the load balancer and authentication credentials for the load balancer on the device to establish the transport layer connection with the server; accepting, by the load balancer on the device, the request to establish the transport layer connection with the server, the load balancer on the device using the authentication credentials received from the agent to establish the transport layer connection with the server, wherein the server is included in the set of servers mapped to the server pool corresponding to the server pool name serviced by the load balancer on the device; receiving, by the load balancer on the device, a request to access one of the set of servers from a client of the plurality of clients; and forwarding, by the load balancer on the device based on one or more factors that facilitate balancing along among the set of servers, the request to the server via the transport layer connection established between the load balancer and the server responsive to the request of the server.