[#65881616] Load balancer documentation #24

Merged
merged 7 commits into from Mar 7, 2014

Projects

None yet

3 participants

Contributor
mikepea commented Mar 6, 2014

This is ready for review. I've split the documentation into 4 'sections':

  • General Load Balancer Service overview
  • An example of a 'normal' setup
  • More detail on Pool healthchecks (the complicated bit about pools)
  • More detail on Virtual Server persistence (the complicated bit about virtual servers)

... with the idea being that the most important information is at the top, working down into a valid setup for most people, then onto the specifics...

Contributor

No problems with this - though I was wondering if we were teetering on covering material that the VCloud Director Docs might cover.

One thing that is missing is information on the defaults that you get for free if you don't put certain items in. Is that elsewhere, or do you have a plan for it?

@annashipman annashipman and 1 other commented on an outdated diff Mar 6, 2014
```
+The load balancer service is quite basic, but supports the following:
annashipman
annashipman Mar 6, 2014 Owner

Just to clarify - here, you are talking about what the VMware vCloud Director Edge Gateway load balancer service supports? Not what we can configure with vcloud-edge_gateway?

mikepea
mikepea Mar 6, 2014 Contributor

Kind of both -- we can configure all that I mention.

On Thu, Mar 6, 2014 at 4:04 PM, Anna Shipman notifications@github.comwrote:

In README.md:


+The load balancer service is quite basic, but supports the following:

Just to clarify - here, you are talking about what the VMware vCloud
Director Edge Gateway load balancer service supports? Not what we can
configure with vcloud-edge_gateway?

Reply to this email directly or view it on GitHubhttps://github.com/alphagov/vcloud-edge_gateway/pull/24/files#r10347408
.

annashipman
annashipman Mar 6, 2014 Owner

Can you clarify that below then please?

@annashipman annashipman and 1 other commented on an outdated diff Mar 6, 2014
+ weight: 10
+```
+
+Here we have:
+
+* HTTP and HTTPS traffic balanced across 10.10.10.11 and 10.10.10.12.
+* member 10.10.10.11 has a default `weight` of 1
+* member 10.10.10.12 has a `weight` of 10, so will receive 10x the traffic of
+ 10.10.10.11
+* http and https services are using all defaults, which means:
+ * they use standard ports (80 for HTTP, 443 for HTTPS)
+ * they will use 'round robin' balancing
+ * HTTP service will 'GET /' from each node to check its health
+ * HTTPS service will check 'SSL hello' response to confirm its health.
+
+Service entries are the most complex, but generally the defaults are ok.
annashipman
annashipman Mar 6, 2014 Owner

The defaults we provide? Or the defaults if you don't put any configuration in?

mikepea
mikepea Mar 6, 2014 Contributor

The defaults that we provide, though these match to the defaults that
VMware uses too.

On Thu, Mar 6, 2014 at 4:13 PM, Anna Shipman notifications@github.comwrote:

In README.md:

  • weight: 10
    +```

+Here we have:
+
+* HTTP and HTTPS traffic balanced across 10.10.10.11 and 10.10.10.12.
+* member 10.10.10.11 has a defaultweightof 1
+* member 10.10.10.12 has aweight of 10, so will receive 10x the traffic of

  • 10.10.10.11
    +* http and https services are using all defaults, which means:
  • * they use standard ports (80 for HTTP, 443 for HTTPS)
  • * they will use 'round robin' balancing
  • * HTTP service will 'GET /' from each node to check its health
  • * HTTPS service will check 'SSL hello' response to confirm its health.

+Service entries are the most complex, but generally the defaults are ok.

The defaults we provide? Or the defaults if you don't put any
configuration in?

Reply to this email directly or view it on GitHubhttps://github.com/alphagov/vcloud-edge_gateway/pull/24/files#r10347804
.

annashipman
annashipman Mar 6, 2014 Owner

This is not totally clear... could you phrase it something like, the defaults we provide are suitable for most situations, but if you want to configure it see below? Or something like that.

@annashipman annashipman commented on the diff Mar 6, 2014
README.md
+ http:
+ port: 8080
+ algorithm: 'ROUND_ROBIN' # can also be 'LEAST_CONNECTED', 'IP_HASH', 'URI'
+ health_check:
+ port: 8081 # port to check health on, if not service port above.
+ uri: /healthcheck # for HTTP, the URI to check for 200/30* response
+ protocol: HTTP # the protocol to talk to health check service: HTTP, SSL, TCP
+ health_threshold: 2 # how many checks to success before reenabling member
+ unhealth_threshold: 3 # how many checks to fail before disabling member
+ interval: 5 # interval between checks
+ timeout: 15 # how long to wait before assuming healthcheck has failed
+
+```
+
+See [the vCloud Director Admin Guide](http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.admin.doc_51/GUID-C12B3954-155F-48AF-9855-E0DE026752D0.html)
+for more details on configuring Pool entries.
annashipman
annashipman Mar 6, 2014 Owner

👍 for link to doc.

Contributor
mikepea commented Mar 6, 2014

The VMware docs are pretty poor, so I think it makes sense for us to
describe the edgeGateway behaviour to our users.

I hadn't planned to state every default that we use, but have tried to
document where possible. Which do you think are missing?

On Thu, Mar 6, 2014 at 4:01 PM, Dan Abel notifications@github.com wrote:

No problems with this - though I was wondering if we were teetering on
covering material that the VCloud Director Docs might cover.

One thing that is missing is information on the defaults that you get for
free if you don't put certain items in. Is that elsewhere, or do you have a
plan for it?

Reply to this email directly or view it on GitHubhttps://github.com/alphagov/vcloud-edge_gateway/pull/24#issuecomment-36902838
.

@annashipman annashipman commented on an outdated diff Mar 6, 2014
```
+The load balancer service is quite basic, but supports the following:
+
+* Layer 7 balancing of HTTP traffic
+* Balancing of HTTPS traffic (though no decryption is possible, so this is
+ purely level-4 based)
+* Layer 4 balancing of arbitrary TCP traffic.
+* URI-based healthchecks of backend nodes
+* Several balancing algorithms, such as 'round robin', and 'least connections'
+* Ability to persist sessions to the same backend member node, via a variety of
+ means (eg HTTP cookie value, SSL session ID, source IP hash).
+
+It is also worth noting what it *does not* support:
annashipman
annashipman Mar 6, 2014 Owner

i.e. here - can you clarify that it is not our tool that doesn't support this, it's the VMware vCloud Director Edge Gateway load balancer service, i.e. this is not functionality that we don't have yet but will do, but functionality that we are not required to deliver?

Contributor

I can see you have some of the default yes 👍
I was wondering about the health-check defaults for one, and perhaps the service_profiles defaults, or do i need to read it again?

Owner

👍

Owner

Great, thanks. Much clearer.

Owner

So, @danielabel, I don't think @mikepea is going to answer you now or do any more work on this, as he's now on paternity leave. I'm going to merge this because I think it's OK but if there are defaults you think are missing could you please raise another PR, or ticket in Pivotal if you're not sure what they should be? Thanks.

@annashipman annashipman merged commit 7379c03 into master Mar 7, 2014
@annashipman annashipman deleted the load_balancer_readme branch Mar 7, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment