1. Cloud Load Balancing
    1. Is a fully distributed, software-defined, managed service. Distributes load-balanced compute resources in single or multiple regions to meet HA requirements, to put resources behind a single anycast IP address, and to scale resources up or down with intelligent autoscaling
    2. Global
      1. Leverages the Google frontends, which are software-defined, distributed systems that sit in Google's PoPs.
      2. Types
        1. External HTTP(S)
        2. External SSL proxy
        3. External TCP proxy
      3. When to use
        1. Users and instances are globally distributed
        2. Users need access to the same applications and content
        3. Provide access using a single anycast IP address
    3. Regional
      1. Types
        1. External
          1. HTTP(S)
          2. TCP Proxy
          3. TCP/UDP Network
        2. Internal
          1. HTTP(S)
          2. TCP Proxy
          3. TCP/UDP
      2. When to use
        1. Distribute traffic to instances that are in a single Google Cloud region (Internal and Network Load Balancers)
  2. Managed Instance Group
    1. Is a collection of identical VM instances that you control as a single entity, using an instance template
    2. Dynamically add/remove instances
      1. Increases in load
      2. Decreses in load
    3. Autoscaling policy
      1. CPU utilization
      2. Load balancing capacity
      3. Monitoring metrics
      4. Queue-based workload
    4. Key features
      1. Instance group can be resized
      2. Manager ensures all instances are RUNNING
      3. Typically used with autoscaler
      4. Can be single zone or regional
  3. HTTP(S) Load Balancing
    1. Key features
      1. Global or Regional load balancing
      2. Anycast IP address
      3. HTTP on port 80 or 8080
      4. HTTPs on port 443
      5. IPv4 or IPv6
      6. Autoscaling
      7. URL maps
  4. Cloud CDN
    1. Uses Google's globally distributed edge PoPs to cache HTTP(S) load-balanced content close to your users
    2. Cache modes
      1. USE_ORIGIN_HEADERS
        1. Requires origin responses to set valid cache directives and valid caching headers
      2. CACHE_ALL_STATIC
        1. Automatically caches static content that doesn't have the no-store, private, or no-cache directive
      3. FORCE_CACHE_ALL
        1. Unconditionally caches responses, overriding any cache directives set by the origin
  5. SSL Proxy
    1. Is a global load balancing service for encrypted non-HTTP traffic
    2. Terminates user SSL session at the load balancing layer, then balances the connections across your instances using the SSL or TCP protocols
    3. Supports IPv4 and IPv6 clients
    4. Benefits
      1. Intelligent routing
      2. Certificate management
      3. Security patching
      4. SSL policies
  6. TCP Proxy
    1. Is a global load balancing service for unencrypted, non-HTTP traffic
    2. Terminates TCP sessions at load balancing layer
    3. IPv4 or IPv6 clients
    4. Benefits
      1. Intelligent routing
      2. Security patching
  7. Network Load Balancing
    1. Is a regional, non-proxied load balancing service
    2. Traffic can only be balanced between VM instances that are in the same region
    3. Uses forwarding rules to balance the load of your systems based on incoming IP protocol data (port and protocol type)
    4. Traffic
      1. UDP
      2. TCP/SSL ports
    5. Architecture
      1. Backend service-based
      2. Target pool-based
  8. Internal Load Balancing
    1. Is a regional private load balancing service for TCP and UDP-based traffic
    2. It's only accessible through internal IP addresses or virtual machine instances in the same region