Sempre que o teu sistema crece, o tráfico aumenta, cada vez son máis os usuarios que usan os teus produtos, os servidores comezan a responder máis lento, o tempo de inactividade obriga a sufrir o teu negocio, entón comezas a pensar en escalar.
Existen dúas estratexias principais para a escala: vertical e horizontal.
O escalado vertical pretende aumentar a potencia do sistema engadindo normalmente máis CPU e RAM aos seus servidores.
Pola contra, a escala horizontal céntrase en duplicar (ou clonar) os seus servidores no conxunto de recursos.
Máis sobre estes:
Escalado vertical
A escala vertical é a mellor opción para un sistema de baixo tráfico porque é o enfoque máis accesible para xestionar o crecemento sen introducir complexidade adicional. Non é necesario que se preocupe pola implantación de estratexias para un grupo de recursos, a elasticidade do conxunto de recursos, a apatridia do seu servidor, a caché distribuída, etc.
Non obstante, a escala vertical ten serios inconvenientes
- Límite de hardware xa que é imposible engadir recursos infinitamente
- A falta de failover e redundancia aumenta o risco de ter un tempo de inactividade prolongado e de perda de datos
Escalado horizontal
O escalado horizontal elimina estes problemas clonando os servidores de aplicacións e incorporando un compoñente como un equilibrador de carga .
Un equilibrador de carga distribúe o tráfico nos teus servidores mediante algoritmos específicos como:
Round-robin Round-robin ponderado - Enfoques baseados en hash IP
- Método de conexión mínimo
- Método de conexión mínima ponderado
- Método de menor resposta, e moitos outros.
Non obstante, ten varios inconvenientes:
- Os servidores teñen que ser sen estado
- As sesións deben manterse nun almacén de datos centralizado
- Máis complicado
estratexias de implantación pode ser necesario - Un equilibrador de carga pode converterse nun pescozo de botella de rendemento se está mal configurado e os recursos non son suficientes
- Introduce complexidade adicional ao sistema e é un punto único de falla potencial, o que require aplicar estratexias de conmutación por fallo.
L4 / L7 Equilibradores de carga
Para que dous dispositivos en Internet se comuniquen entre si, os sistemas subxacentes deben seguir protocolos específicos. Todo o mundo escoitou falar do modelo OSI, que describe sete capas que usan os sistemas informáticos para comunicarse a través dunha rede. Aínda que a Internet moderna está baseada nun modelo de pila de protocolos TCP/IP máis sinxelo, o modelo OSI úsase amplamente, xa que axuda a visualizar e comunicar como funcionan as redes e axuda a illar e solucionar problemas de rede.
A maioría das solucións de equilibrio de carga do sector usan os termos L4 e L7 onde L4 refírese á capa de transporte no modelo OSI e L7 refírese á capa de aplicación.
O equilibrador de carga L4 segue sendo L2/L3 xa que utiliza datos das capas inferiores, como o enderezo IP e o número de porto.
Principais vantaxes do equilibrador de carga L4
É máis seguro e eficaz xa que o contido de datos non se toma en decisións de enrutamento
A mesma conexión TCP mantense entre o cliente e o servidor, o que axuda a evitar que se supere o límite de conexións TCP dispoñibles nun equilibrador de carga.
Principais inconvenientes do equilibrador de carga L4
- O enrutamento intelixente é imposible xa que o contido non se está descifrando
- O protocolo de estado trae complexidade adicional
- Mapeo entre enderezos públicos e privados
- Non hai almacenamento na caché xa que o contido non está dispoñible neste nivel
- Non se pode usar para a arquitectura de microservizos xa que a redirección de tráfico non está dispoñible en función da ruta do URL
Por outra banda, o equilibrador de carga L7 opera a nivel de aplicación no modelo OSI
Principais vantaxes do equilibrador de carga L7
As decisións intelixentes pódense tomar en función da ruta URL, cabeceiras e contido
Almacenamento en caché
Principais inconvenientes do equilibrador de carga L7
- Sobrecarga adicional debido ao mantemento de dúas conexións TCP, unha entre o cliente e o equilibrador de carga, a segunda entre o equilibrador de carga e o servidor. Ademais, hai que ter en conta o límite de conexión TCP do equilibrador de carga
- Menos seguro xa que o equilibrador de carga debe coñecer certificados para poder descifrar datos e tomar decisións de enrutamento
Conclusión
O equilibrador de carga é un compoñente vital cando se aplica a escala horizontal para manexar sistemas de alto tráfico. Hai dous tipos principais de equilibradores de carga L4 e L7.
O equilibrador de carga L4 é moito máis seguro e eficaz debido ás limitacións para tomar decisións intelixentes
O equilibrador de carga L7 funciona dun xeito que proporciona decisións de enrutamento intelixentes debido ao custo da eficiencia e da seguridade
A elección do tipo axeitado depende dos requisitos do sistema e debe considerarse coidadosamente cun equilibrio razoable entre a aplicación dos principios de seguridade e a eliminación dos pescozos de botella no rendemento.
Tamén publicado aquí.