Prácticas recomendadas

Utilice el siguiente conjunto de directrices recomendadas al suministrar y gestionar las instancias sin servidor y al ejecutar aplicaciones Spark.

Mejores prácticas al utilizar instancias sin servidor, incluidas descripciones detalladas y enlaces de referencia
Práctica recomendada Descripción Enlace de referencia
Utilice instancias de servicio de IBM Analytics Engine independientes para los entornos de desarrollo y producción. Esta es una buena práctica general. Al crear instancias IBM Analytics Engine independientes para distintos entornos, puede probar cualquier configuración y cambios de código antes de aplicarlos en la instancia de producción. N/D
Actualización a la última versión de Spark A medida que se publican las versiones de Spark de código abierto, están disponibles en IBM Analytics Engine después de un intervalo de tiempo necesario para las pruebas internas. Tenga cuidado con el anuncio de una nueva versión de Spark en la sección Notas del release y actualice el tiempo de ejecución de la instancia para mover las aplicaciones al tiempo de ejecución de Spark más reciente. Los tiempos de ejecución más antiguos están en desuso y finalmente se eliminan a medida que se publican las versiones más recientes. Asegúrese de probar las aplicaciones en el nuevo tiempo de ejecución antes de realizar cambios en las instancias de producción.
Otorgar acceso basado en roles Debe otorgar acceso basado en roles a todos los usuarios en las instancias de IBM Analytics Engine en función de sus requisitos. Por ejemplo, solo el equipo de automatización debe tener permisos para enviar aplicaciones porque tiene acceso a secretos y el equipo de DevOps sólo debe poder ver la lista de todas las aplicaciones y sus estados.
Elegir la configuración adecuada de IBM Cloud Object Storage
  • Recuperación ante desastres (DR) Resiliencia: Debe utilizar la IBM Cloud Object Storage Cross Regional resiliency opción que realiza copias de seguridad de sus datos a través de varias ciudades diferentes en una región. Por el contrario, la opción de resiliencia regional realiza una copia de seguridad de los datos en un único centro de datos.
  • Cifrado: IBM Cloud Object Storage se suministra con el cifrado incorporado predeterminado. También puede configurar Object Storage para trabajar con el servicio Key Protect de BYOK.
  • Credenciales de servicio: de forma predeterminada, IBM Cloud Object Storage utiliza credenciales de estilo IAM. Si desea trabajar con credenciales de estilo AWS, debe utilizar la opción "Incluir credencial HMAC" tal como se describe en Credenciales de servicio.
  • Puntos finales directos para IBM Cloud Object Storage: utilice siempre puntos finales directos para la conectividad con la instancia de IBM Cloud Object Storage. Esto se aplica a la instancia de inicio de IBM Cloud Object Storage así como a los puntos finales utilizados desde las aplicaciones (ya sea el código o lo que pase como parámetros en las configuraciones a nivel de instancia o a nivel de aplicación). Los puntos finales directos ofrecen mejor rendimiento que los públicos y no incurren en gastos por ancho de banda saliente o entrante.
Utilizar puntos finales privados para el almacén de metadatos Hive externo Si utiliza Spark SQL y desea utilizar un almacén de metadatos externo como, por ejemplo, utilizar IBM Cloud Databases for PostgreSQL como almacén de metadatos Hive, debe utilizar el punto final privado para la conexión de base de datos para obtener un mejor rendimiento y un ahorro de costes.
Ejecución de aplicaciones con sobrecompromiso de recursos Hay una cuota asociada con cada instancia de Analytics Engine Serverless. Cuando se envían solicitudes en una instancia, se asignan recursos de la cuota de instancia. Si una aplicación solicita recursos más allá de la cuota disponible, la aplicación no se iniciará o se ejecutará con menos de los recursos solicitados, lo que puede hacer que la aplicación se ejecute más lento de lo esperado o, en algunos casos, que la aplicación falle. Siempre debe supervisar el consumo de recursos actual en una instancia para asegurarse de que las aplicaciones se ejecutan cómodamente dentro de los límites determinados. Puede ajustar los límites a través de una incidencia de soporte si es necesario.
Asignación estática de recursos frente al escalado automático Al enviar aplicaciones, puede especificar el número de ejecutores por adelantado (asignación estática) o utilizar la opción de escalado automático (asignación dinámica). Antes de decidir si desea utilizar la asignación estática o el escalado automático, es posible que desee ejecutar algunas pruebas de evaluación comparativa variando diferentes conjuntos de datos con el escalado estático y el escalado automático para encontrar la configuración correcta. Consideraciones generales:
-Si conoce el número de recursos (núcleos y memoria) que necesita la aplicación y no varía en las distintas etapas de la ejecución de la aplicación, se recomienda asignar recursos estáticos para obtener un mejor rendimiento.
-Si desea utilizar un recurso optimizado, puede optar por el escalado automático de los ejecutores donde se asignan los ejecutores en función de la demanda real de la aplicación. Tenga en cuenta que puede haber un ligero retardo asociado al utilizar el escalado automático en las aplicaciones.
Habilitar y ajustar el registro de reenvío -Habilitar el registro de reenvío para la instancia de servicio para ayudar a resolver problemas, mostrar el progreso e imprimir o mostrar las salidas de las aplicaciones. Tenga en cuenta que el reenvío de registros incurre en un coste basado en la cantidad de registros reenviados o retenidos en la instancia de IBM Log Analysis. En función de su caso de uso y necesidad, debe decidir los valores óptimos.
-Cuando habilita el reenvío de registros utilizando la API predeterminada, sólo se habilitan los registros del controlador. Si también necesita registros de ejecutor, por ejemplo, si hay errores que sólo vería en ejecutores, debe personalizar el registro para habilitar también el registro de ejecutor. Los registros del ejecutor pueden llegar a ser muy grandes, por lo que debe equilibrar las opciones para optimizar la cantidad de registros que se reenvían a la instancia de registro frente a la información que se obtiene en los registros para la resolución de problemas.
-Siga las prácticas recomendadas de IBM Log Analysis al elegir las técnicas de configuración y búsqueda correctas. Por ejemplo, es posible que desee configurar el plan de instancia de IBM Log Analysis para una búsqueda de 7 días con el archivado de registros en IBM Cloud Object Storage para ahorrar en costes. Consulte también la documentación de IBM Log Analysis para obtener técnicas sobre la búsqueda de registros de su interés basándose en palabras clave, punto en el tiempo, etc.
Personalizar la instancia de servicio -Es posible que tenga que personalizar la instancia de servicio para incorporar paquetes Python o conda que no estén preinstalados, o incorporar algunos archivos (certificados o archivos de configuración) que se van a poner a disposición de las aplicaciones Spark. En función de sus necesidades, personalice la instancia utilizando conjuntos de bibliotecas y utilice estos conjuntos de bibliotecas al enviar aplicaciones.
-El tamaño del conjunto de bibliotecas tiene relación con el tiempo de inicio de la aplicación y el tiempo de inicio del ejecutor (cuando se escalan automáticamente las aplicaciones). Tenga en cuenta también que hay un límite superior para el tamaño de un conjunto de bibliotecas, es decir, 2 GB. Por lo tanto, si distintas aplicaciones necesitan conjuntos de bibliotecas diferentes, es mejor que utilice conjuntos de bibliotecas separados, para que se puedan especificar individualmente en el momento en que se envía la aplicación.
-Utilice la personalización sólo para incorporar archivos que no puedan ser traídos por los parámetros de detalles de la aplicación. Consulte Parámetros para enviar aplicaciones Spark. Debe utilizar las opciones de parámetro equivalentes de spark-submit estándar como, por ejemplo, las opciones files, jars, packages y pyFiles si se ajusta a su caso de uso. Solo si necesita archivos que no se ajustan a ninguna de estas categorías, por ejemplo, un certificado autofirmado, un archivo de configuración JAAS o un archivo .so, debe utilizar la opción "personalización para descarga de archivos".
Aplicar filtros al recuperar la lista de aplicaciones Cuando necesite recuperar la lista de aplicaciones en la interfaz de usuario o utilizando la API o la CLI, es mejor aplicar los filtros adecuados y recuperar el conjunto que necesita.
Utilizar otros servicios o herramientas para las funciones de soporte Aparte de utilizar una instancia de IBM Log Analysis y IBM Cloud Object Storage y en función de su caso de uso, es posible que desee utilizar otras herramientas y servicios de soporte. Por ejemplo, puede utilizar Apache Airflow (gestionado por el usuario) para orquestar, planificar y automatizar las aplicaciones. También puede utilizar IBM Secrets Manager para almacenar los secretos necesarios para las aplicaciones y utilizar los scripts de automatización para leer los secretos de Secrets Manager antes de enviar las aplicaciones. También puede ser creativo con los argumentos de la aplicación, pasando una señal necesaria para leer los secretos necesarios desde Secrets Manager directamente desde la aplicación.
Utilizar instancias en regiones alternativas para la copia de seguridad y la recuperación tras desastre Actualmente, se pueden crear instancias sin servidor de IBM Analytics Engine en dos regiones, es decir, Dallas (us-south) y Frankfurt (eu-de). Aunque es aconsejable crear las instancias en la misma región donde se encuentran los datos, siempre es útil crear una instancia de copia de seguridad en una región alternativa con el mismo conjunto de configuraciones que la instancia primaria, en caso de que la instancia primaria deje de estar disponible o no se pueda utilizar. Las automatizaciones deben habilitar la conmutación de envíos de aplicaciones entre las dos regiones si es necesario. N/D
Utilizar grupos separados y credenciales de servicio para archivos de aplicación, archivos de datos e instancia de inicio Utilice el principio de "separación de preocupaciones" para distinguir el acceso entre distintos recursos.
-No almacene datos o archivos de aplicación en el grupo de instancia de inicio.
-Utilice grupos separados para datos y archivos de aplicación.
-Utilice credenciales de acceso separadas (basadas en clave de IAM) con acceso restringido al grupo para archivos de aplicación y el grupo que contiene los datos.
Las aplicaciones deben ejecutarse en 72 horas Hay un límite en el número de horas que una aplicación o kernel puede ejecutar. Para la aplicación de parches de seguridad y conformidad, todos los tiempos de ejecución que se ejecutan durante más de 72 horas se detienen. Si tiene una aplicación grande, divida la aplicación en fragmentos más pequeños que se ejecutarán en 72 horas. Si está ejecutando aplicaciones de modalidad continua de Spark, asegúrese de que configura los puntos de comprobación y que tiene la supervisión en su lugar para reiniciar las aplicaciones si se detienen.
Iniciar y detener historial de Spark sólo cuando sea necesario Detenga siempre el servidor de historial de Spark cuando ya no necesite utilizarlo. Tenga en cuenta que el servidor de historial de Spark consume recursos de CPU y memoria continuamente mientras se inicia su estado.