En este documento, se describe cómo lanzar una versión con el entorno de ejecución de SaaS.
SaaS Runtime permite realizar actualizaciones en varias unidades aprovisionadas a través de lanzamientos. Las versiones se lanzan para unidades objetivo según su UnitKind y, de manera opcional, pueden aplicar filtros (unit_filter) para segmentar un subconjunto específico de unidades con Google Cloud CLI . Esto permite administrar las actualizaciones en toda la base implementada. Una reversión se puede realizar actualizando las unidades a una versión anterior.
Para realizar operaciones en una sola unidad específica, usa los controles disponibles en la página Detalles de la unidad.
Antes de comenzar
Antes de actualizar tu oferta de SaaS, debes hacer lo siguiente:
- Asegúrate de tener habilitado el entorno de ejecución SaaS.
- Asegúrate de tener los permisos de IAM necesarios para crear una oferta de SaaS.
- Crea una oferta de SaaS.
- Crea un UnitKind.
- Crea y aprovisiona una unidad.
- Prepara un plano de Terraform nuevo o modificado.
Crea una versión
Antes de actualizar tu oferta de SaaS, debes crear una versión. Una versión representa una versión específica de tu aplicación de SaaS que se define por un paquete de plano y sus configuraciones asociadas. Básicamente, una versión contiene la actualización de tus unidades.
Console
Ve a SaaS Runtime.
Haz clic en Versiones.
En la página Lanzamientos, haz clic en Crear.
En la página Create Release, haz lo siguiente:
- En el cuadro Nombre de la versión, ingresa un nombre único para la versión.
- En el cuadro Tipo de unidad, selecciona el tipo de unidad con el que se asocia esta versión.
- En la sección Solo se puede actualizar desde (opcional), puedes seleccionar de forma opcional las versiones desde las que se pueden actualizar las unidades a esta versión. Esto te permite controlar las rutas de actualización.
- En los pasos Create Blueprint y Store Blueprint, selecciona o crea tu blueprint. Consulta la documentación de Blueprint para obtener información detallada sobre las opciones de creación de blueprints.
En la sección Variables (opcional), puedes establecer variables de entrada para esta versión de forma opcional. Consulta la documentación sobre variables para obtener más información sobre cómo configurarlas.
Haz clic en Crear.
Creaste un lanzamiento. Puedes ver los detalles de la versión en la página Detalles de la versión. Podrás hacer referencia a esta versión cuando crees un lanzamiento.
gcloud
Para crear una versión con la consola, haz lo siguiente: Google Cloud
gcloud beta saas-runtime releases create RELEASE_NAME --blueprint-package=BLUEPRINT_PACKAGE_URI --unit-kind=UNIT_KIND [--location=LOCATION] [--labels=[KEY=VALUE,...]] [--upgradeable-from-releases=[RELEASE_NAME,...]] [--input-variable-defaults=[variable=VARIABLE,value=VALUE,type=TYPE,...]]
Reemplaza lo siguiente:
RELEASE_NAME: ID de la versión que deseas crear. Este será parte del nombre completo del recurso de la versión.BLUEPRINT_PACKAGE_URI: URI del paquete de blueprint que se usará para esta versión. Los esquemas son imágenes de OCI alojadas en Artifact Registry o en otro registro de OCI.- El paquete de blueprint contiene los artefactos necesarios para que aprovisiones una unidad y también incluye metadatos sobre el motor que se usa (Terraform), así como la versión.
- Si omites el nombre de host en el URI, se usará de forma predeterminada la ruta de acceso regional de Artifact Registry (
us-east1-docker.pkg.dev, por ejemplo). - Consulta la documentación de Blueprint para obtener más información sobre cómo crear blueprints.
UNIT_KIND: Es el ID o el identificador completamente calificado del tipo de unidad al que corresponde esta versión. UNIT_KIND es inmutable después de que creas una versión.LOCATION: Es la ubicación en la que deseas crear la versión. Esta marca proporciona un valor de resguardo para la ubicación de la versión si no se proporciona la ruta de URI completa. El valor predeterminado es la ubicación configurada en tu entorno de Google Cloud CLI.LABELS: (Opcional) Son las etiquetas que se aplicarán a la versión para su categorización. Las etiquetas son pares clave-valor.- Las claves deben comenzar con un carácter en minúscula y contener solo guiones, guiones bajos, caracteres en minúscula y números.
- Los valores deben contener solo guiones, guiones bajos, caracteres en minúscula y números.
- Por ejemplo:
--labels=environment=staging,team=saas-runtime.
UPGRADEABLE_FROM_RELEASES: (Opcional) Es una lista separada por comas de los nombres de las versiones que especifica qué versiones existentes se pueden actualizar con la nueva versión que creas.- Si dejas esta marca vacía, no habrá restricciones sobre qué versiones se pueden actualizar a esta versión.
- Cuando se proporciona, las solicitudes de actualización de unidades para esta versión aplicarán esta restricción.
INPUT_VARIABLE_DEFAULTS: (Opcional) Valores predeterminados para las variables de entrada que requiere el plan.- Puedes especificar valores predeterminados de variables intercalados o haciendo referencia a un archivo YAML o JSON.
- Las variables definidas aquí se pueden anular durante la creación del lanzamiento.
Para obtener más información sobre cómo configurar variables, consulta la documentación sobre variables.
Para obtener más información sobre las versiones, consulta la referencia de Release de Google Cloud CLI.
Crea un tipo de lanzamiento
Antes de crear un lanzamiento, debes crear un tipo de lanzamiento que sirva como plantilla para la implementación de la versión en tus unidades.
Console
Ve a SaaS Runtime.
Haz clic en Tipos de lanzamiento.
En la página Tipos de lanzamiento, haz clic en Crear.
En la página Crear un tipo de lanzamiento, haz lo siguiente:
- En el cuadro Nombre del tipo de lanzamiento, ingresa un nombre para tu tipo de lanzamiento.
- En el cuadro Tipo de unidad, selecciona el tipo de unidad que detalla el tipo de unidad para el que deseas que se lance la versión.
En el menú desplegable Estrategia de lanzamiento, selecciona la estrategia que deseas usar para implementar la versión en tus unidades:
- Una ubicación a la vez (simple): Actualiza una ubicación a la vez (sin tiempos de absorción). Actualiza hasta el 20% de las unidades de forma simultánea.
- Todo a la vez (simple): Todas las ubicaciones comienzan a lanzarse de forma simultánea (ideal para entornos de desarrollo y situaciones de emergencia).
- Progresivo (gradual): Publica actualizaciones de forma gradual en lotes de porcentajes de manera exponencial en varias ubicaciones (con tiempos de permanencia).
- Progresiva (una sola ubicación): Actualiza unidades en lotes de porcentaje con tiempos de prueba extendidos para detectar problemas en una sola ubicación.
Para obtener más información sobre las estrategias de lanzamiento, consulta Estrategias de lanzamiento.
Haz clic en Crear.
Creaste un tipo de lanzamiento. En la página Detalles del tipo de lanzamiento, puedes ver y editar los parámetros del tipo de lanzamiento.
gcloud
Para crear un tipo de lanzamiento con la consola de Google Cloud , haz lo siguiente:
gcloud beta saas-runtime rollout-kinds create ROLLOUT_KIND_NAME --unit-kind=UNIT_KIND --location=LOCATION --rollout_strategy=ROLLOUT_STRATEGY --error_budget=ERROR_BUDGET --unit_filter=UNIT_FILTER --update_unit_kind_default=UPDATE_UNIT_KIND_DEFAULT
Reemplaza lo siguiente:
ROLLOUT_KIND_NAME: Es el nombre del tipo de lanzamiento.UNIT_KIND: Define a qué unidades deseas aplicar las versiones. Las versiones se aplican a todas las unidades del tipo de unidad seleccionado.LOCATION: Es la ubicación en la que deseas crear el tipo de lanzamiento.ROLLOUT_STRATEGY: Define la estrategia de lanzamiento para tu tipo de lanzamiento. Estos son algunos de los valores posibles:Google.Cloud.Simple.OneLocationAtATime: Actualiza una ubicación a la vez (sin tiempos de prueba). Actualiza hasta el 20% de las unidades de forma simultánea.Google.Cloud.Simple.AllAtOnce: Todas las ubicaciones comienzan a lanzar la actualización simultáneamente (ideal para entornos de desarrollo y situaciones de emergencia).Google.Cloud.Progressive.Gradual.v1: Implementa actualizaciones de forma gradual en lotes porcentuales de manera exponencial en varias ubicaciones (con tiempos de prueba).Google.Cloud.Progressive.SingleLocation.v1: Actualiza unidades en lotes porcentuales con tiempos de permanencia extendidos para detectar problemas en una sola ubicación.
Para obtener más información sobre las estrategias de lanzamiento, consulta Estrategias de lanzamiento.
ERROR_BUDGET: Es la configuración del porcentaje de error aceptable. Si la cantidad de unidades con errores supera el máximo deerror_budget(definido porallowed_count,allowed_ratio*total_units), se pausará el lanzamiento. Si no se estableceerror_budget, el entorno de ejecución de SaaS intentará actualizar todas las unidades, independientemente de la cantidad de errores que se produzcan.UNIT_FILTER: Cadena de filtro con formato de CEL que se usa en relación con las unidades. Se aplicará el filtro para determinar la población de unidades aptas. Este filtro solo puede reducir el alcance del lanzamiento. No puede expandir el alcance de la versión.UPDATE_UNIT_KIND_DEFAULT: Es la configuración para actualizar el tipo de unidad. De forma predeterminada, el tipo de unidad se actualizará al inicio del lanzamiento. Estos son algunos de los valores posibles:UPDATE_UNIT_KIND_STRATEGY_UNSPECIFIED: No se especificó la estrategia de actualización del tipo de unidad.UPDATE_UNIT_KIND_STRATEGY_ON_START: Actualiza la estrategia de tipo de unidad en el inicio del lanzamiento.UPDATE_UNIT_KIND_STRATEGY_NEVER: Nunca actualiza la estrategia de tipo de unidad.
Para obtener más información, consulta la RolloutKind referencia de Google Cloud CLI.
Función de porcentaje de error aceptable
SaaS Runtime incluye una función de porcentaje de error aceptable (ErrorBudget en RolloutKind) como medida de protección. Esto puede pausar automáticamente un lanzamiento si la cantidad o el porcentaje de errores de actualización de unidades (durante la aplicación de infraestructura, por ejemplo) supera un umbral configurado, lo que ayuda a limitar el impacto de posibles problemas durante una actualización.
Crear un lanzamiento
Después de crear un tipo de lanzamiento, puedes crear un lanzamiento que especifique la versión con la que deseas actualizar tus unidades.
Una vez que se crea el lanzamiento, el entorno de ejecución de SaaS actualiza tus unidades según la estrategia definida en el tipo de unidad.
Console
Ve a SaaS Runtime.
Haz clic en Lanzamientos.
En la página Lista de versiones, haz clic en Crear.
En la página Crear un lanzamiento, haz lo siguiente:
- En el cuadro Tipo de lanzamiento, selecciona el tipo de lanzamiento que detalla cómo lanzar tu versión en las unidades especificadas.
- En el cuadro Release, especifica la versión con la que se actualizarán las unidades.
- En el cuadro Nombre del lanzamiento, ingresa un nombre para el lanzamiento.
Haz clic en Crear.
Se creó tu lanzamiento.
En la página Detalles de la implementación global, puedes supervisar los detalles de la implementación, como el estado, el progreso (por recuento de unidades) y las fallas.
gcloud
Para crear un lanzamiento con la consola de Google Cloud , sigue estos pasos:
gcloud beta saas-runtime rollouts create ROLLOUT_NAME --rollout-kind=ROLLOUT_KIND_NAME --release=RELEASE_NAME --location=LOCATION
Reemplaza lo siguiente:
ROLLOUT_NAME: Es el nombre del lanzamiento.ROLLOUT_KIND_NAME: Define qué tipo de lanzamiento deseas usar para aplicar versiones a tus unidades. Las versiones se aplican a todas las unidades del tipo de unidad definido en el tipo de lanzamiento.RELEASE_NAME: Define el objeto binario de la versión que deseas implementar en tus unidades.LOCATION: Es la ubicación en la que deseas crear tu lanzamiento.
Para obtener más información, consulta la Rollout referencia de Google Cloud CLI.
¿Qué sigue?
- Para obtener más información sobre SaaS Runtime, consulta la descripción general.
- Para probar un instructivo, consulta Implementa una VM con el entorno de ejecución de SaaS.
- Para comprender cómo se usan las cuentas de servicio y cómo otorgar permisos detallados para estas cuentas, consulta Cuentas de servicio del entorno de ejecución de SaaS.