En este documento, se describe cómo lanzar una versión con App Lifecycle Manager.
App Lifecycle Manager permite realizar actualizaciones en varias unidades aprovisionadas mediante lanzamientos. Los lanzamientos segmentan unidades 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 realizar actualizaciones administradas en toda la base implementada. Para realizar una reversión , puedes actualizar las unidades a una versión anterior.
Para realizar operaciones en una 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:
- Asegurarte de que App Lifecycle Manager esté habilitado
- Asegurarte de tener los permisos de IAM necesarios para crear una oferta de SaaS
- Crear una oferta de SaaS.
- Crear un UnitKind.
- Crear y aprovisionar una unidad.
- Preparar un esquema 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 mediante un paquete de esquema y sus configuraciones asociadas. Básicamente, una versión contiene la actualización de tus unidades.
Console
Ve a App Lifecycle Manager.
Haz clic en Versiones.
En la página Versiones, haz clic en Crear.
En la página Crear versión , 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 está asociada 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 Crear esquema y Almacenar esquema, selecciona o crea tu esquema. Consulta la documentación de esquemas para obtener información detallada sobre las opciones de creación de esquemas.
En la sección Variables (opcional), puedes establecer de forma opcional las variables de entrada para esta versión. Consulta la documentación de variables para obtener más información sobre cómo establecer variables.
Haz clic en Crear.
Creaste una versión. 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 mediante la consola Google Cloud , haz lo siguiente:
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: Es el ID de la versión que deseas crear. Formará parte del nombre completo del recurso de la versión.BLUEPRINT_PACKAGE_URI: Es el URI del paquete de esquema 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 esquema contiene los artefactos necesarios para que aprovisiones una unidad y, además, incluye metadatos sobre el motor que se usa (Terraform) y la versión.
- Si omites el nombre de host en el URI, se establecerá de forma predeterminada la ruta de Artifact Registry regional (
us-east1-docker.pkg.dev, por ejemplo). - Consulta la documentación de esquemas para obtener más información sobre cómo crear esquemas.
UNIT_KIND: Es el ID o el identificador completamente calificado del tipo de unidad al que corresponde esta versión. UNIT_KIND no se puede cambiar después de crear 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. Se establece de forma predeterminada la ubicación configurada en tu entorno de Google Cloud CLI.LABELS: Son etiquetas opcionales que se aplican a la versión para la 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: Es una lista opcional separada por comas de nombres de versiones que especifica qué versiones existentes se pueden actualizar con el nuevo lanzamiento que crees.- 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 a esta versión aplicarán esta restricción.
INPUT_VARIABLE_DEFAULTS: Son valores predeterminados opcionales para las variables de entrada que requiere el esquema.- Puedes especificar los valores predeterminados de las variables de forma intercalada 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 establecer variables, consulta la documentación de variables.
Para obtener más información sobre las versiones, consulta la referencia de Google Cloud CLI de Release.
Crea un tipo de lanzamiento
Antes de crear un lanzamiento, debes crear un tipo de lanzamiento que sirva como plantilla para la forma en que se implementa tu versión en tus unidades.
Console
Ve a App Lifecycle Manager.
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 el tipo de lanzamiento.
- En el cuadro Tipo de unidad, selecciona el tipo de unidad que detalla el tipo de unidad al que deseas lanzar la versión.
En la lista 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 prueba). 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).
- Progresiva (gradual): Lanza actualizaciones de forma gradual en lotes porcentuales de forma exponencial en varias ubicaciones (con tiempos de prueba).
- Progresiva (una sola ubicación): Actualiza las unidades en lotes porcentuales 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 mediante la Google Cloud consola, 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 el 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 lanzarse de forma simultánea (ideal para entornos de desarrollo y situaciones de emergencia).Google.Cloud.Progressive.Gradual.v1: Lanza actualizaciones de forma gradual en lotes porcentuales de forma exponencial en varias ubicaciones (con tiempos de prueba).Google.Cloud.Progressive.SingleLocation.v1: Actualiza las unidades en lotes porcentuales 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.
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, App Lifecycle Manager intentará actualizar todas las unidades, independientemente de la cantidad de errores que se produzcan.UNIT_FILTER: CEL cadena de filtro con formato que se usa en 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 del lanzamiento.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 especifica la estrategia de actualización del tipo de unidad.UPDATE_UNIT_KIND_STRATEGY_ON_START: Actualiza la estrategia del tipo de unidad al inicio del lanzamiento.UPDATE_UNIT_KIND_STRATEGY_NEVER: Nunca actualices la estrategia del tipo de unidad.
Para obtener más información, consulta la referencia de Google Cloud CLI
RolloutKind.
Función de porcentaje de error aceptable
App Lifecycle Manager incluye una función de porcentaje de error aceptable (ErrorBudget en RolloutKind) como protección. Esta puede pausar automáticamente un lanzamiento si la cantidad o el porcentaje de errores de actualización de unidades (durante la aplicación de la 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, App Lifecycle Manager actualiza tus unidades según la estrategia definida en el tipo de unidad.
Console
Ve a App Lifecycle Manager.
Haz clic en Lanzamientos.
En la página Lista de lanzamientos, 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 la versión a las unidades especificadas.
- En el cuadro Versión, 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 del lanzamiento global, puedes supervisar los detalles del lanzamiento, incluido el estado, el progreso (por cantidad de unidades) y las fallas del lanzamiento.
gcloud
Para crear un lanzamiento mediante la consola, haz lo siguiente: Google Cloud
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 el lanzamiento.
Para obtener más información, consulta la referencia de Google Cloud CLI de
Rollout.
¿Qué sigue?
- Para obtener más información sobre App Lifecycle Manager, consulta Descripción general de App Lifecycle Manager.
- Para probar un instructivo, consulta Implementa una VM con App Lifecycle Manager.
- Para comprender cómo se usan las cuentas de servicio y cómo otorgar permisos detallados para estas cuentas, consulta Cuentas de servicio de App Lifecycle Manager.