Guía de implementación de expendición de suscripciones

Azure

En este artículo se proporcionan instrucciones para la implementación de la automatización de la expendición de suscripciones. La venta de suscripciones estandariza el proceso de solicitud, implementación y gobernanza de suscripciones, de modo que los equipos de la aplicación pueden implementar sus cargas de trabajo con mayor rapidez.

Diagram showing how the subscriptions vending fits in an organization.Figura 1. Implementación de la expendición de suscripciones en un entorno de Azure de ejemplo.

GitHub icon Hemos creado los módulos Bicep y Terraform de expendición de suscripciones que debe usar como punto de partida. Debe modificar las plantillas para adaptarlas a sus necesidades de implementación. Para obtener más información sobre el proceso de venta de suscripciones, consulte Introducción a la venta de suscripciones.

Architecture

Debe diseñar la automatización de la expendición de suscripciones para realizar tres tareas principales. La automatización de la venta de suscripciones debe (1) recopilar datos de solicitud de suscripción, (2) iniciar la automatización de la plataforma y (3) crear la suscripción mediante la infraestructura como código. Hay varios enfoques para implementar la automatización de venta de suscripciones para llevar a cabo estas tres tareas. En la implementación de ejemplo (figura 2) se muestra un enfoque que usa Gitflow. El diseño de Gitflow está en línea con el enfoque declarativo que usan muchos equipos de plataforma para administrar la plataforma.

Diagram showing the example implementation of subscription vending automation.Figura 2. Implementación de ejemplo de automatización de la expendición de suscripciones.

En la implementación de ejemplo (figura 2), la herramienta de recopilación de datos recopila los datos de la solicitud de suscripción. Cuando la solicitud de suscripción recibe la aprobación, inicia la automatización de la plataforma. La automatización de la plataforma consta de la canalización de solicitudes, el control de código fuente y la canalización de implementaciones. La canalización de solicitudes crea un archivo de parámetros de suscripción JSON o YAML con los datos de la herramienta de recopilación de datos. La canalización de solicitudes también crea una nueva rama, confirma el archivo de parámetros de suscripción y abre una solicitud de incorporación de cambios en el control de código fuente. La nueva rama se combina con la rama principal en el control de código fuente. La combinación desencadena la canalización de implementación para crear la suscripción con los módulos de la infraestructura como código.

La implementación debe colocar la suscripción en el grupo de administración correcto en función de los requisitos de gobernanza (consulte la figura 1). La implementación crea un presupuesto de suscripción preliminar como base para la administración de costos. En función de las necesidades de la carga de trabajo, la implementación podría crear una red virtual vacía y configurar el emparejamiento en un centro de conectividad regional. El equipo de la plataforma debe entregar la suscripción al equipo de la aplicación después de la creación y configuración. El equipo de la aplicación debe actualizar el presupuesto de la suscripción y crear los recursos de la carga de trabajo.

Recopilación de datos

El objetivo de recopilar datos es recibir la aprobación empresarial y definir los valores del archivo de parámetros de suscripción JSON o YAML. Debe usar una herramienta de recopilación de datos para recopilar los datos necesarios cuando el equipo de la aplicación envía la solicitud de suscripción. La herramienta de recopilación de datos debe interactuar con otros sistemas del flujo de trabajo de expendición de suscripciones para iniciar la automatización de la plataforma.

Use una herramienta de recopilación de datos. Puede usar una herramienta de administración de servicios de TI (ITSM) para recopilar los datos o crear un portal de clientes con una herramienta con poco o nada de código, como Microsoft PowerApps. La herramienta de recopilación de datos debe proporcionar la lógica de negocios para aprobar o denegar la solicitud de suscripción.

Recopile los datos necesarios. Debe recopilar datos suficientes para definir los valores del parámetro de suscripción JSON/YAML para poder automatizar la implementación. Los valores específicos que recopile dependen de sus necesidades. Debe capturar el autorizador de solicitudes, el centro de coste y los requisitos de red (conectividad a Internet o local). Puede resultar útil pedir al equipo de aplicaciones los componentes de la carga de trabajo previstos (plataforma de aplicaciones, requisitos de datos), confidencialidad de datos y número de entornos (desarrollo, prueba, preproducción, producción).

Valide los datos. Debe validar los datos durante el proceso de recopilación de datos. Es más difícil solucionar los problemas más adelante en las fases de automatización de la plataforma.

Cree una solicitud a la que se pueda realizar un seguimiento. La herramienta de recopilación de datos debe crear una solicitud registrada y de la que se pueda realizar un seguimiento para una nueva suscripción (por ejemplo, un vale en una herramienta ITSM). La solicitud debe contener todos los datos necesarios para cumplir los requisitos de esa suscripción. Debe enlazar la lógica de negocios y el seguimiento de autorizaciones a la solicitud.

Interfaz con otros sistemas internos. En los casos en que sea necesario, la herramienta de recopilación de datos debe interactuar con otras herramientas o sistemas de su organización. El objetivo es enriquecer la solicitud con datos de otros sistemas. Es posible que necesite datos de identidad, finanzas, seguridad y redes para ejecutar la automatización. Por ejemplo, la automatización podría interactuar con una herramienta de administración de direcciones IP (IPAM) para reservar el espacio de direcciones IP correcto.

Crear un desencadenador. Cuando la solicitud de suscripción recibe aprobación, la transferencia de datos debe desencadenar la automatización de la plataforma. Es mejor crear una notificación push con los datos necesarios de la herramienta de recopilación de datos. Es posible que necesite una capa de middleware, como Azure Functions o Azure Logic Apps, para iniciar el proceso.

Inicio de la automatización de la plataforma

La notificación y los datos de la herramienta de recopilación de datos deben desencadenar la automatización de la plataforma. El objetivo de la automatización de la plataforma es crear un archivo de parámetros de suscripción JSON o YAML, combinar el archivo en la rama principal e implementarlo con los módulos de infraestructura como código para crear la suscripción. El equipo de la plataforma debe poseer y mantener la automatización de la plataforma. La automatización de la plataforma en la implementación de ejemplo consta de la canalización de solicitudes, el control de código fuente y la canalización de implementación (consulte la figura 2).

Use archivos JSON o YAML. Debe usar archivos de datos estructurados (JSON o YAML) para almacenar los datos para crear una suscripción. Debe documentar la estructura del archivo y hacer que sea extensible para admitir necesidades futuras. Por ejemplo, el siguiente fragmento de código JSON define los valores de parámetro de suscripción para uno de los módulos de Bicep en GitHub.

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "subscriptionDisplayName": {
      "value": "sub-bicep-lz-vending-example-001"
    },
    "subscriptionAliasName": {
      "value": "sub-bicep-lz-vending-example-001"
    },
    "subscriptionBillingScope": {
      "value": "providers/Microsoft.Billing/billingAccounts/1234567/enrollmentAccounts/123456"
    },
  // Insert more parameters here
  }
}

Consulte todo el archivo. Para obtener más ejemplos, consulte ejemplos de Bicep y ejemplos de Terraform.

Use un archivo por solicitud de suscripción. La suscripción es la unidad de implementación en el proceso de expendición de suscripciones, por lo que cada solicitud de suscripción debe tener un archivo de parámetros de suscripción dedicado.

Use un sistema de solicitud de incorporación de cambios. El proceso de Gitflow que crea el archivo de parámetros de suscripción debe automatizar los pasos siguientes:

  1. Cree una rama nueva para cada solicitud de suscripción.
  2. Use los datos recopilados para crear un único archivo de parámetros de suscripción YAML o JSON para la nueva suscripción de la rama.
  3. Cree una solicitud de incorporación de cambios desde la rama en main.
  4. Actualice la herramienta de recopilación de datos con un cambio de estado y haga referencia a esta solicitud de incorporación de cambios.

La canalización de solicitudes de la implementación de ejemplo ejecuta estos pasos (consulte la figura 2). También puede usar una solución basada en código hospedada en Azure si el flujo de trabajo es complejo.

Valide el archivo de parámetros de la suscripción. La solicitud de incorporación de cambios debe desencadenar un proceso de linting para validar los datos de la solicitud. El objetivo es garantizar que la implementación tenga éxito. Debe validar el archivo de parámetros de suscripción YAML/JSON. También puede comprobar que el intervalo de direcciones IP sigue estando disponible. También puede agregar una puerta de revisión manual con intervención humana. Podrían realizar la revisión final y realizar cambios en el archivo de parámetros de suscripción. La salida debe ser un archivo de parámetros de suscripción JSON/YAML con todos los datos para crear una suscripción.

Desencadene la canalización de implementación. Si la solicitud de incorporación de cambios se combina en la rama main, la combinación debe desencadenar la canalización de implementación.

una suscripción

La última tarea de la automatización del proceso de expendición de suscripciones es crear y configurar la nueva suscripción. La implementación de ejemplo usa la canalización de implementación para implementar el módulo de infraestructura como código con el archivo de parámetros de suscripción JSON/YAML (consulte la figura 2).

Usar la infraestructura como código. La implementación debe usar la infraestructura como código para crear la suscripción. El equipo de la plataforma debe crear y mantener estas plantillas para garantizar una gobernanza adecuada. Debe usar los módulos Bicep y Terraform de expendición de suscripciones y modificarlos para adaptarlos a sus necesidades de implementación.

Use una canalización de implementación. La canalización de implementación organiza la creación y configuración de la nueva suscripción. La canalización debe ejecutar las siguientes tareas:

Categoría de la tarea: Tarea de canalización
Identidad • Cree o actualice los recursos de Microsoft Entra para representar la propiedad de la suscripción.
• Configuración de identidades de carga de trabajo con privilegios para las implementaciones del equipo de cargas de trabajo.
Gobernanza • Colocación en una jerarquía de grupos de administración.
• Asignación del propietario de la suscripción.
• Configuración de los controles de acceso basado en rol (RBAC) en el nivel de suscripción para los grupos de seguridad configurados.
• Asignación de una instancia de Azure Policy en el nivel de suscripción.
• Configuración de la inscripción de Microsoft Defender for Cloud.
Redes • Implementación de redes virtuales.
• Configuración del emparejamiento de red virtual con recursos de plataforma (centro de conectividad regional).
Presupuestos • Creación de presupuestos para los propietarios de la suscripción mediante los datos recopilados.
Generación de informes • Actualización de los sistemas externos, como IPAM, para confirmar reservas de IP.
• Actualización de la solicitud de la herramienta de recopilación de datos con el nombre final de la suscripción y el identificador único global (GUID).
• Notificación al equipo de la aplicación que la suscripción está lista.

Necesita un contrato comercial para crear una suscripción mediante programación. Si no tiene un contrato comercial, debe introducir un proceso manual para crear la suscripción, pero aún puede automatizar todos los demás aspectos de la configuración de la suscripción.

Establecimiento de una identidad de carga de trabajo. La canalización de la implementación necesita permiso para realizar estas operaciones con todos los sistemas con los que interactúa. Debe usar la identidad administrada o OpenID Connect (OIDC) para autenticarse en Azure.

Posterior a la implementación

La automatización de la expendición de suscripciones finaliza con la creación y configuración de la suscripción. El equipo de la plataforma debe entregar la nueva suscripción al equipo de la aplicación después de crearla. El equipo de la aplicación debe actualizar el presupuesto de la suscripción, crear los recursos de la carga de trabajo e implementar la carga de trabajo. El equipo de la plataforma controla la gobernanza de la suscripción y administra los cambios en la gobernanza de suscripciones a lo largo del tiempo.

Aplicación de la administración de costos. Los presupuestos de suscripción proporcionan notificaciones críticas para la administración de costos. La implementación debe crear un presupuesto de suscripción preliminar basado en los datos de la solicitud de suscripción. El equipo de la aplicación recibe la suscripción. Deben actualizar el presupuesto para que cubra las necesidades de la carga de trabajo. Para más información, consulte:

Administración de la gobernanza de suscripción. Debe actualizar la suscripción a medida que cambian los requisitos de gobernanza de la carga de trabajo. Por ejemplo, es posible que tenga que mover una suscripción a otro grupo de administración. Debe automatizar algunas de estas operaciones rutinarias. Para más información, consulte:

Pasos siguientes

La expendición de suscripciones simplifica y estandariza el proceso de creación de suscripciones y lo coloca bajo la gobernanza de la organización. Debe implementar la automatización de la expendición de suscripciones para ayudar a los equipos de aplicaciones a acceder a las zonas de aterrizaje de aplicaciones y a incorporar cargas de trabajo más rápidamente. Para más información, consulte: