sql >> Base de Datos >  >> RDS >> Mysql

Sugerencias para migrar de bases de datos propietarias a bases de datos de código abierto

En el pasado, las bases de datos propietarias eran las únicas opciones aceptables.

“Nunca despidieron a nadie por comprar en Oracle/Microsoft/IBM” era el dicho.

Enormes bases de datos monolíticas utilizadas para cada propósito. Soporte pagado:así es como se veía el panorama de la base de datos en los años 90 y principios de los 2000. Claro, las bases de datos de código abierto estaban ahí, pero fueron tratadas como una "base de datos de juguete", adecuada para un sitio web pequeño, tal vez un blog, o una tienda electrónica muy pequeña. Nadie en su sano juicio los usaría para algo crítico.

Las cosas han cambiado con el tiempo y las bases de datos de código abierto han madurado. Cada año se crean más y más. Ahora vemos la especialización, lo que permite a los usuarios elegir la mejor opción para una carga de trabajo determinada (serie temporal, analítica, almacén de columnas, NoSQL, relacional, clave-valor). Puede elegir las bases de datos que necesite y, por lo general, hay numerosas opciones para elegir. Esto lleva a que el código abierto sea cada vez más popular en el mundo de las bases de datos. Las empresas ahora están mirando sus facturas de su proveedor de base de datos patentado y se preguntan si pueden reducirlo un poco mediante la adopción de una base de datos de código abierto gratuita.

Como siempre, hay pros y contras. ¿Cuáles son las cosas que puede considerar antes de implementar una base de datos de código abierto? En esta publicación de blog, compartiremos algunos consejos que quizás desee tener en cuenta cuando planee migrar a bases de datos de código abierto.

Empiece poco a poco y amplíe

Si su organización no utiliza bases de datos de código abierto, lo más probable es que tampoco tenga experiencia en su gestión. Si bien es factible a través de consultores externos, probablemente no sea una buena idea migrar todo su entorno a bases de datos de código abierto.

El mejor enfoque, en cambio, sería comenzar con proyectos pequeños. Tal vez necesite crear algún tipo de herramienta interna o sitio web, tal vez algún tipo de herramienta de monitoreo; esa es una gran oportunidad para usar bases de datos de código abierto y obtener la experiencia de usarlas en entornos del mundo real. Esto le permitirá conocer los entresijos de una base de datos:cómo diagnosticarla, cómo realizar un seguimiento de su rendimiento, cómo ajustarla para mejorar su rendimiento.

Además, aprenderá más sobre las opciones e implementaciones de alta disponibilidad. Trabajar con él también ayuda a comprender las diferencias entre la base de datos propietaria que usa y las bases de datos de código abierto que implementó para proyectos más pequeños. Con el tiempo, debería ver que la huella de la base de datos de código abierto en su organización aumenta significativamente junto con la experiencia de sus equipos.

En algún momento, después de recopilar suficiente experiencia para ejecutar las bases de datos de código abierto, puede decidir tirar de la palanca y comenzar un proyecto de migración. Otra opción, también bastante probable, es que trasladaría gradualmente sus operaciones a bases de datos de código abierto proyecto por proyecto. Eventualmente, sus aplicaciones existentes que usan RDBMS propietario quedarán obsoletas y, eventualmente, serán reemplazadas por una nueva iteración del software, que se basa en bases de datos de código abierto.

Elija la base de datos adecuada para el trabajo

Ya mencionamos que las bases de datos de código abierto suelen ser bastante especializadas. Puede elegir un almacén de datos adecuado para diferentes usos:serie temporal, almacén de documentos, almacén de clave-valor, almacén de columnas, búsqueda de texto. Esto, combinado con el consejo anterior, le permite elegir exactamente el tipo de base de datos que requiere su pequeño proyecto. Supongamos que desea crear una pila de monitoreo para su entorno.

Es posible que desee consultar bases de datos de series temporales como Prometheus o TimeScaleDB para potenciar su aplicación de supervisión. Tal vez desee implementar algún tipo de solución analítica/de big data. Tendría que diseñar algún tipo de proceso ETL para extraer los datos de su RDBMS principal y cargarlos en una solución de código abierto. Hay numerosas opciones para ser utilizado como almacén de datos. Según los requisitos y los datos, puede elegir entre una amplia variedad de bases de datos, por ejemplo, Clickhouse, Cassandra, Hive y muchas más.

¿Qué tal mover algunas partes de la aplicación del RDBMS propietario a una solución de código abierto?

También hay opciones para eso. Los almacenes de datos como PostgreSQL o MariaDB tienen una gran cantidad de funciones relacionadas con la migración fácil desde almacenes de datos como Oracle. Vienen con, por ejemplo, soporte para PL/SQL y otras funciones de SQL disponibles para Oracle. Esta es una gran ayuda:se debe convertir menos código junto con la migración de Oracle a otras bases de datos, es más probable que sus procedimientos y funciones almacenados también funcionen en su mayoría de forma inmediata y no tendrá que gastar una cantidad significativa cantidad de tiempo para reescribir, probar y depurar código que representa una lógica central de su aplicación.

Tampoco debe olvidarse de los recursos que ya tiene en su equipo. ¿Quizás alguien tiene algo de experiencia en almacenes de datos de código abierto más populares? Si coinciden con sus requisitos y se adaptan a su entorno, es posible que pueda utilizar el conocimiento existente en su equipo y facilitar la transición al mundo de código abierto.

Considere obtener asistencia

Migrar a almacenes de datos con los que no tiene mucha experiencia siempre es complicado. Incluso si avanza con pequeños pasos, es posible que se vea sorprendido por un comportamiento inesperado, una situación inesperada, errores o incluso situaciones operativas con las que no está familiarizado.

Las bases de datos de código abierto suelen tener un excelente apoyo de la comunidad:listas de correo electrónico, foros, canales de Slack. Por lo general, cuando preguntas, alguien intentará ayudarte. Esto puede no ser suficiente en algunos casos. Si ese es el caso, debe buscar un soporte pago. Hay muchas maneras de cómo se puede lograr esto.

En primer lugar, no todos los proyectos de código abierto son iguales. Los proyectos más grandes, como PostgreSQL o MySQL, pueden haber desarrollado un ecosistema de empresas de consultoría que contratan expertos que pueden realizar consultas por usted. Si dicha opción, por cualquier motivo, no está disponible o no es factible, siempre puede comunicarse con los mantenedores del proyecto.

Es muy común que la empresa que desarrolla el almacén de datos esté feliz de ayudar por un precio.

Las empresas de consultoría independientes tienen una ventaja significativa:son independientes y propondrán una solución basada en su experiencia, no en el almacén de datos y las herramientas que desarrollan. Los proveedores, bueno, generalmente impulsarán sus propias soluciones y entornos. Por otro lado, los proveedores están bastante interesados ​​en aumentar la adopción de su almacén de datos. Si está migrando desde un almacén de datos propietario, es posible que hayan estado en esa situación varias veces antes, por lo que deberían poder brindarle buenas prácticas, ayudarlo a diseñar el proceso de migración, etc. Para una empresa sin experiencia, el acceso a los expertos en el campo de la migración puede ser una gran ventaja.

Puede encontrar útil el acceso a soporte externo no solo en la fase de migración. Tratar con un nuevo almacén de datos siempre es complicado y aprender todos los aspectos de las operaciones lleva mucho tiempo. Incluso después de la migración, aún puede beneficiarse de tener a alguien a quien pueda llamar, preguntar y, lo que es más importante, aprender. Capacitaciones, DBA remoto, todas esas son opciones comunes en el mundo de las bases de datos de código abierto, especialmente para aquellos proyectos más grandes y establecidos.

Encuentre un sistema o herramienta para ayudar

Las bases de datos de código abierto vienen con una variedad de herramientas, algunas más o menos complejas. Algunos agregan funcionalidad (alta disponibilidad, copias de seguridad, monitoreo), otros están diseñados para facilitar la administración de la base de datos.

Es importante aprovecharlos (los contratos de consultoría pueden ser útiles aquí para presentarle las herramientas más importantes para el almacén de datos de código abierto de su elección) ya que pueden aumentar significativamente su velocidad operativa y el rendimiento y estabilidad de todo el montaje.

Algunas herramientas son gratuitas, otras requieren una licencia para operar, debe buscar en el grupo y elegir la que más le convenga. Estamos hablando aquí de balanceadores de carga, herramientas para administrar la topología de replicación, herramientas de administración de IP virtual, soluciones de agrupamiento, más o menos plataformas dedicadas de monitoreo y observabilidad que pueden rastrear cualquier cosa, desde las métricas típicas de rendimiento de la base de datos hasta las predicciones inteligentes basadas en los datos para especialistas. análisis del rendimiento de la consulta.

El mundo del código abierto es donde estas herramientas prosperan; esto también tiene ventajas y desventajas. Es fácil encontrar la herramienta "A", es difícil encontrar la herramienta "LA". Puede encontrar numerosos proyectos en GitHub, todos haciendo casi lo mismo que los demás. Cuál elegir es la parte difícil. Es por eso que, idealmente, tendría una mano amiga en un contrato de soporte o también puede confiar en plataformas de administración que lo ayudarán a administrar múltiples aspectos de las operaciones en bases de datos de código abierto, lo que incluye ayudarlo a estandarizar y elegir las herramientas correctas para eso.

También hay plataformas como ClusterControl, que fue diseñada para ayudar a las personas sin experiencia a comprender completamente el poder de las bases de datos de código abierto. ClusterControl admite múltiples tipos diferentes de almacenes de datos de código abierto:MySQL y sus variantes, PostgreSQL, TimeScaleDB o MongoDB. Proporciona una interfaz de usuario unificada para acceder a las funciones de administración de esos almacenes de datos, lo que facilita su implementación y administración. En lugar de dedicar tiempo a probar diferentes herramientas y soluciones, con ClusterControl puede implementar fácilmente un entorno de alta disponibilidad, programar copias de seguridad y realizar un seguimiento de las métricas en el sistema.

Herramientas como ClusterControl reducen la carga de su equipo, aumentando su capacidad de comprender lo que sucede en la base de datos con la que no están tan familiarizados como les hubiera gustado.

Tómese su tiempo

Lo que es bueno tener en cuenta es que no hay necesidad de apresurarse. La estabilidad de su entorno y el bienestar de sus usuarios es primordial. Tómese su tiempo para ejecutar las pruebas, verifique todos los aspectos de su aplicación. Verifique que cuenta con los procesos adecuados de alta disponibilidad y recuperación ante desastres.

Solo cuando esté 100% seguro de que es bueno para cambiar, será el momento de tirar de la palanca y hacer el cambio a bases de datos de código abierto.