Sobes.tech
Middle

Milliseid koormuse jaotureid teate? Milline on teie kogemus nendega ja milliseid tehnoloogiaid olete kasutanud?

sobes.tech AI

Vastus AI-lt

Tuntud on järgmised koormuse jaotamise tüübid:

  • Seadme (Hardware Load Balancers): Spetsialiseeritud seadmed. Näide: F5 BIG-IP.
  • Tarkvara (Software Load Balancers): Töötavad tarkvarana. Näited: HAProxy, Nginx, AWS Elastic Load Balancing (ELB), Google Cloud Load Balancing, Azure Load Balancer.

On kogemusi HAProxy ja Nginx tarkvaraliste koormuse jaotajatega ning pilveteenuste AWS ELB-ga.

HAProxy:

  • Kasutatud TCP ja HTTP liikluse jaotamiseks.
  • Seadistused tehti konfiguratsioonifailide kaudu.
  • Kasutatud:
    • HTTP päringute jaotamiseks veebiserverite vahel.
    • Kõrge kättesaadavuse tagamiseks andmebaasidele (TCP liiklus).
  • Teostatud:
    • Jaotamisalgoritmid (round-robin, leastconn).
    • Serverite töö kontrollid.
    • SSL terminatsioon.
# HAProxy konfiguratsiooni näide
global
    log /dev/log    local0
    chroot /var/lib/haproxy
    stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
    stats timeout 30s
    user haproxy
    group haproxy
    daemon

defaults
    log     global
    mode    http # või tcp
    option  httplog
    option  dontlognull
    timeout connect 5000ms
    timeout client  50000ms
    timeout server  50000ms
    errorfile 400 /etc/haproxy/errors/400.http
    errorfile 403 /etc/haproxy/errors/403.http
    errorfile 408 /etc/haproxy/errors/408.http
    errorfile 500 /etc/haproxy/errors/500.http
    errorfile 502 /etc/haproxy/errors/502.http
    errorfile 503 /etc/haproxy/errors/503.http
    errorfile 504 /etc/haproxy/errors/504.http

frontend http_front
    bind *:80
    default_backend http_back

backend http_back
    balance roundrobin # Jaotamisalgoritm
    server s1 192.168.1.10:80 check # Töötav server 1
    server s2 192.168.1.11:80 check # Töötav server 2

Nginx:

  • Kasutatud reverse proxy ja HTTP(S) liikluse jaotajana.
  • Seadistused tehti failides nginx.conf või kaasatud failides.
  • Kasutatud:
    • Koormuse jaotamiseks veebiserverite ja mikroteenuste vahel.
    • Vahemälu, tihendamine, SSL terminatsioon.
  • Teostatud:
    • Erinevad jaotamismeetodid (round-robin, least_conn, ip_hash).
    • Töövõime kontrollid.
    • Virtuaalhostide konfiguratsioon.
# Nginx konfiguratsiooni näide
http {
    upstream backend_servers {
        server 192.168.1.20:8080 weight=1; # Server 1
        server 192.168.1.21:8080 weight=1; # Server 2
        # least_conn; # Muud jaotamismeetod
    }

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend_servers; # Proxy grupp
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            # Muud proxy seaded
        }
    }
}

AWS ELB:

  • Application Load Balancer (ALB): Kasutatakse HTTP/HTTPS liikluse jaotamiseks. L7 tasandil.
    • Päringute marsruutimine URL-i, päiste ja HTTP meetodite alusel.
    • Integreerub Auto Scaling gruppidega.
    • SSL terminatsioon, Web Application Firewall (WAF).
  • Network Load Balancer (NLB): Kasutatakse TCP/UDP liikluse jaotamiseks. L4 tasandil.
    • Kõrge jõudlus ja madal viivitus.
    • Kasutatakse andmebaaside, mänguserverite ja teiste viivitustundlike rakenduste jaotamiseks.

Kogemused hõlmasid Listenerite, Target Groupsi, tervise kontrollide seadistamist ning integratsiooni teiste AWS teenustega AWS Management Console, AWS CLI ja Terraform kaudu.

Tehnoloogiad:

  • Seadistamine: Failide käsitsi redigeerimine, Ansible, Chef, Puppet.
  • Infrastruktuur koodina: Terraform automaatseks juurutamiseks ja haldamiseks pilves.
  • Jälgimine: Prometheus, Grafana koos eksportijatega HAProxy/Nginx või CloudWatch AWS ELB jaoks.
  • CIDI: Konfiguratsiooni aktiveerimine ja ümberseadistamine CI/CD pipeline'ides.

Üldiselt sõltus valik rakenduse nõuetest (liiklus tüüp, jõudlus, funktsionaalsus), infrastruktuurist (pilv või on-premise) ja eelarvest.