Búsqueda de sitios web

LFCA: Aprenda la disponibilidad, el rendimiento y la escalabilidad de la nube - Parte 14


En el tema anterior de nuestra serie LFCA, brindamos una introducción a la computación en la nube, los diferentes tipos de nubes y los servicios de la nube, y le explicamos algunos de los beneficios asociados con la computación en la nube.

Si su empresa todavía se basa en el entorno informático de TI tradicional, es hora de que suba de nivel y pase a la nube. Se estima que para finales de 2021, más del 90% de la carga de trabajo total se gestionará en la nube.

Entre los principales beneficios asociados con la adopción de la computación en la nube se encuentran un mejor rendimiento, alta disponibilidad y escalabilidad. De hecho, los ignoramos como uno de los principales beneficios del uso de la tecnología en la nube.

En este tema, nos centramos en la disponibilidad, el rendimiento y la escalabilidad de la nube y buscamos comprender cómo estos tres se combinan para satisfacer las demandas de los clientes y garantizar que los usuarios accedan a sus datos cuando los necesiten desde cualquier parte del mundo.

1. Disponibilidad de la nube

Las aplicaciones y servicios de TI de una organización son críticos y cualquier interrupción del servicio puede tener un efecto profundo en los ingresos. La expectativa de los clientes es que los servicios sean accesibles las 24 horas del día, en cualquier momento y desde cualquier lugar. Y eso es lo que la tecnología Cloud busca ofrecer.

La alta disponibilidad es el objetivo final de la computación en la nube. Busca proporcionar el máximo tiempo de actividad posible de los servicios de una empresa, incluso ante interrupciones que pueden ser ocasionadas por un tiempo de inactividad del servidor o una degradación de la red sin precedentes.

La alta disponibilidad es posible gracias a sistemas redundantes y de conmutación por error. Esto sucede en un entorno de clúster donde varios servidores o sistemas realizan las mismas tareas y, por lo tanto, proporcionan redundancia.

Cuando un servidor deja de funcionar, el resto aún puede continuar ejecutándose y brindando los servicios proporcionados por el servidor afectado. Un ejemplo perfecto de redundancia es la replicación de datos entre varios servidores de bases de datos en un clúster. En caso de que el servidor de base de datos principal del clúster experimente un problema, otro servidor de base de datos seguirá proporcionando los datos requeridos por los usuarios a pesar del error.

La redundancia elimina un único punto de falla y garantiza que haya una disponibilidad del 99,999 % de los servicios y aplicaciones. La agrupación en clústeres también proporciona equilibrio de carga entre servidores y garantiza que la carga de trabajo se distribuya equitativamente y que ningún servidor se vea abrumado.

2. Escalabilidad de la nube

Otro sello distintivo de la computación en la nube es la escalabilidad. La escalabilidad es la capacidad de ajustar los recursos de la nube para satisfacer las demandas cambiantes. En pocas palabras, puede aumentar o disminuir los recursos sin problemas cuando sea necesario para satisfacer la demanda sin comprometer la calidad de los servicios ni el tiempo de inactividad.

Suponga que tiene un blog que está empezando a recibir visitas y más tráfico. Puede agregar fácilmente más recursos informáticos, como almacenamiento, RAM y CPU, a su instancia de computación en la nube para manejar la carga de trabajo adicional. Por el contrario, puede reducir los recursos cuando sea necesario. Esto garantiza que solo pague por lo que necesita y esto subraya las economías de escala que proporciona la nube.

La escalabilidad es doble: escalamiento vertical y escalamiento horizontal.

Escalado vertical

También conocido como "ampliación", el escalamiento vertical implica agregar más recursos como RAM, almacenamiento y CPU a su instancia de computación en la nube para acomodar una carga de trabajo adicional. Esto equivale a apagar su PC o servidor físico para actualizar la RAM o agregar un disco duro o SSD adicional.

Escala horizontal

El escalado horizontal, también conocido como "ampliación", implica agregar más servidores a su grupo de servidores preexistentes para garantizar la distribución de la carga de trabajo entre múltiples servidores. Con el escalado horizontal, no está limitado a la capacidad de un único servidor, a diferencia del escalado vertical. Esto proporciona más escalabilidad y menos tiempo de inactividad.

La ampliación es más deseable que la ampliación

Y he aquí por qué. Con el escalado horizontal, básicamente estás agregando más recursos, como servidores o almacenamiento, a tu conjunto de recursos ya existente. Esto le permite combinar la potencia y el rendimiento de varias instancias informáticas en una y así obtener un mejor rendimiento en lugar de simplemente agregar recursos en un solo servidor. Los servidores adicionales implican que no tendrás que lidiar con un déficit de recursos.

Además, el escalado horizontal proporciona redundancia y tolerancia a fallos de tal manera que incluso si un servidor se ve afectado, el resto seguirá demostrando acceso a los servicios requeridos. El escalado vertical está asociado con un único punto de falla. Si la instancia informática falla, todo se arruina con ella.

El escalado horizontal también ofrece máxima flexibilidad en comparación con el escalado vertical donde las aplicaciones se crean como una unidad grande. Esto hace que sea más difícil administrar, actualizar o cambiar secciones de código sin tener que reiniciar todo el sistema. La ampliación permite desacoplar las aplicaciones y permite una actualización perfecta con un tiempo de inactividad mínimo.

3. Rendimiento de la nube

Garantizar que el rendimiento de la aplicación satisfaga las demandas de los clientes puede ser una tarea bastante ardua, especialmente si tiene varios componentes ubicados en diferentes entornos que necesitan comunicarse constantemente entre sí.

Es probable que problemas como la latencia se manifiesten y afecten el rendimiento. Además, no es fácil predecir el rendimiento cuando varias entidades comparten recursos. De todos modos, aún puede lograr un alto rendimiento y mantenerse a flote implementando las siguientes medidas.

1. Instancia en la nube

Asegúrese de utilizar las instancias de nube adecuadas con suficientes recursos para manejar las cargas de trabajo de sus aplicaciones y servicios. Para aplicaciones que consumen muchos recursos, asegúrese de aprovisionar suficientes recursos de RAM, CPU y almacenamiento para su instancia en la nube para evitar un posible déficit de recursos.

2. Equilibrador de carga

Implemente un equilibrador de carga para distribuir equitativamente el tráfico de red entre sus recursos. Esto garantizará que ninguna de sus aplicaciones se vea abrumada por la demanda. Supongamos que su servidor web recibe mucho tráfico, lo que provoca retrasos y afecta el rendimiento.

Una solución perfecta sería implementar un escalado horizontal con un total de 4 servidores web detrás de un equilibrador de carga. El equilibrador de carga distribuirá el tráfico de la red entre los 4 servidores web y garantizará que ninguno se vea abrumado por la carga de trabajo.

3. Almacenamiento en caché

Utilice soluciones de almacenamiento en caché para acelerar el acceso a los archivos por parte de las aplicaciones. Los cachés almacenan datos leídos con frecuencia y, por lo tanto, eliminan las búsquedas constantes de datos que pueden afectar el rendimiento. Reducen la latencia y la carga de trabajo porque los datos ya están almacenados en caché, lo que mejora los tiempos de respuesta.

El almacenamiento en caché se puede implementar en varios niveles, como el nivel de aplicación y el nivel de base de datos. Las herramientas de almacenamiento en caché populares incluyen Redis, Memcached y Varnish cache.

4. Monitoreo del desempeño

Por último, asegúrese de monitorear el rendimiento de sus servidores y aplicaciones. Los proveedores de la nube brindan herramientas nativas que pueden ayudarlo a controlar sus servidores en la nube desde un navegador web.

Además, puede tomar su propia iniciativa e instalar herramientas de monitoreo gratuitas y de código abierto que pueden ayudarlo a controlar sus aplicaciones y servidores. Ejemplos de este tipo de aplicaciones incluyen Grafana, Netdata y Prometheus, por mencionar algunas.

Conclusión

No podemos enfatizar lo suficiente cómo la disponibilidad, la escalabilidad y el rendimiento son cruciales en la nube. Los tres factores determinan la calidad del servicio que obtendrá de su proveedor de nube y, en última instancia, trazan la línea entre el éxito o el fracaso de su negocio.