Procedimientos recomendados: directivas de proceso

Advertencia

Este artículo ha sido archivado y puede que ya no refleje el estado actual del producto. Para obtener información sobre las directivas de proceso, consulte Crear y administrar directivas de proceso.

Las directivas de proceso de Azure Databricks proporcionan control a los administradores sobre la creación de recursos de proceso en un área de trabajo de Azure Databricks. Un uso efectivo de las directivas de proceso permite a los administradores:

  • Aplicar configuraciones de proceso estandarizadas.
  • Evitar el uso excesivo de recursos y controlar el gasto.
  • Garantizar un contracargo preciso mediante el etiquetado correcto de los recursos de proceso.
  • Facilitar el análisis y el procesamiento al proporcionar a los usuarios configuraciones de proceso preestablecidas, destinadas a cargas de trabajo específicas.

En combinación con procesos eficaces de incorporación, aprobación y contracargo, las directivas de proceso pueden ser un componente fundamental en la gobernanza de la plataforma Azure Databricks. En esta guía se presentan sugerencias y procedimientos recomendados que le ayudarán a crear un plan de éxito para integrar las directivas de proceso en el marco de gobernanza.

Dado que cada gobernanza es única para los requisitos y la infraestructura de gobernanza existente de cada organización, este artículo comienza por abordar las recomendaciones que se aplican de forma común a las directivas de proceso. La última sección del artículo analiza estrategias específicas para abordar los desafíos que puede encontrar en su entorno.

En este artículo se analizan los procedimientos recomendados y las sugerencias siguientes para garantizar la implementación correcta de la gobernanza de proceso:

  • Creación de un plan para introducir las directivas de proceso en fases a fin de ayudar a los usuarios a realizar la transición a un entorno gobernado.
  • Creación de un plan para comunicar los cambios de cada fase de la implementación de directivas de proceso.
  • Identificación de los desafíos de gobernanza de proceso e implementación de estrategias para abordarlos.

Implementación de directivas de proceso

La implementación de directivas de proceso puede presentar un cambio significativo en la experiencia del usuario. Databricks recomienda un enfoque por fases para ayudar a los usuarios a orientarse a través de la transición:

  • Comunique los próximos cambios y proporcione a los usuarios la oportunidad de probar las configuraciones del proceso.
  • Realice una implementación temporal.
  • Introduzca los cambios adicionales de la directiva de forma incremental.
  • Realice una migración total a un entorno completamente controlado.

La implementación por fases permite a los usuarios familiarizarse con las nuevas directivas y evitar interrupciones en las cargas de trabajo existentes. El diagrama siguiente es un ejemplo de este proceso recomendado:

Compute policies rollout plan

En las secciones siguientes se proporciona información más detallada sobre estas fases:

Comunicación y prueba de directivas de proceso

Para comenzar el proceso, comunique a los usuarios los próximos cambios. El plan de comunicación debe incluir lo siguiente:

  • Detalles sobre los próximos cambios.
  • Motivos por los que se producen estos cambios.
  • Acciones requeridas por parte de los usuarios para garantizar la transición correcta de las cargas de trabajo.
  • Cómo proporcionar comentarios sobre los cambios.
  • Escala de tiempo para cada fase de la implementación.
  • Al principio de cada etapa de la implementación por fases, comunique los detalles adicionales relevantes para la fase en cuestión.

El diagrama siguiente proporciona un plan de comunicación de ejemplo para una implementación por fases:

Compute policies communication plan

El plan puede tener distintas fases, en función del entorno y la estrategia de directivas de proceso. Este ejemplo incluye cuatro fases:

  • La fase 1 incluye la comunicación del plan a los usuarios y el inicio de las pruebas. Los usuarios deben tener la oportunidad de probar sus cargas de trabajo actuales y previstas en procesos que cumplan las nuevas directivas. Se debería identificar cualquier problema de las cargas de trabajo existentes y planeadas al principio del proceso.
  • En la fase 2 continúan las pruebas, junto con la implementación de una directiva de etiquetado de proceso.
  • La fase 3 presenta los tipos de proceso; en este caso, se especifican los procesos como si fueran tallas de camiseta, por ejemplo, tipos de procesos pequeños, grandes o extragrandes (S, L o XL).
  • La fase 4 es la implementación final de las directivas de proceso, junto con la documentación de usuario completa.

Los usuarios también deben tener la oportunidad de probar sus cargas de trabajo con las configuraciones de proceso planeadas en la fase inicial. Estas pruebas pueden ayudarles a identificar las cargas de trabajo existentes que tienen problemas para ejecutarse con las directivas propuestas.

Consideraciones para introducir directivas de proceso

Tenga en cuenta las directivas de administración actuales al planear la implementación inicial de las directivas de proceso. En concreto, considere si el entorno desde el que va a migrar prohíbe a los usuarios crear procesos o bien es más abierto.

Entorno restrictivo

En el caso de un entorno en el que los usuarios no tenían permisos para crear procesos, empiece por implementar directivas restrictivas junto con un plan de habilitación para los usuarios. Un plan de habilitación puede ser documentación, talleres o aprendizaje asistido por PC. Proporcionar orientación a los usuarios sobre los procedimientos recomendados para configurar procesos mejorará su capacidad para aprovechar la plataforma al máximo. Las directivas se pueden relajar a medida que los usuarios demuestren su cumplimiento y sus competencias en relación con la plataforma.

Entorno sin restricciones

La aplicación de directivas puede ser más complicada en un entorno sin restricciones. Algunos procesos y casos de uso existentes casi siempre quedarán fuera de las restricciones de la nueva directiva, por lo que es fundamental identificarlos en una fase de prueba o implementación temporal.

Los usuarios que tengan permisos de creación de procesos o acceso a la directiva sin restricciones mantendrán su acceso a esta directiva a lo largo de la implementación temporal para asegurarse de que todas las cargas de trabajo sigan funcionando. Los usuarios deben usar la implementación temporal para probar todas sus cargas de trabajo con las nuevas directivas que se pondrán a su disposición.

Asegúrese de proporcionar a los usuarios un lugar para enviar comentarios sobre las directivas. Trabaje con los usuarios para optimizar las directivas o definir nuevas directivas cuando surjan problemas.

Lanzamiento final

Elimine el acceso a las directivas no restringidas para los usuarios con restricciones cuando se alcance la fecha límite. La implementación de directivas de proceso debería haberse completado en este punto.

Desafíos específicos y estrategias

A continuación, se muestran ejemplos de cómo aplicar directivas de proceso para abordar desafíos específicos. Muchas de estas estrategias pueden emplearse de forma simultánea, pero requerirán la aplicación de cada estrategia en todas las directivas. Por ejemplo, si usa la estrategia de aplicación de etiquetas con la estrategia de tamaño de camiseta, cada directiva de camiseta también necesitará una directiva custom_tag.*.

Aplicación de etiquetas

Desafío

Los usuarios pueden crear procesos libremente y no hay ningún mecanismo que imponga la aplicación de etiquetas requeridas.

Solución

  1. Revoque el permiso de creación de procesos a los usuarios.

  2. Agregue una regla de etiquetas de proceso a cualquier directiva de proceso aplicable. Para agregar la regla de etiquetas de proceso a una directiva, use el atributo custom_tags.<tag-name>. El valor puede ser cualquiera de los recogidos en una directiva ilimitada o puede restringirse por una directiva de los tipos siguientes: fija, lista de permitidos, lista de bloqueos, regex o intervalo. Por ejemplo, para garantizar el contracargo y la atribución de costos correctos, aplique una etiqueta COST_CENTER en cada directiva restringida a una lista de valores de centros de coste permitidos:

    {"custom_tags.COST_CENTER": {"type":"allowlist", "values":["9999", "9921", "9531" ]}}
    

    Cualquier usuario que utilice esta directiva tendrá que rellenar una etiqueta COST_CENTER con 9999, 9921 o 9531 para que se inicie el proceso.

  3. Asigne la directiva a los usuarios que puedan realizar cargos en esos tres centros de coste. Las directivas se pueden asignar por usuario o grupo mediante la interfaz de usuario de la directiva del proceso o de la API de directivas de proceso. El cuerpo de la solicitud de ejemplo siguiente asigna una directiva al departamento de ventas:

    {
      "access_control_list": [
        {
          "user_name": "user@mydomain.com",
          "all_permissions": [
            {
              "permission_level": "CAN_USE"
            }
          ]
        },
        {
          "group_name": "sales",
          "all_permissions": [
            {
              "permission_level": "CAN_USE"
            }
          ]
        }
      ]
    }
    

Usuarios sin experiencia

Desafío

Los usuarios no están familiarizados con el aprovisionamiento de infraestructura de nube o proceso, o bien están desbordados por las opciones de creación de proceso.

Solución

Use directivas de proceso para definir las configuraciones de proceso con talla de "camiseta", por ejemplo, procesos pequeños, medianos o grandes.

  1. Cree una directiva para cada tamaño de camiseta. Las directivas de talla de camiseta indican un tamaño de proceso relativo para los usuarios y pueden ser plantillas flexibles o configuraciones de opción cero. A menudo, las directivas de opción cero o de tipo bajo tendrán reglas de directiva fijas y ocultas. En el ejemplo siguiente se define una directiva con un valor fijo de DBR 7.3 para spark_version. Si establece la marca hidden en true, se asegurará de que esta opción no sea visible para los usuarios.

    {"spark_version": { "type": "fixed", "value": "auto:latest-ml", "hidden": true }}
    

    Al definir plantillas flexibles, puede usar directivas de intervalo, lista de bloqueados, regex e ilimitada para establecer límites superiores, campos no opcionales y elementos de directiva con restricción parcial. En el ejemplo siguiente se define una directiva que permite el escalado automático de los nodos, hasta un máximo de 25. Puede usar esta definición para establecer los límites superiores en cada tamaño de camiseta, a la vez que proporciona cierta flexibilidad. Para ver más detalles sobre un enfoque de plantilla de proceso, consulte Uso excesivo de recursos.

    {"autoscale.max_workers": { "type": "range", "maxValue": "25", "defaultValue": 5}}
    
  2. Asigne la directiva a los usuarios a los que se les debe permitir crear procesos con tallas de camiseta. Las directivas se pueden asignar a nivel de usuario o de grupo a través de la interfaz de usuario de la directiva de proceso o de la API de permisos de directiva de proceso. Por ejemplo, para asignar esta directiva a todos los usuarios a través de la interfaz de usuario:

    1. Vaya a la directiva y seleccione Editar.

    2. Seleccione la pestaña Permisos.

    3. Seleccione la opción de todos los usuarios bajo Grupos en el menú desplegable.

      Assign policy to all users

  3. Revoque el acceso a la directiva sin restricciones para los grupos que solo deben usar estas nuevas directivas. Una vez que las directivas de proceso estén en uso, tener acceso al permiso de "creación de procesos" proporciona a los usuarios acceso a la directiva sin restricciones. Es importante revocar este permiso para los usuarios que no deban tenerlo.

    Para revocar los permisos de creación de procesos, consulte Configuración del permiso de creación de procesos.

Directivas específicas de casos de uso

Desafío

Algunos análisis o cargas de trabajo son incompatibles con las directivas existentes, o bien los usuarios no conocen la configuración de proceso correcta para determinados tipos de cargas de trabajo.

Solución

Si encuentra cargas de trabajo que no funcionen bien con las directivas existentes, a menudo es mejor crear nuevas directivas destinadas específicamente a esas cargas de trabajo en lugar de expandir las directivas existentes.

Para que los usuarios puedan crear procesos con estas directivas, puede ayudar a crear directivas ajustadas a casos de uso específicos. Asigne nombres descriptivos a las directivas para ayudar a los usuarios a identificarlas. Por ejemplo, si las cargas de trabajo van a consultar un origen de datos que admite la delegación de predicados, se recomienda crear una directiva específica que aplique el escalado automático con un mínimo de trabajo reducido o cero. Esta directiva garantizará que los costos del proveedor de nube y Azure Databricks no aumenten innecesariamente mientras se espera a que el origen de datos calcule los componentes delegados de la consulta.

  1. Cree una directiva que aplique procedimientos recomendados específicos del caso de uso. En este ejemplo, se define una directiva que tiene un valor fijo de 0 para el número mínimo de trabajos. Esta directiva también impone que el proceso se escale automáticamente, lo que satisface el procedimiento recomendado del ejemplo de delegación de predicado.

    {"autoscale.min_workers": { "type": "fixed", "value": "0", "hidden": false }}
    
  2. Asigne la directiva a los usuarios que necesiten compilar procesos para estos casos de uso. Las directivas se pueden asignar por usuario o grupo mediante la interfaz de usuario de la directiva de proceso o de la API de permisos. Por ejemplo, para asignar esta directiva a un grupo de científicos de datos mediante la interfaz de usuario:

    1. Vaya a la directiva y seleccione Editar.

    2. Seleccione la pestaña Permisos.

    3. Para asignar una directiva a un equipo específico, seleccione el nombre del equipo en la lista desplegable Seleccionar usuario o grupo.

      Assign policy to a group

Uso excesivo de recursos

Desafío

Los usuarios crean procesos innecesariamente grandes y consumen demasiados recursos que, además, son caros. Esto suele deberse a lo siguiente:

  • No se puede activar el escalado automático.
  • Uso incorrecto de las ventanas de terminación automática.
  • Número mínimo elevado de nodos de trabajo.
  • Tipos de instancia caros.

Solución

El emparejamiento de las directivas de proceso con un proceso de aprobación interno permite obtener control sobre los recursos y, a la vez, proporcionar acceso a recursos de proceso grandes cuando sea necesario.

  1. Establezca un proceso de revisión para conceder acceso a directivas más grandes o más flexibles. El proceso de revisión debe tener un formulario de entrada que recopile información compatible con la necesidad de configuraciones de proceso más grandes o más flexibles. El equipo propietario de la plataforma debe evaluar esta información para decidir cómo respaldar los requisitos de la carga de trabajo. En el diagrama siguiente se muestra un proceso de aprobación de ejemplo en el que se usa el tamaño de camiseta:

    Policies sizing process

  2. Cree directivas más flexibles, con menos restricciones y centradas en controlar elementos de gobernanza como etiquetas. Este es un ejemplo de directiva flexible:

{
  "autoscale.min_workers": {
    "type": "range",
    "maxValue": 20,
    "defaultValue": 2
  },
  "autoscale.max_workers": {
    "type": "range",
    "maxValue": 100,
    "defaultValue": 8
  },
  "autotermination_minutes": {
    "type": "range",
    "maxValue": 120,
    "defaultValue": 60
  },
  "node_type_id": {
    "type": "blocklist",
    "values": ["Standard_E16s_v3", "Standard_E64as_v4", "Standard_E96as_v4", "Standard_E48as_v4"],
    "defaultValue": "Standard_L8s"
  },
  "driver_node_type_id": {
    "type": "blocklist",
    "values": ["Standard_E16s_v3", "Standard_E64as_v4", "Standard_E96as_v4", "Standard_E48as_v4"],
    "defaultValue": "Standard_L8s_v2"
  },
  "spark_version": {
    "type": "fixed",
    "value": "auto:latest-ml",
    "hidden": true
  },
  "enable_elastic_disk": {
    "type": "fixed",
    "value": true,
    "hidden": true
  },
  "custom_tags.team": {
    "type": "fixed",
    "value": "product"
  }
}
  1. Documente el proceso de actualización y aprobación y compártalo con los usuarios. También es útil publicar instrucciones sobre cómo identificar los tipos de cargas de trabajo que pueden requerir más flexibilidad o procesos más grandes.

  2. Una vez que se apruebe un usuario, asígnele la directiva. Las directivas se pueden asignar por usuario o grupo mediante la interfaz de usuario de la directiva o mediante el envío de una solicitud a la API de permisos:

    {
        "access_control_list": {
          "user_name": "users_email@yourdomain.com",
          "permission_level": "CAN_USE"
        }
    }
    

Más información

Para obtener más información sobre las directivas de proceso en Azure Databricks, consulte Administración y creación de directivas de proceso y la publicación sobre cómo permitir la creación de procesos simples con control de administración total mediante directivas de clústeres en nuestro blog sobre directivas de proceso.