On Thu, Apr 3, 2014 at 8:28 PM, Andrew Wilkins <andrew.wilk...@canonical.com > wrote:
> Hi all, > > I've just landed support for Azure's Availability Sets on trunk today. > Here's a little demo. > > I've written a donkey charm that exposes /bin/hostname via xinetd on port > 1234, and deployed 2 units to a new Azure environment. > > $ juju status > > machines: > "0": > agent-state: started > agent-version: 1.19.0.1 > dns-name: juju-azure-r35kwahf53.cloudapp.net > instance-id: > juju-azure-r35kwahf53-jujua4tnr5eitdysr1mux2py5nnw4i5djn9rs87x7b1dwzs0js > instance-state: ReadyRole > series: trusty > "3": > agent-state: started > agent-version: 1.19.0.1 > dns-name: juju-azure-lpdz95star.cloudapp.net > instance-id: > juju-azure-lpdz95star-jujur9vwih1h3c22llw6yxtomzrkdip03i6zl7eygvrqlndooi > instance-state: ReadyRole > series: trusty > "4": > agent-state: started > agent-version: 1.19.0.1 > dns-name: juju-azure-lpdz95star.cloudapp.net > instance-id: > juju-azure-lpdz95star-jujuh1f37ozd6o8v7h2t04mxer3x8p8bfe3idmqusbve1ymle4 > instance-state: ReadyRole > series: trusty > services: > hostname: > charm: local:trusty/hostname-0 > exposed: true > units: > hostname/0: > agent-state: started > agent-version: 1.19.0.1 > machine: "3" > open-ports: > - 1234/tcp > public-address: juju-azure-lpdz95star.cloudapp.net > hostname/1: > agent-state: started > agent-version: 1.19.0.1 > machine: "4" > open-ports: > - 1234/tcp > public-address: juju-azure-lpdz95star.cloudapp.net > > ----------------- > > If you look at the units closely, you'll see they both have the same > public-address. The exposed ports are load balanced across the units: > > $ for x in {1..10}; do nc juju-azure-lpdz95star.cloudapp.net 1234; done | > sort | uniq -c > 5 jujuh1f37ozd6o8v7h2t04mxer3x8p8bfe3idmqusbve1ymle4 > 5 jujur9vwih1h3c22llw6yxtomzrkdip03i6zl7eygvrqlndooi > > Naturally if I shut down one of those instances, it all goes to the other. > Instances are automatically spread across "upgrade domains" by Azure, which > means when they upgrade their infrastructure only some of the units > disappear. Once Juju's state servers are HA, then they will be distributed > similarly. > > Because public ports must be unique or load balanced, SSH is now proxied > via the API server. Thus, "juju ssh hostname/0" still does the right thing; > it'll connect to that unit's *internal* address by proxying through machine > 0. > > I'll write about some of the concepts in Azure soon, and put something in > juju-core/doc. > As promised: https://codereview.appspot.com/84470052/ Mostly aimed at people working on the code, but still relatively high level. It's possible that some explanations are lacking, so if anything is not clear then please let me know here or as a comment on the CL. > Cheers, > Andrew >
-- Juju-dev mailing list Juju-dev@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/juju-dev