7 Replies Latest reply on Dec 4, 2012 8:40 AM by rhusar

    mod_cluster cloud support for proxyList

    johnflores

      Hi All

       

      We are in the process of upgrading our stack to be cloud aware (overloaded term I know). Specifically, we are looking into the ability to run in Amazon E2C using the elastic load balancing feature for both the httpd and the jbossas7 cluster pools.

       

      It appears jbossas7 itself can be clustered sucessfully by using an alternative data location for jgroups to identifiy peir nodes (disk, db, s3 etc).  The question is now whether mod_cluster can utilize a similar feature rather then utilizing the mod_advertise implementation.  Is this possible?  The problem is that when EC2 scales the http web cluster (http), it has new nodes, but without multicast this list needs to get propagated to the jbossas clsuter config files across all instances manually, updating the proxyList value. Likewise when it scales down. Has anybody hit this problem? Solved it?

       

      Regards

      John

        • 1. Re: mod_cluster cloud support for proxyList
          belaban

          If you run AS7 in domain mode, you can easily update the proxyList in all servers in a given server group, so this is not a big deal. However, I agree with you, if you run a bunch of standalone instances, then it would be nice to provide a pluggable mechanism to fetch the list of httpd instances from somewhere.

          • 2. Re: mod_cluster cloud support for proxyList
            johnflores

            Oh yeah, I didn't think of that option. We run the jboss cluster instances in the standalone manner for various reasons.  I might need to relook at the domain mode.  The elastic load balancer will scale up and down instances of both the http and jbossas automatically based on load.  I have to look into the elastic balancer a little more to see if there is some hook/notification which could then use the jboss admin client to do the update automatically.

             

            It would be nice feature indeed. It would truely make mod_cluster/jboss cloud supported (for non-multicast providers).

            • 3. Re: mod_cluster cloud support for proxyList
              rhusar

              Hey John,

               

              What is the topology/setup you are looking at? Something like 1 ELB + n mod_cluster + n AS7 isntances (where those are collocated)?

               

              Domain certainly makes things a little easier, but you can easily script this with standalone, like this:

               

              echo -e "/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=proxy-list,value=new_list)\n/:reload" | ./bin/jboss-cli.sh --connect

               

              Note that IIRC changing this property requires a server reload, which is not very cool.

               

              Rado

              • 4. Re: mod_cluster cloud support for proxyList
                johnflores

                Hi Rado

                 

                Yes, ELB + n mod_cluster + n AS7. Not using collocated instances. Plan on using separate VPC's (private networks), but we are still evaluating/designing to see how that is possible. Our current deployment that we host ourselves (minus the dynamic scaling mechnism) uses HA LB + n mod_cluster + n AS7, and we've hardwired the proxyList (no multicast over our internal firewall).

                 

                 

                John

                • 5. Re: mod_cluster cloud support for proxyList
                  johnflores

                  Oh, thanks for the command too, might need that. The server reload requirement complicates it however, would need to pull the instances out of the load balancer to be thorough I would assume. (Our current deploy script does that over a timed rolling fashion). Might make sense to see how much work it will be to hack some code into the apache modules and port the impl from jgroups when we get to that point.

                  • 6. Re: mod_cluster cloud support for proxyList
                    jfclere

                    it is possible to add dynamically a proxy via add-proxy in the cli like:

                    +++

                    [standalone@localhost:9999 subsystem=modcluster] :add-proxy(host=neo5, port=8009)

                     

                    {"outcome" => "success"}

                    +++

                    The host/port is added to the dynamic list of the httpd proxies that is not a persisted value.

                    • 7. Re: mod_cluster cloud support for proxyList
                      rhusar

                      Jean-Frederic is absolutely right, my bad. You don't need that configuration to be persistent in your cloud setup since all nodes are essentially ephemeral. So using the operation is all you need (and no reload).