airavata-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vidya Sagar Kalvakunta <vkalv...@umail.iu.edu>
Subject Re: UI Portal - Load Balancing & High availability
Date Thu, 26 Jan 2017 21:01:25 GMT
Hi Marcus,

Using a service registry such as Consul as the backend for the load
balancer automatically ensures the service that is currently down (in this
case being updated) is removed from the routing table of the load balancer
and the service is added when it is back online.

If you want more fine-grained control, i.e there are multiple instances
with only a part of them currently updated to the latest version and you
want the load balancer to give more priority to the latest instances until
all the instances are done being updated.

A service registered in Consul can have tags associated with it, so each
instance of the Laravel portal can register a tag with its version number.
We can write the load balancer config file, such that it assigns more
weight to instances with "Version 2" tags and less weight to instances with
"Version 1" tags.

This scenario will work with both Consul Template + HAProxy
<https://github.com/hashicorp/consul-template/blob/master/examples/haproxy.md>
or Fabio <https://github.com/eBay/fabio>.


Thanks,
Vidya







On Thu, Jan 26, 2017 at 1:54 PM, Christie, Marcus Aaron <machrist@iu.edu>
wrote:

>
> On Jan 21, 2017, at 9:40 PM, Ameya Advankar <aadvanka@umail.iu.edu> wrote:
>
> Hi Airavata Developers,
>
> As a part of the ongoing Advanced Science Gateway Architectures course at
> IU, we are working on load balancing the UI Portal. This mail chain is
> intended to be used for the same.
>
> We briefly discussed 3 load balancing technologies in this weeks classroom
> session -
> 1. *HAProxy*
> 2. *NGINX*
> 3. HAProxy with Consul / *Consul-template*
>
> The topic is open for discussion.
>
> The following is the Github link to the Portal which will be used -
>   https://github.com/airavata-courses/spring17-laravel-portal
>
> Thanks & Regards,
> Ameya Advankar
>
>
> Hello Ameya,
>
> One requirement I have is programmatic control over which instances are
> being used by a load balancer. The main use case I have in mind is
> deploying updated code. Let’s say there are two portal instances, A and B,
> that are being load balanced. I would like to create a deploy script that
> takes A out of the load balancer, then updates the code deployed to A, and
> then enable A in the load balancer again. And then do the same thing with B.
>
> Which of these load balancing technologies support this sort of
> programmatic control?
>
> Thanks,
>
> Marcus
>
>
>


-- 
Vidya Sagar Kalvakunta | Graduate MS CS Student | IU School of Informatics
and Computing | Indiana University Bloomington | (812) 691-5002 <8126915002>
 | vkalvaku@iu.edu

Mime
View raw message