Preparación para el crecimiento
- 8 minutos
Probablemente haya oído decir que la preparación es la clave para el éxito. Esto es especialmente cierto en relación con el crecimiento suave, exitoso y confiable.
Una de las mayores ventajas de la informática en la nube es la capacidad de escalar. Esta capacidad ha llevado a algunos a la suposición errónea de que no hay necesidad de preparar ni planear el crecimiento en la nube porque tiene una escala infinita.
Es cierto que es probable que haya más recursos que suficientes en la nube para satisfacer las demandas de la aplicación. Sin embargo, hay un par de razones por las que sigue siendo importante comprender sus necesidades de capacidad:
Aunque probablemente haya muchos recursos en la nube para satisfacer sus necesidades, no todos los servicios que consume escalan automáticamente o son intrínsecamente escalables. Por lo tanto, debe estar al tanto de los límites de servicio y saber cuándo necesitará escalar los servicios y recursos.
Es posible que los recursos en la nube sean ilimitados, pero es probable que el presupuesto no lo sea. Debe tener en cuenta el costo y sus amigos en el departamento de Finanzas quieren conocer el gasto previsto en la nube.
Plan para el crecimiento orgánico
El crecimiento orgánico en el mundo empresarial hace referencia al proceso por el que las organizaciones amplían su propia capacidad, basándose en recursos intrínsecos y habilidades para impulsar un crecimiento más lento y natural.
Lo primero que debe hacer al planear la capacidad en la nube a medida que su negocio crece orgánicamente es asignar los requisitos de recursos actuales para los componentes más grandes de la aplicación.
Escenario: Crecimiento orgánico
Volvamos a la arquitectura que revisamos al principio de este módulo. Tailwind Traders está a punto de lanzar un nuevo producto innovador y está anticipando un crecimiento dramático como resultado. Solo para recordarte, aquí tienes cómo se ve su diagrama de arquitectura.
Para comenzar el planeamiento de la capacidad, debe identificar los componentes más grandes. En este ejemplo que incluye:
- Clúster de Azure Kubernetes Service
- Aplicación Rewards que se ejecuta en Azure App Service
- Varias bases de datos, como Cosmos DB, Azure SQL y similares.
Para cada uno de estos componentes grandes, debe comprender cuál es el uso actual de los recursos, para ayudarle a planear el uso futuro. Veamos el uso de recursos para uno de estos componentes grandes.
Medición de la capacidad en Cosmos DB
En Cosmos DB, el almacenamiento se mide en gigabytes y se escala automáticamente, aunque todavía debe tener en cuenta las medidas por motivos de costo.
El rendimiento se aprovisiona previamente y se usa una métrica denominada Unidades de solicitud para medir este rendimiento. Las unidades de solicitud (RU) son una mezcla de memoria, CPU e IOPS, lo que proporciona una única métrica por la que puede planear la capacidad. Se aprovisionan RU en incrementos de 100 RU por segundo.
Cada operación de base de datos se mide en RU/s. Las operaciones de lectura son sencillas: 1 KB de lectura es una sola unidad de solicitud. Otras operaciones se calculan en función de varios factores, como el tamaño del elemento, la coherencia de datos, los patrones de consulta, etc.
Al generar perfiles de la aplicación, cada respuesta de Cosmos DB contiene el encabezado de cargo de solicitud, que indica exactamente cuántas RU se han utilizado en su caso. Puede comparar el número de RU que se usan con el número que se ha aprovisionado para comprobar que dispone de una capacidad actual más que suficiente.
Es bueno correlacionar el uso de recursos con una métrica empresarial, como los usuarios activos mensuales o los ingresos. Esta correlación le ayuda a planear la capacidad en función de cómo espera que la empresa crezca. Puede recuperar estas métricas de capacidad en Azure Monitor. Comprender el uso de recursos del sistema le ayuda a saber cuándo tendrá que escalar verticalmente y cuáles serán los costos a lo largo del tiempo.
Seamos concretos y echemos un vistazo a los datos del uso de Cosmos DB por parte de Tailwind Traders. Este es un gráfico de su uso.
En este ejemplo, Tailwind traders está creciendo en un promedio de 2500 usuarios activos mensuales (MAU) con una base de usuarios actual de 10 000.
Si observamos el almacenamiento, podemos ver que su base de datos usa 300 GB de los 5 TB disponibles (6%). Crece al 1 % o 50 GB/mes.
Desde el punto de vista del rendimiento, permanece en 300/1000 y crece al 10 %/mes:
Ahora que entendemos las métricas de recursos de nuestros sistemas, sabemos cuándo es probable que tengamos que escalar nuestro rendimiento y también lo que nuestros costos serán a lo largo del tiempo.
Ahora podemos generar un gráfico que nos ayude con el planeamiento de capacidad.
Ahora sabemos que en mayo, vamos a alcanzar la capacidad de RUs en nuestra base de datos, por lo que debemos escalar antes de ese momento. Otra información interesante es que podrían incluso reducir su base de datos de Cosmos DB ahora mismo, ya que no están utilizando ni siquiera cerca de la capacidad aprovisionada previamente.
Plan para el crecimiento inorgánico
En el ejemplo anterior, planeaba el crecimiento orgánico. El crecimiento inorgánico surge de factores externos en lugar de aumentar las actividades empresariales propias de la empresa. En lugar de ser una progresión natural, tiende a implicar un aumento más repentino y mayor en el uso.
A veces, realmente no se sabe con antelación sobre un aumento en el tráfico, los usuarios, etc. En previsión de estos casos, debe construir su sistema para que sea lo más escalable posible de forma automática y para que falle de manera controlada cuando eso no sea posible. Tratamos esto más adelante en este módulo.
En otras ocasiones, como con un próximo lanzamiento de producto, puede experimentar un crecimiento inorgánico para el que puede planificar y prepararse. Si los equipos trabajan juntos en ingeniería, producto, marketing y finanzas, y sabe cómo obtener los patrones de uso y crecimiento de los recursos. Puede realizar un esfuerzo razonable para predecir el impacto de estos eventos en los requisitos de recursos e implementar el cambio en consecuencia.
Hacer esto bien es algo específico de su organización y del evento en particular. Puede que no siempre lo hagas bien, pero estar tan preparado como puedas te da una ventaja.
Escenario: Crecimiento inorgánico
Echemos un vistazo a otra situación hipotética como ejemplo de planificación del crecimiento inorgánico. Hay un próximo evento de marketing para el lanzamiento de un nuevo producto innovador de alto perfil en Tailwind Traders. Esperan que 5000 usuarios más puedan llegar a su sitio de ventas.
Mediante el uso de datos del ejemplo anterior de crecimiento orgánico y la correlación, idealmente con causalidad, a una métrica empresarial obtenida de los equipos de producto o marketing (por ejemplo, el número de usuarios). Puede empezar a planear el crecimiento inorgánico.
Sabemos del escenario anterior que, para 2500 usuarios, necesita aproximadamente 50 GB de almacenamiento y 100 RUs. Ahora puede usar esos datos y determinar si está listo para este evento. Si podemos esperar 5000 usuarios, eso requerirá 100 GB de almacenamiento y 200 RU/s.
Podemos ver que las capacidades de almacenamiento son más que suficientes para el crecimiento esperado del evento. Estas capacidades se escalan automáticamente para usted, por lo que no hay ninguna preocupación aquí, excepto para comprender los nuevos costos, que se abordan más adelante.
También puede predecir que las RU solo alcanzarán el 50 % de su capacidad después del evento. Por lo tanto, no tienen preocupaciones en términos de capacidad de Cosmos DB para este evento.
Sin embargo, habrá un impacto en el costo.
Puede ver que los 100 GB de almacenamiento adicional van a costar un adicional de 25 USD al mes. El precio del rendimiento sigue siendo el mismo, ya que los clientes pagan por las RU aprovisionadas, que son más que suficientes. La conclusión es que es probable que este evento de marketing aumente su factura de CosmosDB por 25 USD.