sql >> Base de Datos >  >> RDS >> Database

Entrevista con Oren Eini de RavenDB en la base de datos de gestión, análisis y seguridad

Recientemente, tuve la oportunidad de entrevistar a Oren Eini, CEO y fundador de Hibernante rinocerontes que proporciona RavenDB, una fuente abierta documento orientado NoSQL diseñada especialmente para la plataforma .NET / Windows.

Oren tiene más de 20 años de experiencia en el mundo del desarrollo con un fuerte enfoque en el Microsoft .NET y el ecosistema. Reconocido como uno de los profesionales más valiosos de Microsoft desde 2007, Oren es también el autor de “DSL en Boo:dominio específico Idiomas en .NET.” Con frecuencia se habla en las conferencias de la industria como DevTeach, JAOO, QCon, Oredev, NDC, Yow! y Progressive.NET.

Puede leer la entrevista completa a continuación:

1. En este mundo digitalizado, los datos se ha convertido en uno de los activos más valiosos. y por lo tanto, los datos de forma se almacena, organiza, y el proceso es crítico para el éxito del negocio. Dado que las empresas son bombardeados con más y más datos, almacenamiento de datos y análisis son cada vez más complejo. ¿Nos puede decir algo de la gestión de base de datos común desafía la cara empresas hoy en día?

El principal problema, creo, es sólo el tamaño de los datos. No estoy hablando necesariamente de grandes volúmenes de datos y la complejidad de la gestión de un conjunto de datos se mide en cientos de terabytes. Estoy hablando de la cantidad de bases de datos y los silos de datos que tiene en una organización. Ya que todo es digital, que tiene una funcionalidad crítica para el negocio que reside en una hoja de cálculo de Excel en una unidad compartida y datos históricos de compras de los clientes en un servidor que nadie quiere acercarse por temor a aceptar la propiedad de.

Sólo averiguar lo que la organización en su conjunto conozca puede ser una tarea compleja. Datos deslizarse a través de las grietas es tristemente común.

Los intentos de crear un repositorio centralizado para toda la empresa también están condenados al fracaso. Las diferentes partes de la empresa tienen ideas muy diferentes sobre lo que parece que las cosas son obvias. Por ejemplo, el departamento de facturación tiene una noción muy diferente de lo que un cliente es que el departamento de marketing. Tratar de hacer que los datos se ajustan un molde común que todos hacen un mal servicio.

2. ¿Cómo hacemos para superar estos desafíos? ¿Cree usted que la elección de una solución eficaz gestión de base de datos es el primer paso? Y por qué?

El primer paso es definir, a nivel de organización, propiedad de los datos y reglas de responsabilidad. En el nivel más básico, facturación posee el concepto de todo lo que un cliente se encuentra en un estado de OverduePayment y Marketing es dueño de los intereses de un cliente. La idea no es crear silos de información en la organización, pero para tener un reconocimiento explícito de las diferentes necesidades. Una vez hecho esto, se puede definir el flujo de datos adecuados en la organización.

El departamento de facturación hará que su punto de vista de un cliente a disposición del resto de la organización al tiempo que conserva la libertad de cambiar la forma en que se forma en el interior del departamento.

Yo uso de facturación y los departamentos de marketing y la noción de un cliente como este ejemplo para poder hablar por primera vez el negocio, lo cual es importante. Para moverlo a una manera un poco más técnico, estamos hablando de servicios y datos de flujo de contratos. Te remito a Mandato de Bezos y cómo se transformó Amazon. La idea es simple:. En lugar de tratar a toda la organización como un todo, lo que es casi imposible más allá de un cierto tamaño, lo tratan como un grupo de organizaciones que tienen fronteras muy claras entre ellos cooperando

Una vez que tenga esos límites, y usted tiene una buena idea del flujo de datos en la organización, puede tener sus fontaneros entrar y hacer las cosas a él como redirigir el flujo de datos a una ubicación central para su análisis.

Tener este tipo de interfaces publicadas ayuda mucho cuando llega el momento de cambiar el comportamiento de algunas cosas. Mientras el comportamiento externo es el mismo, somos libres de cambiar la forma en que procesamos.

3. En los últimos años, las empresas han adoptado diferentes tipos de bases de datos NoSQL. Con datos cada vez más sensibles se almacenan en bases de datos NoSQL, los problemas de seguridad se han convertido en preocupación cada vez mayor. ¿Cuál es su opinión sobre esto?

En general, la razón más común para la falta de seguridad en las bases de datos NoSQL es la negligencia del operador. Quiero separar claramente dos cuestiones distintas aquí. Tenemos bases de datos NoSQL como Redis, cuyo modelo de seguridad es explícita acerca de la ejecución en un entorno de confianza. Hay algo de seguridad cuenta con rudimentario para Redis, pero la suposición general es que están destinados a servir sólo como la tercera o cuarta línea de defensa.

Otras bases de datos NoSQL, como MongoDB, se espera que para funcionar en redes hostiles (es decir, Internet). Sin embargo, es fácil de configurar hasta MongoDB sin ningún tipo de seguridad. En la cara de la misma, MongoDB viene en una configuración segura, lo que le permite escuchar solamente a la máquina local.

La primera cosa que usted va a encontrar cuando se intenta conectar a MongoDB forma remota es una guía que explica cómo habilitar el acceso remoto a MongoDB, sin ningún tipo de seguridad.

Hasta cierto punto, esto es la negligencia del operador. Sin embargo, dada la gran cantidad de bases de datos MongoDB que se dejó abierta, creo que esto es hilar muy fino. En China una base de datos MongoDB abierta tenía más de 200 millones de CV a la espera de alguien para espiar; una base de datos de configuración descuidadamente ha expuesto puertas traseras de Rusia en más de 2.000 empresas.

Con seguridad, no hay una segunda oportunidad.

RavenDB, por el contrario, simplemente se negará a ejecutar en una configuración vulnerables. Puede ejecutar RavenDB sin seguridad en la máquina local, pero si se intenta exponer la base de datos a Internet sin las debidas garantías, la base de datos devolverá un error que explica cómo se debe configurar correctamente para arriba.

Llenamos la máxima cantidad de lagunas, asumiendo que la mayoría de la gente va a hacer la mínima cantidad de trabajo necesario y asegúrese de que cuando esto sucede, el estado final es buena, así que lo tenemos cubierto.

4. Hablando de RavenDB, puedes nombrar algunas de las características más importantes que añaden más valor a los clientes? ¿Cómo RavenDB destacan entre otros proveedores en términos de características y rendimiento?

RavenDB ha estado funcionando en sistemas de producción durante más de una década. Algunas de las características más potentes que tenemos en fechado a nuestra versión original. La capacidad de reaccionar de forma dinámica con el medio ambiente operacional es la más obvia. RavenDB analiza continuamente lo que está pasando (consultas entrantes, de carga del servidor, etc.) y reacciona a que al cambiar la asignación de recursos, estructuras internas, etc. La idea es que en lugar de tener un tiempo completo DBA cuidar a su base de datos, la base de datos puede gestionar sus propios asuntos.

Cuando empezamos a trabajar en RavenDB, queríamos una base de datos que tenía todas las ventajas de una base de datos relacional (rápido, ÁCIDO, fiable), pero ninguna de las desventajas (esquema rígido, mantenimiento continuo, de alta complejidad).

Cuando empezamos, no tenía idea de lo grande que era una tarea esto. En los últimos 10 años, hemos ganado mucha experiencia en la construcción de una base de datos que sólo puede trabajar, sin necesidad de prestar mucha atención a ella. Hemos diseñado RavenDB para que sea más fácil para nosotros para poner en práctica las cosas con un enfoque en el rendimiento. Un punto de referencia en un reciente Frambuesa Pi (25 $, 1 GHz, 1 GB de RAM) máquina nos velocidad de reloj de más de 5000 escribe un segundo. En hardware, podemos llegar a más de 100.000 escrituras por segundo y más de 1.000.000 de lecturas por segundo.

Todo eso es en un solo nodo, pero RavenDB ha sido una base de datos distribuida desde el primer momento. Esto significa que se puede configurar un clúster en pocos minutos (y hacerlo de una manera segura, por supuesto) y tienen un sistema de alta disponibilidad y robusto.

Ofrecemos algunas características únicas que no están disponibles en otros lugares. ETL está integrado en el interior de RavenDB y está fuertemente utilizada por nuestros clientes para permitir el flujo de datos ricos. No es necesario para coser juntos una solución a partir de piezas dispares, es todo allí mismo, en la caja y que funciona.

La función de suscripción es uno que estoy particularmente orgulloso. Se le permite realizar una consulta en curso. La base de datos inicialmente le dará todos los resultados que coincidan con su consulta. Puesto que todavía está suscrito a esta consulta, la base de datos enviará cualesquiera documentos nuevos que coincidan con su consulta lo que se introducen o actualizan para adaptarse a esa consulta. Esto le permite construir procesos de negocio robustos y sistemas de back-end con facilidad.

Nos hemos centrado mucho esfuerzo en hacer RavenDB en una base de datos multi-modelo capaz de manejar documentos, clave-valor, datos binarios, contadores distribuidos y consultas gráfico.

5. Y por último, ¿cuál es el futuro de los sistemas de gestión de base de datos? ¿Cómo se va a cambiar en los próximos 3-4 años?

Lo que vas a ver mucho más enfoque en las bases de datos de múltiples modelos. En lugar de tener que desplegar una solución dedicada para cada tipo de datos que desee y hacer frente a la compleja integración entre cada una de las piezas, el mercado se está moviendo a una solución integrada que puede ofrecer una gama completa de opciones en una sola caja.

La nube seguirá siendo más importante, pero no sería apresurado decir adiós a en las instalaciones y sistemas distribuidos. Estamos viendo una gran cantidad de nuestros clientes realizar el procesamiento en el borde y en los sistemas conectados ocasionalmente. Creo que se verá un cambio de enfoque, donde los centros de datos del pasado se moverían a la nube, pero una gran parte del procesamiento real se distribuiría en el borde y en los dispositivos móviles. Eso requiere una forma diferente de pensar acerca de la distribución de datos y cómo enviar datos a los datos de la nube y la extracción de la nube.

No va a ser mucho más énfasis en el tipo de datos distribuidos de procesamiento que una vez fue la gama exclusiva de los sistemas de gama alta.

Sin duda, va a ser muy interesante ver cómo cambia el paisaje y cómo construir las herramientas y metodologías para manejar cada vez mayor complejidad y funcionalidad.