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


En el tema anterior de nuestra introducción a la computación en la nube, los diferentes tipos y nubes, y los servicios en la nube, lo guiaron a través de algunos de los beneficios asociados con la computación en la nube.

Si su empresa aún se basa en el entorno informático de TI tradicional, es hora de que suba de nivel y cambie a la nube. Se estima que para fines de 2021, más del 90% de la carga de trabajo total se manejará en la nube.

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

En este tema, nos enfocamos en la disponibilidad, el rendimiento y la escalabilidad de la nube y buscamos comprender cómo estos tres se unen 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 los servicios de TI de una organización son fundamentales 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 desde cualquier lugar. Y eso es lo que busca brindar la tecnología Cloud.

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 una interrupción que puede ser ocasionada por un tiempo de inactividad sin precedentes del servidor o la degradación de la red.

La alta disponibilidad es posible gracias a los 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 puede seguir funcionando y proporcionando los servicios proporcionados por el servidor afectado. Un ejemplo perfecto de redundancia es la replicación de datos en 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 de la falla.

La redundancia elimina un solo punto de falla y asegura que haya un 99,999% de disponibilidad de 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 de manera equitativa 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 o el tiempo de inactividad.

Suponga que está ejecutando un blog que está comenzando 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 informática en la nube para manejar la carga de trabajo adicional. Por el contrario, puede reducir los recursos cuando sea necesario. Esto asegura que solo pague por lo que necesita, y esto subraya las economías de escala que proporciona la nube.

La escalabilidad es doble: escala vertical y escala horizontal.

También conocido como "escalado", el escalado 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 es equivalente a apagar su PC o servidor físico para actualizar la RAM o agregar un disco duro o SSD adicional.

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

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

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

La escala horizontal también ofrece la máxima flexibilidad en comparación con la escala vertical donde las aplicaciones se construyen 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 el desacoplamiento de aplicaciones y permite una actualización sin problemas con un tiempo de inactividad mínimo.

3. Rendimiento en la nube

Asegurar que el rendimiento de la aplicación cumpla con las demandas del cliente 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 al rendimiento. Además, no es fácil predecir el rendimiento cuando los recursos son compartidos por varias entidades. Independientemente, aún puede lograr un alto rendimiento y mantenerse a flote implementando las siguientes medidas.

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 suficiente RAM, CPU y recursos de almacenamiento a su instancia en la nube para evitar un posible déficit de recursos.

Implemente un equilibrador de carga para distribuir equitativamente el tráfico de red entre sus recursos. Esto asegurará que ninguna de sus aplicaciones se vea abrumada por la demanda. Suponga que su servidor web recibe una gran cantidad de tráfico que provoca retrasos y afecta el rendimiento.

Una solución perfecta sería implementar el 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 red a través de los 4 servidores web y garantizará que ninguno se vea abrumado por la carga de trabajo.

Utilice soluciones de almacenamiento en caché para acelerar el acceso de las aplicaciones a los archivos. Los cachés almacenan datos leídos con frecuencia y, por lo tanto, eliminan las búsquedas de datos constantes que pueden afectar el rendimiento. Reducen la latencia y la carga de trabajo, ya que 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 la aplicación, el nivel de la base de datos. Las herramientas de almacenamiento en caché populares incluyen la caché de Varnish.

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

Además, puede tomar su propia iniciativa y Prometheus, por mencionar algunos.

No podemos enfatizar lo suficiente cómo la disponibilidad, el escalado 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, trazarán la línea entre el éxito o el fracaso de su negocio.