El entorno de ejecución de SaaS te permite almacenar, alojar, administrar y supervisar aplicaciones de software como servicio (SaaS) en Google Cloud. El entorno de ejecución de SaaS administra las implementaciones de Terraform a gran escala, lo que te permite administrar tanto la aplicación de SaaS como la infraestructura en la que se ejecuta.
El entorno de ejecución de SaaS puede ser utilizado de muchas maneras por una variedad de partes interesadas dentro de la canalización de SaaS. Si tu trabajo se identifica con alguno de estos roles, es posible que te interese usar el entorno de ejecución de SaaS:
- Administrador de la plataforma
- Desarrollador de aplicaciones
- Arquitecto
- Administrador de cumplimiento
- Ingeniero de plataforma
- Operaciones financieras
SaaS Runtime ofrece los siguientes beneficios:
- Simplifica la administración de servicios a gran escala automatizando las tareas de administración de servicios (como la implementación, los lanzamientos y la administración de marcas de función) en todos tus usuarios de SaaS.
- Amplía tu capacidad de observación y control ajustando tus actualizaciones y lanzamientos en unidades configurables para administrar tu oferta de SaaS con precisión a gran escala.
- Crea coherencia en todo tu Google Cloud ecosistema administrando servicios en varios Google Cloud productos, incluidos Google Cloud, Google Distributed Cloud, Facturación, Observabilidad y Resource Manager.
- Usa una arquitectura flexible y basada en plantillas que promueva las actualizaciones y las implementaciones de grupos basadas en unidades para mejorar la eficiencia y la reutilización.
¿Cómo funciona SaaS Runtime?
El entorno de ejecución de SaaS implementa artefactos que definen tu oferta de SaaS. Estos artefactos deben tener una configuración de Terraform. La implementación se organiza en unidades distintas que se pueden actualizar con versiones que contienen cambios en tu oferta a través de un proceso de lanzamiento configurable.
Para obtener más información sobre la nomenclatura de SaaS Runtime, consulta el Glosario.
Prepara tu carga de trabajo para el entorno de ejecución de SaaS
Antes de implementar tu oferta de SaaS, te recomendamos que determines la disposición ideal de tu oferta de SaaS dentro del ecosistema de SaaS Runtime.
Organiza las partes de tu oferta de SaaS que se deben actualizar o modificar juntas en configuraciones de Terraform distintas. Cuando planifiques tu oferta de SaaS, usa tipos de unidades para cada agrupación de tu oferta de SaaS.
Una vez que hayas definido la estructura ideal para tu carga de trabajo en el entorno de ejecución de SaaS, puedes crear tu oferta de SaaS, tipos de unidades y, luego, implementar tus unidades con un lanzamiento.
Para ver un ejemplo de la configuración de SaaS Runtime, consulta la guía de inicio rápido.
Cuentas de servicio del entorno de ejecución de SaaS
El entorno de ejecución de SaaS usa una combinación de cuentas de servicio administradas por Google y cuentas de servicio administradas por el usuario:
Cuenta de servicio del entorno de ejecución de SaaS (administrada por Google): Esta cuenta se crea automáticamente después de crear el primer recurso de oferta de SaaS. Google lo administra. Realiza acciones en tu nombre, como interactuar con otros servicios de Google Cloud durante el aprovisionamiento de unidades.
Cuenta de servicio de activación (administrada por el usuario): Tú creas y administras esta cuenta de servicio. El entorno de ejecución de SaaS (a través de Infrastructure Manager) usa esta cuenta para ejecutar tus configuraciones de Terraform cuando aprovisionas o actualizas unidades. Esta cuenta actúa como la identidad para crear y administrar los recursos definidos en tu configuración de Terraform. Los permisos de la cuenta de servicio de activación están directamente vinculados a los recursos que administra tu configuración de Terraform.
Puedes tener varias cuentas de servicio de activación. Te recomendamos que tengas una cuenta de servicio de activación para cada arrendatario.
Opcional: Cuenta de servicio de creación de artefactos (administrada por el usuario): Esta cuenta de servicio se usa para compilar y subir tu paquete de Terraform en artefactos de OCI. A menudo, se trata de una cuenta de servicio de Cloud Build, pero puede ser cualquier cuenta de servicio con los permisos adecuados para tu oferta de SaaS.
Cuenta de servicio del entorno de ejecución de SaaS (administrada por Google)
La cuenta de servicio de SaaS Runtime es un agente de servicio administrado por Google que usa SaaS Runtime para realizar operaciones en tu proyecto.
Esta cuenta de servicio se aprovisiona automáticamente cuando creas tu primer recurso de SaaS Runtime. La cuenta de servicio del entorno de ejecución de SaaS se crea con este formato:
service-PROJECT_NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.com
Reemplaza lo siguiente:
- PROJECT_NUMBER: Es el número de tu proyecto.
Cuenta de servicio de activación (administrada por el usuario)
La cuenta de servicio de activación es una cuenta de servicio administrada por el usuario que debes crear. El entorno de ejecución de SaaS (a través de Infra Manager) usa esta cuenta de servicio para ejecutar tus configuraciones de Terraform. Es la identidad que crea, modifica y borra los recursos definidos en tu Terraform.
Eres responsable de crear esta cuenta de servicio en tu proyecto o en tu proyecto de arrendatario.
Variables de entrada de la cuenta de servicio de activación
Cuando creas una unidad, debes proporcionar la cuenta de servicio de activación como una variable de entrada de par clave-valor para la configuración de Terraform:
- Nombre:
actuation_sa - Tipo de variable:
String Valor de la variable: Dirección de correo electrónico de la cuenta de servicio de activación:
my-actuation-sa@my-identifier.iam.gserviceaccount.com
Permisos necesarios
La cuenta de servicio de activación requiere permisos suficientes para administrar los recursos definidos en tu configuración de Terraform. Como mínimo, debe tener lo siguiente:
roles/iam.serviceAccountTokenCreator: Permite que la cuenta de servicio genere tokens para la autenticación.roles/config.admin: Otorga control total sobre los recursos de Infra Manager.roles/storage.admin: Otorga control total de Cloud Storage.
La cuenta de servicio de activación también necesita permisos para crear y administrar los recursos Google Cloud específicos que usa tu aplicación.
Por ejemplo:
- Si tu código de Terraform crea clústeres de Google Kubernetes Engine (GKE), la cuenta de servicio necesita los roles de GKE adecuados (
roles/container.admin, por ejemplo). - Si tu código de Terraform crea instancias de Compute Engine, la cuenta de servicio necesita el rol de
roles/compute.admin. - Si tu Terraform crea instancias de Cloud SQL, la cuenta de servicio necesita los roles de Cloud SQL adecuados (
roles/cloudsql.admin, por ejemplo).
Consulta la documentación de cada recurso Google Cloud que uses en tu Terraform para determinar los permisos necesarios. Otorga el privilegio mínimo necesario para que tu aplicación funcione.
Cuenta de servicio de creación de artefactos (administrada por el usuario)
La cuenta de servicio de creación de artefactos es una cuenta de servicio administrada por el usuario que creas para usar un sistema de compilación (como Cloud Build) para empaquetar y subir tus artefactos de Terraform a Artifact Registry.
Esta cuenta de servicio es independiente de las cuentas de servicio de activación y del entorno de ejecución de SaaS, y compila tu código de Terraform y envía el artefacto resultante a Artifact Registry. A menudo, esta es la cuenta de servicio de Cloud Build.
Creación manual de artefactos
Si compilas y subes tus artefactos de Terraform de forma manual (por ejemplo, con Docker build y Docker push directamente), no necesitas una cuenta de servicio independiente para la creación de artefactos.
En su lugar, debes autenticarte con tus propias credenciales o con una cuenta de servicio que tenga los permisos necesarios de Artifact Registry.
Permisos necesarios
Si usas Cloud Build, la cuenta de servicio de Cloud Build suele necesitar los siguientes roles:
roles/artifactregistry.writer: Para enviar artefactos a Artifact Registry.roles/artifactregistry.repoAdmin: Para administrar el repositorio de Artifact Registryroles/storage.admin: Para administrar los buckets de Cloud Storageroles/developerconnect.admin: Permisos para usar Developer Connect.roles/developerconnect.readTokenAccessor: Permisos para obtener el token de lectura de Developer Connect.roles/logging.logWriter: Permisos para escribir registros.- Si implementas tu configuración de Terraform con Developer Connect, haz lo siguiente:
roles/cloudbuild.builds.builder: Para ejecutar compilaciones - Cualquier otro permiso que requiera tu proceso de compilación (por ejemplo, acceso a repositorios de código fuente)
Estrategias de lanzamiento
SaaS Runtime emplea varias estrategias de lanzamiento para administrar cómo se actualizan las unidades de tu oferta de SaaS. Estas estrategias de lanzamiento siguen el enfoque deGoogle Cloudpara el cambio, ya que aplican enfoques coherentes para la implementación de cambios en toda tu oferta de SaaS.
Usa estrategias de lanzamiento para minimizar los impactos negativos en los clientes y aislar los problemas en dominios de fallas lógicos y físicos individuales. Define tus estrategias de lanzamiento creando un tipo de lanzamiento que especifique una de las siguientes estrategias:
Una ubicación a la vez (simple): Se lanza una ubicación a la vez, sin espera entre ubicaciones. Las unidades se seleccionan de forma arbitraria dentro de una ubicación, con un máximo del 20% de las unidades de la ubicación actualizadas en un momento determinado.
Esta estrategia se recomienda para entornos de desarrollo y situaciones de emergencia.
Todas a la vez (simple): Todas las ubicaciones comienzan a lanzarse al mismo tiempo.
Esta estrategia se recomienda para entornos de desarrollo y situaciones de emergencia.
Progresiva (gradual): En cada ubicación, las unidades se lanzan en lotes estáticos basados en porcentajes (por ejemplo, 1%, 10%, 20%, 30%, ~40%) con tiempos de absorción entre lotes. En todas las ubicaciones, el lanzamiento progresa con un aumento exponencial en la cantidad de ubicaciones simultáneas (por ejemplo, una ubicación, luego dos, luego cuatro) con tiempos de absorción (por ejemplo, 18 horas) entre las oleadas. Las unidades dentro de una ubicación se seleccionan de forma aleatoria.
Esta estrategia está diseñada para lanzamientos seguros y predecibles en varias ubicaciones. Comienza con una presencia reducida y se expande gradualmente a medida que aumenta la confianza. Esta estrategia se recomienda en entornos de producción con más de una ubicación.
Progresiva (ubicación única): Las unidades se actualizan en lotes estáticos basados en porcentajes (por ejemplo, 1%, 10%, 20%, 30%, ~40%) con tiempos de prueba más largos (por ejemplo, 18 horas) entre lotes para permitir suficiente tiempo para la detección de problemas y limitar el impacto adverso de los cambios en la implementación.
Esta estrategia está diseñada para ofertas de SaaS que operan en una sola ubicación, en la que se prioriza la seguridad y la precaución. Recomendamos esta estrategia en entornos de producción con una ubicación.
Para obtener más información sobre cómo crear tipos de lanzamiento, consulta Crea un tipo de lanzamiento.
¿Qué sigue?
- Prueba la guía de inicio rápido para aprender a implementar una VM con el entorno de ejecución de SaaS.
- Para comenzar a usar el entorno de ejecución de SaaS, comienza con Crea una oferta de SaaS.