Este principio del pilar de optimización de costes del Google Cloud framework Well-Architected ofrece recomendaciones para ayudarte a planificar y aprovisionar recursos que se ajusten a los requisitos y a los patrones de consumo de tus cargas de trabajo en la nube.
Descripción general de los principios
Para optimizar el coste de tus recursos de la nube, debes conocer a fondo los requisitos de recursos y los patrones de carga de tus cargas de trabajo. Este conocimiento es la base de un modelo de costes bien definido que te permite predecir el coste total de propiedad (CTP) e identificar los factores que influyen en los costes a lo largo de tu proceso de adopción de la nube. Si analizas y pronosticas de forma proactiva el gasto en la nube, podrás tomar decisiones fundamentadas sobre el aprovisionamiento, la utilización y la optimización de costes de los recursos. Este enfoque te permite controlar el gasto en la nube, evitar el aprovisionamiento excesivo y asegurarte de que los recursos de la nube se ajustan a las necesidades dinámicas de tus cargas de trabajo y entornos.
Recomendaciones
Para optimizar el uso de los recursos en la nube de forma eficaz, tenga en cuenta las siguientes recomendaciones.
Elegir recursos específicos del entorno
Cada entorno de implementación tiene requisitos diferentes en cuanto a disponibilidad, fiabilidad y escalabilidad. Por ejemplo, los desarrolladores pueden preferir un entorno que les permita desplegar y ejecutar aplicaciones rápidamente durante periodos breves, pero que no necesite una alta disponibilidad. Por otro lado, un entorno de producción suele necesitar una alta disponibilidad. Para maximizar la utilización de tus recursos, define requisitos específicos del entorno en función de las necesidades de tu empresa. En la siguiente tabla se muestran ejemplos de requisitos específicos de cada entorno.
Entorno | Requisitos |
Producción |
|
Desarrollo y pruebas |
|
Otros entornos (como los de preproducción y control de calidad) |
|
Elegir recursos específicos de la carga de trabajo
Cada una de tus cargas de trabajo en la nube puede tener requisitos diferentes en cuanto a disponibilidad, escalabilidad, seguridad y rendimiento. Para optimizar los costes, debe alinear las opciones de recursos con los requisitos específicos de cada carga de trabajo. Por ejemplo, una aplicación sin estado puede que no requiera el mismo nivel de disponibilidad o fiabilidad que un backend con estado. En la siguiente tabla se muestran más ejemplos de requisitos específicos de las cargas de trabajo.
Tipo de carga de trabajo | Requisitos de carga de trabajo | Opciones de recursos |
Esenciales | Disponibilidad continua, seguridad sólida y alto rendimiento | Recursos premium y servicios gestionados como Spanner para ofrecer alta disponibilidad y coherencia global de los datos. |
No prioritaria | Infraestructura rentable y con autoescalado | Recursos con funciones básicas y recursos efímeros, como las máquinas virtuales de acceso puntual. |
Basado en eventos | Escalado dinámico en función de la demanda actual de capacidad y rendimiento | Servicios sin servidor como Cloud Run y Cloud Run Functions. |
Cargas de trabajo experimentales | Entorno flexible y de bajo coste para el desarrollo, la iteración, las pruebas y la innovación rápidos | Recursos con funciones básicas, recursos efímeros como máquinas virtuales de acceso puntual y entornos de pruebas con límites de gasto definidos. |
Una de las ventajas de la nube es la oportunidad de aprovechar la potencia de computación más adecuada para una carga de trabajo determinada. Algunas cargas de trabajo se desarrollan para aprovechar los conjuntos de instrucciones del procesador, mientras que otras no se diseñan de esta forma. Realiza pruebas comparativas y crea perfiles de tus cargas de trabajo en consecuencia. Categoriza tus cargas de trabajo y elige recursos específicos para cada una (por ejemplo, elige las familias de máquinas adecuadas para las VMs de Compute Engine). Esta práctica ayuda a optimizar los costes, fomentar la innovación y mantener el nivel de disponibilidad y rendimiento que necesitan tus cargas de trabajo.
A continuación se muestran ejemplos de cómo puedes implementar esta recomendación:
- Para las cargas de trabajo esenciales que atienden a usuarios distribuidos por todo el mundo, considera la posibilidad de usar Spanner. Spanner elimina la necesidad de realizar implementaciones de bases de datos complejas, ya que garantiza la fiabilidad y la coherencia de los datos en todas las regiones.
- En el caso de las cargas de trabajo con niveles de carga fluctuantes, usa el autoescalado para asegurarte de que no incurres en costes cuando la carga es baja y, al mismo tiempo, mantienes la capacidad suficiente para satisfacer la carga actual. Puedes configurar el escalado automático para muchosGoogle Cloud servicios, como máquinas virtuales de Compute Engine, clústeres de Google Kubernetes Engine (GKE) y Cloud Run. Cuando configuras el escalado automático, puedes definir límites máximos de escalado para asegurarte de que los costes no superen los presupuestos especificados.
Selecciona las regiones en función de los requisitos de costes
En el caso de tus cargas de trabajo en la nube, evalúa detenidamente las Google Cloud regiones disponibles y elige las que se ajusten a tus objetivos de costes. La región con el coste más bajo puede que no ofrezca una latencia óptima o que no cumpla tus requisitos de sostenibilidad. Toma decisiones fundamentadas sobre dónde implementar tus cargas de trabajo para conseguir el equilibrio deseado. Puedes usar la Google Cloud herramienta para seleccionar la región para conocer las ventajas y desventajas de los costes, la sostenibilidad, la latencia y otros factores.
Usar las opciones de optimización de costes integradas
LosGoogle Cloud productos ofrecen funciones integradas para ayudarte a optimizar el uso de los recursos y controlar los costes. En la siguiente tabla se muestran ejemplos de funciones de optimización de costes que puedes usar en algunos productos de Google Cloud :
Producto | Función de optimización de costes |
Compute Engine |
|
GKE |
|
Cloud Storage |
|
BigQuery |
|
VMware Engine de Google Cloud |
|
Optimizar el uso compartido de recursos
Para maximizar la utilización de los recursos en la nube, puedes desplegar varias aplicaciones o servicios en la misma infraestructura y, al mismo tiempo, cumplir los requisitos de seguridad y otros requisitos de las aplicaciones. Por ejemplo, en entornos de desarrollo y pruebas, puedes usar la misma infraestructura en la nube para probar todos los componentes de una aplicación. En el entorno de producción, puedes implementar cada componente en un conjunto de recursos independiente para limitar el impacto en caso de incidentes.
A continuación se muestran ejemplos de cómo puedes implementar esta recomendación:
- Usa una sola instancia de Cloud SQL para varios entornos que no sean de producción.
- Permite que varios equipos de desarrollo compartan un clúster de GKE mediante la función gestión de equipos de flota de GKE Enterprise con los controles de acceso adecuados.
- Usa Autopilot de GKE para aprovechar las técnicas de optimización de costes, como el empaquetado y el autoescalado, que GKE implementa de forma predeterminada.
- Para las cargas de trabajo de IA y aprendizaje automático, puedes ahorrar costes de GPU usando estrategias de uso compartido de GPU, como las GPUs con varias instancias, las GPUs con tiempo compartido y NVIDIA MPS.
Desarrollar y mantener arquitecturas de referencia
Crea y mantén un repositorio de arquitecturas de referencia adaptadas a los requisitos de diferentes entornos de implementación y tipos de cargas de trabajo. Para agilizar el proceso de diseño e implementación de proyectos individuales, un equipo como el Centro de Excelencia de Cloud (CCoE) puede gestionar los planos de forma centralizada. Los equipos de proyectos pueden elegir los planos adecuados en función de criterios claramente definidos para asegurar la coherencia de la arquitectura y la adopción de las prácticas recomendadas. En el caso de los requisitos que son únicos para un proyecto, el equipo del proyecto y el equipo de arquitectura central deben colaborar para diseñar nuevas arquitecturas de referencia. Puedes compartir las arquitecturas de referencia en toda la organización para fomentar el intercambio de conocimientos y ampliar el repositorio de soluciones disponibles. Este enfoque asegura la coherencia, acelera el desarrollo, simplifica la toma de decisiones y promueve el uso eficiente de los recursos.
Consulta las arquitecturas de referencia que ofrece Google para distintos casos prácticos y tecnologías. Estas arquitecturas de referencia incorporan prácticas recomendadas para la selección, el dimensionamiento, la configuración y la implementación de recursos. Si usas estas arquitecturas de referencia, puedes acelerar el proceso de desarrollo y ahorrar costes desde el principio.
Aplicar la disciplina de costes mediante políticas de organización
Puedes usar políticas de la organización para limitar las Google Cloud ubicaciones y los productos disponibles que pueden usar los miembros del equipo. Estas políticas ayudan a garantizar que los equipos se ciñan a soluciones rentables y aprovisionen recursos en ubicaciones que se ajusten a tus objetivos de optimización de costes.
Estima presupuestos realistas y establece límites financieros
Elabora presupuestos detallados para cada proyecto, carga de trabajo y entorno de implementación. Asegúrate de que los presupuestos cubran todos los aspectos de las operaciones en la nube, incluidos los costes de infraestructura, las licencias de software, el personal y el crecimiento previsto. Para evitar gastos excesivos y asegurarte de que se ajustan a tus objetivos financieros, establece límites o umbrales de gasto claros para proyectos, servicios o recursos específicos. Monitoriza periódicamente el gasto en la nube en comparación con estos límites. Puedes usar las alertas de cuota proactivas para identificar posibles sobrecostes con antelación y tomar medidas correctivas a tiempo.
Además de definir presupuestos, puedes usar cuotas y límites para aplicar una disciplina de costes y evitar picos de gasto inesperados. Puedes controlar de forma granular el consumo de recursos definiendo cuotas en varios niveles, como proyectos, servicios e incluso tipos de recursos específicos.
A continuación se muestran ejemplos de cómo puedes implementar esta recomendación:
- Cuotas a nivel de proyecto: define límites de gasto o cuotas de recursos a nivel de proyecto para establecer límites financieros generales y controlar el consumo de recursos en todos los servicios del proyecto.
- Cuotas específicas de un servicio: configura cuotas para servicios específicos, como Compute Engine o BigQuery, para limitar el número de instancias, CPUs o capacidad de almacenamiento que se pueden aprovisionar. Google Cloud
- Cuotas específicas de tipo de recurso: aplica cuotas a tipos de recursos concretos, como máquinas virtuales de Compute Engine, contenedores de Cloud Storage, instancias de Cloud Run o nodos de GKE, para restringir su uso y evitar sobrecostes inesperados.
- Alertas de cuota: recibe notificaciones cuando el uso de tu cuota (a nivel de proyecto) alcance un porcentaje del valor máximo.
Si usas cuotas y límites junto con presupuestos y monitorización, puedes crear un enfoque proactivo y de varias capas para controlar los costes. Este enfoque ayuda a asegurarse de que el gasto en la nube se mantenga dentro de los límites definidos y se ajuste a los objetivos de negocio. Recuerda que estos controles de costes no son permanentes ni rígidos. Para asegurarte de que los controles de costes se ajustan a los estándares del sector y reflejan las necesidades cambiantes de tu empresa, debes revisar los controles periódicamente y ajustarlos para incluir nuevas tecnologías y prácticas recomendadas.