Antipatrón: gestionar recursos sin usar la gestión del control de código fuente

Estás consultando la documentación de Apigee y Apigee Hybrid.
Consulta la documentación de Apigee Edge.

Apigee proporciona muchos tipos de recursos diferentes y cada uno de ellos tiene un propósito distinto. Hay determinados recursos que solo se pueden configurar (es decir, crear, actualizar o eliminar) a través de la interfaz de usuario de Apigee, las APIs de Apigee o las herramientas que usan APIs, y solo pueden hacerlo los usuarios que tengan los roles y permisos necesarios. Por ejemplo, solo los administradores de la organización que pertenezcan a una organización específica pueden configurar estos recursos. Esto significa que los usuarios finales no pueden configurar estos recursos a través de portales para desarrolladores ni de ningún otro modo. Estos recursos incluyen:

  • Proxies de APIs
  • Flujos compartidos
  • Productos de API
  • Cachés
  • KVMs
  • Almacenes de claves y de confianza
  • Hosts virtuales
  • Servidores de destino
  • Archivos de recursos

Aunque estos recursos tienen acceso restringido, si los usuarios autorizados hacen alguna modificación, los datos históricos se sobrescribirán con los nuevos datos. Esto se debe a que estos recursos solo se almacenan en Apigee según su estado actual. Las principales excepciones a esta regla son los proxies de API y los flujos compartidos.

Proxies de API y flujos compartidos bajo control de versiones

Los proxies de API y los flujos compartidos se gestionan (es decir, se crean, actualizan e implementan) mediante revisiones. Las revisiones se numeran secuencialmente, lo que te permite añadir nuevos cambios y guardarlos como una nueva revisión o deshacer un cambio implementando una revisión anterior del proxy de API o del flujo compartido. En cualquier momento, solo puede haber una revisión de un proxy de API o un flujo compartido desplegado en un entorno, a menos que las revisiones tengan una ruta base diferente.

Aunque los proxies de API y los flujos compartidos se gestionan mediante revisiones, si se hacen modificaciones en una revisión, no se pueden deshacer, ya que los cambios antiguos se sobrescriben.

Auditorías e historial

Apigee ofrece la función Auditorías, que puede ser útil en situaciones de solución de problemas. Estas funciones te permiten ver información como quién ha realizado operaciones específicas (crear, leer, actualizar, eliminar, implementar y deshacer la implementación) y cuándo se han realizado en los recursos de Apigee. Sin embargo, si se realizan operaciones de actualización o eliminación en alguno de los recursos de Apigee, las auditorías no podrán proporcionarte los datos antiguos.

Antipatrón

Gestionar los recursos de Apigee (enumerados anteriormente) directamente a través de la interfaz de usuario o las APIs de Apigee sin usar un sistema de control de código fuente

Existe la creencia errónea de que Apigee podrá restaurar los recursos a su estado anterior después de que se modifiquen o eliminen. Sin embargo, Apigee no restaura los recursos a su estado anterior. Por lo tanto, es responsabilidad del usuario asegurarse de que todos los datos relacionados con los recursos de Apigee se gestionen mediante la gestión de control de versiones, de modo que los datos antiguos se puedan restaurar rápidamente en caso de eliminación accidental o en situaciones en las que sea necesario revertir algún cambio. Esto es especialmente importante en los entornos de producción en los que estos datos son necesarios para el tráfico en tiempo de ejecución.

Vamos a explicarlo con algunos ejemplos y el tipo de impacto que puede producirse si los datos no se gestionan a través de un sistema de control de versiones y se modifican o eliminan de forma consciente o inconsciente:

Ejemplo 1: Eliminación o modificación de un proxy de API

Cuando se elimina un proxy de API o se implementa un cambio en una revisión, el código anterior no se puede recuperar. Si el proxy de API contiene código Java, JavaScript o Python que no se gestiona en un sistema de gestión de control de código fuente (SCM) fuera de Apigee, se podría perder una gran cantidad de trabajo y esfuerzo de desarrollo.

Ejemplo 2: Determinación de proxies de API mediante hosts virtuales específicos

Un certificado de un host virtual va a caducar y es necesario actualizar ese host virtual. Puede ser difícil identificar qué proxies de API usan ese host virtual para hacer pruebas si hay muchos proxies de API. Si los proxies de API se gestionan en un sistema SCM fuera de Apigee, será fácil buscar en el repositorio.

Ejemplo 3: Eliminación de un almacén de claves o de confianza

Si se elimina un almacén de claves o de confianza que utiliza una configuración de servidor de destino o de host virtual, no se podrá restaurar a menos que los detalles de configuración del almacén de claves o de confianza, incluidos los certificados o las claves privadas, se almacenen en el control de versiones.

Impacto

  • Si se elimina alguno de los recursos de Apigee, no se podrá recuperar el recurso ni su contenido de Apigee.
  • Las solicitudes a la API pueden fallar con errores inesperados que provoquen una interrupción hasta que el recurso se restaure a su estado anterior.
  • Es difícil buscar interdependencias entre proxies de API y otros recursos en Apigee.

Práctica recomendada

  • Usa cualquier SCM estándar junto con un flujo de integración continua y despliegue continuo (CICD) para gestionar proxies de API y flujos compartidos.
  • Utilice cualquier SCM estándar para gestionar los demás recursos de Apigee, incluidos los productos de API, las cachés, los KVMs, los servidores de destino, los hosts virtuales y los almacenes de claves.
    • Si hay recursos de Apigee, usa las APIs de Apigee para obtener los detalles de configuración de estos recursos como carga útil JSON o XML y guárdalos en la gestión de control de versiones.
    • Gestiona las nuevas actualizaciones de estos recursos en la gestión del control de código fuente.
    • Si es necesario crear recursos de Apigee o actualizar los que ya hay, usa la carga útil JSON o XML adecuada almacenada en la gestión de control de origen y actualiza la configuración en Apigee mediante APIs.

* Los KVMs cifrados no se pueden exportar como texto sin formato desde la API. Es responsabilidad del usuario llevar un registro de los valores que se introducen en los KVMs cifrados.

Más información