Este blog es la primera parte de nuestra serie Admin Essentials, donde nos centraremos en temas importantes para quienes administran y mantienen entornos de Databricks. ¡Esté atento a blogs adicionales sobre gobernanza de datos, operaciones y automatización, gestión de usuarios y accesibilidad, y seguimiento y gestión de costos en el futuro cercano!
En 2020, Databricks comenzó a lanzar versiones preliminares privadas de varias características de la plataforma conocidas colectivamente como Enterprise 2.0 (o E2); estas características proporcionaron la siguiente iteración de la plataforma Lakehouse, creando la escalabilidad y seguridad para igualar la potencia y velocidad ya disponibles en Databricks. Cuando Enterprise 2.0 se hizo disponible públicamente, una de las adiciones más esperadas fue la capacidad de crear múltiples espacios de trabajo desde una sola cuenta. Esta característica abrió nuevas posibilidades para la colaboración, la alineación organizacional y la simplificación. Sin embargo, como hemos descubierto desde entonces, también ha planteado una serie de preguntas. Basándonos en nuestra experiencia con clientes empresariales de todos los tamaños, formas y sectores, este blog presentará respuestas y mejores prácticas a las preguntas más comunes sobre la gestión de espacios de trabajo dentro de Databricks; a nivel fundamental, esto se reduce a una pregunta simple: ¿cuándo se debe crear un nuevo espacio de trabajo? Específicamente, destacaremos las estrategias clave para organizar sus espacios de trabajo y las mejores prácticas de cada una.
Aunque cada proveedor de la nube (AWS, Azure y GCP) tiene una arquitectura subyacente diferente, la organización de los espacios de trabajo de Databricks entre nubes es similar. La construcción lógica de nivel superior es una cuenta maestra E2 (AWS) o un objeto de suscripción (Azure Databricks/GCP). En AWS, aprovisionamos una sola cuenta E2 por organización que proporciona un panel unificado de visibilidad y control para todos los espacios de trabajo. De esta manera, su actividad administrativa está centralizada, con la capacidad de habilitar SSO, Registros de auditoría y Unity Catalog. Azure tiene relativamente menos restricciones en la creación de objetos de suscripción de nivel superior; sin embargo, todavía recomendamos que el número de suscripciones de nivel superior utilizadas para crear espacios de trabajo de Databricks se controle tanto como sea posible. Nos referiremos a la construcción de nivel superior como una cuenta en este blog, ya sea una cuenta E2 de AWS o una suscripción de GCP/Azure.
Dentro de una cuenta de nivel superior, se pueden crear múltiples espacios de trabajo. El máximo recomendado de espacios de trabajo por cuenta está entre 20 y 50 en Azure, con un límite estricto en AWS. Este límite surge de la sobrecarga administrativa que proviene de un número creciente de espacios de trabajo: la gestión de la colaboración, el acceso y la seguridad en cientos de espacios de trabajo puede convertirse en una tarea extremadamente difícil, incluso con procesos de automatización excepcionales. A continuación, presentamos un modelo de objetos de alto nivel de una cuenta de Databricks.
Las empresas necesitan crear recursos en su cuenta de la nube para admitir requisitos de multi-tenencia. La creación de cuentas y espacios de trabajo separados para cada nuevo caso de uso tiene algunas ventajas claras: facilidad de seguimiento de costos, aislamiento de datos y usuarios, y un radio de explosión menor en caso de incidentes de seguridad. Sin embargo, la proliferación de cuentas trae consigo un conjunto separado de complejidades: la gobernanza, la gestión de metadatos y la sobrecarga de colaboración crecen junto con el número de cuentas. La clave, por supuesto, es el equilibrio. A continuación, repasaremos algunas consideraciones generales para la organización de espacios de trabajo empresariales; luego, repasaremos dos estrategias comunes de aislamiento de espacios de trabajo que vemos entre nuestros clientes: basadas en LOB (Línea de Negocio) y basadas en productos. Cada una tiene fortalezas, debilidades y complejidades que discutiremos antes de dar las mejores prácticas.
Al diseñar su estrategia de espacios de trabajo, lo primero que vemos que los clientes suelen hacer son las elecciones organizativas de macro nivel; sin embargo, ¡hay muchas decisiones de nivel inferior que son igual de importantes! Hemos recopilado las más pertinentes a continuación.
Aunque dedicamos la mayor parte de este blog a hablar sobre cómo dividir sus espacios de trabajo para obtener la máxima efectividad, ¡hay toda una clase de clientes de Databricks para quienes un solo espacio de trabajo unificado por entorno es más que suficiente! De hecho, esto se ha vuelto cada vez más práctico con el auge de características como Repos, Unity Catalog, páginas de inicio basadas en roles, etc. En tales casos, todavía recomendamos la separación de espacios de trabajo de Desarrollo, Staging y Producción para fines de validación y QA. Esto crea un entorno ideal para pequeñas empresas o equipos que valoran la agilidad sobre la complejidad.
Los beneficios y desventajas de crear un solo conjunto de espacios de trabajo son:
+ No hay preocupación por saturar el espacio de trabajo internamente, mezclar activos o diluir el costo/uso en múltiples proyectos/equipos; todo está en el mismo entorno
+ La simplicidad de la organización significa una menor sobrecarga administrativa
- Para organizaciones más grandes, un solo espacio de trabajo de desarrollo/staging/producción no es viable debido a los límites de la plataforma, la saturación, la incapacidad de aislar datos y las preocupaciones de gobernanza
Si un solo conjunto de espacios de trabajo parece ser el enfoque correcto para usted, las siguientes mejores prácticas le ayudarán a mantener su Lakehouse funcionando sin problemas:
En cualquiera de las estrategias mencionadas en este artículo, un entorno sandbox es una buena práctica para permitir a los usuarios incubar y desarrollar trabajos menos formales, pero aún potencialmente valiosos. Críticamente, estos entornos sandbox necesitan equilibrar la libertad de explorar datos reales con la protección contra el impacto no intencional (o intencional) en las cargas de trabajo de producción. Una práctica recomendada común para tales espacios de trabajo es alojarlos en una cuenta de nube completamente separada; esto limita en gran medida el radio de explosión de los usuarios en el espacio de trabajo. Al mismo tiempo, la configuración de barreras de seguridad simples (como las Políticas de Clúster, limitando el acceso a datos a conjuntos de datos de "juego" o limpios, y cerrando la conectividad saliente siempre que sea posible) significa que los usuarios pueden tener una libertad relativa para hacer (casi) lo que quieran sin necesidad de supervisión constante del administrador. Finalmente, la comunicación interna es igual de importante; si los usuarios construyen sin saber una aplicación increíble en el Sandbox que atrae a miles de usuarios, o esperan soporte a nivel de producción para su trabajo en este entorno, esos ahorros administrativos se evaporarán rápidamente.
Las mejores prácticas para los espacios de trabajo sandbox incluyen:
Los datos sensibles están cobrando cada vez más importancia entre nuestros clientes en todos los verticales; los datos que antes se limitaban a proveedores de atención médica o procesadores de tarjetas de crédito ahora se están convirtiendo en fuente para comprender el análisis de pacientes o el sentimiento del cliente, analizar mercados emergentes, posicionar nuevos productos y casi cualquier otra cosa que puedas imaginar. Esta riqueza de datos conlleva un alto riesgo potencial, con amenazas cada vez mayores de filtraciones de datos; por esta razón, mantener los datos sensibles segregados y protegidos es importante sin importar la estrategia organizacional que elijas. Databricks proporciona varios medios para proteger datos sensibles (como ACLs y compartición segura), y combinado con las herramientas del proveedor de la nube, puede hacer que el Lakehouse que construyas tenga el menor riesgo posible. Algunas de las mejores prácticas en torno al Aislamiento y Sensibilidad de Datos incluyen:
La Recuperación ante Desastres (DR) es un tema amplio que es importante si usas AWS, Azure o GCP; no cubriremos todo en este blog, sino que nos centraremos en cómo la DR y las consideraciones regionales influyen en el diseño del espacio de trabajo. En este contexto, DR implica la creación y el mantenimiento de un espacio de trabajo en una región separada del espacio de trabajo de Producción estándar.
La estrategia de DR puede variar ampliamente dependiendo de las necesidades del negocio. Por ejemplo, algunos clientes prefieren mantener una configuración activa-activa, donde todos los activos de un espacio de trabajo se replican constantemente a un espacio de trabajo secundario; esto proporciona la máxima redundancia, pero también implica complejidad y costo (transferir constantemente datos entre regiones y realizar replicación y deduplicación de objetos es un proceso complicado). Por otro lado, algunos clientes prefieren hacer lo mínimo necesario para garantizar la continuidad del negocio; un espacio de trabajo secundario puede contener muy poco hasta que ocurra un failover, o puede ser respaldado solo ocasionalmente. Determinar el nivel correcto de failover es crucial.
Independientemente del nivel de DR que elijas implementar, recomendamos lo siguiente:
Recuerda: Databricks es responsable de mantener la infraestructura regional del espacio de trabajo en el Plano de Control, pero tú eres responsable de los activos específicos de tu espacio de trabajo, así como de la infraestructura de la nube de la que dependen tus trabajos de producción.
Ahora nos adentramos en la organización real de los espacios de trabajo en un contexto empresarial. El aislamiento de proyectos basado en LOB surge de la forma tradicional de ver los recursos de TI centrada en la empresa; también conlleva muchas fortalezas (y debilidades) tradicionales de la alineación centrada en LOB. Como tal, para muchas grandes empresas, este enfoque de gestión de espacios de trabajo les resultará natural.
En una estrategia de espacio de trabajo basada en LOB, cada unidad funcional de un negocio recibirá un conjunto de espacios de trabajo; tradicionalmente, esto incluirá espacios de trabajo de desarrollo, staging y producción, aunque hemos visto clientes con hasta 10 etapas intermedias, cada una potencialmente con su propio espacio de trabajo (¡no recomendado!). El código se escribe y prueba en DEV, luego se promueve (a través de la automatización CI/CD) a STG, y finalmente aterriza en PRD, donde se ejecuta como un trabajo programado hasta ser descontinuado. El tipo de entorno y la LOB independiente son las razones principales para iniciar un nuevo espacio de trabajo en este modelo; hacerlo para cada caso de uso o producto de datos puede ser excesivo.
El diagrama anterior muestra una forma potencial en que se puede estructurar un espacio de trabajo basado en LOB; en este caso, cada LOB tiene una cuenta de nube separada con un espacio de trabajo en cada entorno (dev/stg/prd) y también tiene un administrador dedicado. Es importante destacar que todos estos espacios de trabajo caen bajo la misma cuenta de Databricks y aprovechan el mismo Unity Catalog. Algunas variaciones incluirían compartir cuentas de nube (y potencialmente recursos subyacentes como VPCs y servicios en la nube), usar una cuenta de nube separada de dev/stg/prd, o crear metastores externos separados para cada LOB. Todos estos son enfoques razonables que dependen en gran medida de las necesidades del negocio.
En general, hay una serie de beneficios, así como algunos inconvenientes en el enfoque LOB:
+Los activos de cada LOB se pueden aislar, tanto desde la perspectiva de la nube como desde la perspectiva del espacio de trabajo; esto facilita la generación de informes y el análisis de costos, además de un espacio de trabajo menos saturado.
+La clara división de usuarios y roles mejora la gobernanza general del Lakehouse y reduce el riesgo general.
+La automatización de la promoción entre entornos crea un proceso eficiente y de baja sobrecarga.
-Se requiere una planificación inicial para garantizar que los procesos entre LOB estén estandarizados y que la cuenta general de Databricks no alcance los límites de la plataforma.
-La automatización y los procesos administrativos requieren especialistas para su configuración y mantenimiento.
Como mejores prácticas, recomendamos lo siguiente a quienes construyen Lakehouses basados en LOB:
¿Qué hacemos cuando los LOB necesitan colaborar de forma interfuncional, o cuando un simple modelo de desarrollo/staging/producción no se ajusta a los casos de uso de nuestro LOB? Podemos deshacernos de parte de la formalidad de una estructura estricta de Lakehouse basada en LOB y adoptar un enfoque ligeramente más moderno; llamamos a esto aislamiento de espacio de trabajo por Producto de Datos. El concepto es que, en lugar de aislar estrictamente por LOB, aislamos por proyectos de nivel superior, dando a cada uno un entorno de producción. También mezclamos entornos de desarrollo compartidos para evitar la proliferación de espacios de trabajo y simplificar la reutilización de activos.
A primera vista, esto parece similar al aislamiento basado en LOB de arriba, pero hay algunas distinciones importantes:
Este enfoque comparte muchas de las mismas fortalezas y debilidades que el aislamiento basado en LOB, pero ofrece más flexibilidad y enfatiza el valor de los proyectos en el Lakehouse moderno. Cada vez más, vemos que esto se convierte en el "estándar de oro" de la organización de espacios de trabajo, lo que corresponde con el movimiento de la tecnología de ser principalmente un impulsor de costos a un generador de valor. Como siempre, las necesidades comerciales pueden impulsar desviaciones leves de esta arquitectura de ejemplo, como desarrollo/staging/producción dedicados para proyectos particularmente grandes, proyectos inter-LOB, más o menos segregación de recursos en la nube, etc. Independientemente de la estructura exacta, sugerimos las siguientes mejores prácticas:
Para aprovechar al máximo todos los beneficios del Lakehouse y respaldar el crecimiento y la gestionabilidad futuros, se debe tener cuidado al planificar la disposición del espacio de trabajo. Otros artefactos asociados que deben considerarse durante este diseño incluyen un registro de modelos centralizado, base de código y catálogo para facilitar la colaboración sin comprometer la seguridad. Para resumir algunas de las mejores prácticas destacadas en este artículo, nuestras conclusiones clave se enumeran a continuación:
Mejor Práctica #1: Minimice el número de cuentas de nivel superior (tanto en el proveedor de nube como en el nivel de Databricks) siempre que sea posible, y cree un espacio de trabajo solo cuando la separación sea necesaria por motivos de cumplimiento, aislamiento o restricciones geográficas. En caso de duda, ¡mantenlo simple!
Mejor Práctica #2: Decida una estrategia de aislamiento que le proporcione flexibilidad a largo plazo sin una complejidad indebida. Sea realista acerca de sus necesidades e implemente pautas estrictas antes de comenzar a incorporar cargas de trabajo a su Lakehouse; en otras palabras, ¡mida dos veces, corte una vez!
Mejor Práctica #3: Automatice sus procesos en la nube. Esto abarca todos los aspectos de su infraestructura (muchos de los cuales se cubrirán en blogs posteriores), incluido SSO/SCIM, Infraestructura como Código con una herramienta como Terraform, canalizaciones de CI/CD y Repos, copias de seguridad en la nube y monitoreo (utilizando herramientas nativas de la nube y de terceros).
Mejor Práctica #4: Considere establecer un equipo de COE para la gobernanza central de una estrategia empresarial, donde los aspectos repetibles de una canalización de datos y aprendizaje automático se plantillan y automatizan para que diferentes equipos de datos puedan usar capacidades de autoservicio con suficientes barreras de protección. El equipo de COE es a menudo un centro ligero pero crítico para los equipos de datos y debe verse a sí mismo como un facilitador, manteniendo documentación, SOP, guías y preguntas frecuentes para educar a otros usuarios.
Mejor Práctica #5: El Lakehouse proporciona un nivel de gobernanza que el Data Lake no tiene; ¡aprovéchelo! Evalúe sus necesidades de cumplimiento y gobernanza como uno de los primeros pasos para establecer su Lakehouse, y aproveche las funciones que Databricks proporciona para asegurarse de que el riesgo se minimice. Esto incluye la entrega de registros de auditoría, HIPAA y PCI (cuando corresponda), controles de exfiltración adecuados, uso de ACL y controles de usuario, y revisión regular de todo lo anterior.
Proporcionaremos más blogs de mejores prácticas de administración en el futuro cercano, sobre temas que van desde la Gobernanza de Datos hasta la Gestión de Usuarios. Mientras tanto, comuníquese con su equipo de cuentas de Databricks si tiene preguntas sobre la gestión de espacios de trabajo, ¡o si desea obtener más información sobre las mejores prácticas en la Plataforma Databricks Lakehouse!
(Esta entrada del blog ha sido traducida utilizando herramientas basadas en inteligencia artificial) Publicación original
