19
Load Balancer L100 Rohit Rahi Oracle Cloud Infrastructure Nov 2019

Load Balancer L100 - Oracle · 2019-11-27 · • Load Balancing service creates a primary load balancer and a standby load balancer, each in a different availability domain • Supports

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Load BalancerL100

Rohit RahiOracle Cloud InfrastructureNov 2019

SafeHarborStatementThefollowingisintendedtooutlineourgeneralproductdirection.Itisintendedforinformationpurposesonly,andmaynotbeincorporatedintoanycontract.Itisnotacommitmenttodeliveranymaterial,code,orfunctionality,andshouldnotberelieduponinmakingpurchasingdecisions.Thedevelopment,release,andtimingofanyfeaturesorfunctionalitydescribedforOracle’sproductsremainsatthesolediscretionofOracle.

A load balancer sits between the clients and the backends performs tasks such as: • Service Discovery: What backends are available in the system? How should the

load balancer talk to them?• Health Check: What backends are currently healthy and available to accept

requests? • Algorithm: What algorithm should be used to balance individual requests across

the healthy backends?

Primer

Load Balancer

Load Balancer benefits

• Fault tolerance and HA: using health check + LB algorithms, a LB can effectively route around a bad or overloaded backend

• Scale: LB maximizes throughput, minimizes response time, and avoids overload of any single resource

• Naming abstraction: name resolution can be delegated to the LB; backends don’t need public IP addresses

OCI Load Balancing Service• Load Balancer as-a-service, provides scale and HA

• Public and Private Load Balancer options

• Supported Protocols – TCP, HTTP/1.0, HTTP/1.1, HTTP/2, WebSocket

• Supports SSL Termination, End-to-End SSL, SSL Tunneling

• Supports advanced features such as session persistence and content based routing

• Key differentiators

• Private or Public Load Balancer (with Public IP address)

• Provisioned bandwidth – 100 Mbps, 400 Mbps, 8 Gbps

• Single load balancer for TCP (layer 4) and HTTP (layer 7) traffic

Public Load Balancer

Public Load Balancer• Accepts traffic from the internet using a public IP address that serves as the entry point for incoming

traffic

• Public Load Balancer is a regional service

• If your region includes multiple availability domains, a public load balancer requires either a regional subnet (recommended) or two availability domain-specific (AD-specific) subnets, each in a separate availability domain.

• Load Balancing service creates a primary load balancer and a standby load balancer, each in a different availability domain

• Supports AD failover in the event of an AD outage in an Oracle Cloud Infrastructure multi-AD region

• Floating Public IP is attached to the primary load balancer, and in the event of an AD outage Floating Public IP is attached to the standby load balancer

• Service treats the two load balancers as equivalent and you cannot denote one as "primary”

AVAILABILITY DOMAIN-1 AVAILABILITY DOMAIN-2VCN

RegionalSubnet2Backend Servers

Backend SetBackend Servers

RegionalSubnet1

Load Balancer(Active)

Load Balancer (Failover)

Listener

Public Load Balancer (Regional Subnets - recommended)

Public IP address

Load Balancer Pair

AVAILABILITY DOMAIN-1 AVAILABILITY DOMAIN-2VCN

SUBNET3Backend Servers

Backend SetBackend Servers

SUBNET1 SUBNET2

Load Balancer(Active)

Load Balancer (Failover)

Listener

Public Load Balancer (AD Specific Subnets)

Public IP address

Load Balancer Pair

Concepts - Public Load Balancer

• Load Balancing Policy – tells the load balancer how to distribute incoming traffic to the backend servers

• round-robin• IP hash• least connection

• Backend Server – application server responsible for generating content in reply to the incoming TCP or HTTP traffic

• Health Checks – a test to confirm the availability of backend servers; supports

• TCP-level • HTTP-level health checks

• Backend Set – logical entity defined by a list of backend servers, a load balancing policy, and a health check policy

• Listener – entity that checks for incoming traffic on the load balancer's IP address

AVAILABILITY DOMAIN-1 AVAILABILITY DOMAIN-2VCN

RegionalSubnet2Backend Servers

Backend SetBackend Servers

RegionalSubnet1

Load Balancer(Active)

Load Balancer (Failover)

Listener

Public IP address

Load Balancer Pair

Public Load Balancer DemoL100

Rohit RahiOracle Cloud InfrastructureNov 2019

Private Load Balancer

Private Load Balancer

• Assigned a private IP address from the subnet hosting the load balancer

• The load balancer can be regional or AD-specific, depending on the scope of the host subnet; highly-available within an AD with AD specific subnets or Highly available with regional subnets

• The primary and standby load balancer each require a private IP address from that subnet

• The load balancer is accessible only from within the VCN that contains the associated subnet, or as further restricted by your security list rules

AVAILABILITY DOMAIN-1 AVAILABILITY DOMAIN-2VCN

RegionalSubnet2Backend Servers

Backend SetBackend Servers

RegionalSubnet1

Load Balancer(Active)

Load Balancer (Failover)

Listener

Private Load Balancer (Using Regional Subnets)

Private IP address

Load Balancer Pair

Local VCN traffic

Private Load Balancer (with AD Specific Subnets)AVAILABILITY DOMAIN-1 AVAILABILITY DOMAIN-2VCN

RegionalSubnet2Backend Servers

Backend SetBackend Servers

SUBNET1

(Failover)

Listener

Load Balancer(Active)

Local VCN traffic

Policies, Health Checks

Load Balancing Policies• Round Robin: default policy, distributes incoming traffic sequentially to each server in a backend set.

After each server has received a connection, the load balancer repeats the list in the same order.

• IP Hash: uses an incoming request's source IP address as a hashing key to route non-sticky traffic to the same backend server

• Least Connection: routes incoming non-sticky request traffic to the backend server with the fewest active connections

• Load balancer policy decisions apply differently to TCP load balancer, cookie-based session persistent HTTP requests (sticky requests), and non-sticky HTTP requests• A TCP load balancer considers policy and weight criteria • An HTTP load balancer w/ cookie-based session persistence forwards requests using cookie's

session info• For non-sticky HTTP requests, the load balancer applies policy and weight criteria

Health Check• Health check is a test to confirm the availability of backend servers. Health Check is activated for

• Backends• Backend set• Overall Load Balancer

• A load balancer IP can have up to 16 listeners (port numbers). Each listener has a backend set that can have 1 to N backend servers

• Health API provides a 4-state health status (ok, warning, critical, unknown)

• Health status is updated every three minutes. No finer granularity is available

Listener

Server 1

Server 2

Server 3

Load Balancer IP

Backend set

Listener

18 © 2019 Oracle

Oracle Cloud always free tier: oracle.com/cloud/free/

OCI training and certification: cloud.oracle.com/en_US/iaas/trainingcloud.oracle.com/en_US/iaas/training/certificationeducation.oracle.com/oracle-certification-path/pFamily_647

OCI hands-on labs:ocitraining.qloudable.com/provider/oracle

Oracle learning library videos on YouTube:youtube.com/user/OracleLearning

Thank you