sql >> Database >  >> RDS >> Mysql

Tips voor het migreren van eigen naar open source databases

Vroeger waren eigen databases de enige acceptabele opties.

"Niemand is ooit ontslagen omdat hij iets kocht bij Oracle/Microsoft/IBM" was het gezegde.

Enorme, monolithische databases die voor elk doel worden gebruikt. Betaalde ondersteuning - zo zag het databaselandschap eruit in de jaren '90 en begin '00. Natuurlijk waren er open source-databases, maar ze werden behandeld als een 'speelgoeddatabase', geschikt voor een kleine website, misschien een blog of een heel kleine e-shop. Niemand met gezond verstand zou ze voor iets belangrijks gebruiken.

Dingen zijn in de loop van de tijd veranderd en open source databases zijn volwassen geworden. Elk jaar worden er meer en meer gemaakt. We zien nu specialisatie, waardoor gebruikers de beste optie kunnen kiezen voor een bepaalde workload - tijdreeksen, analytisch, columnstore, NoSQL, relationeel, key-value - u kunt alle databases kiezen die u nodig heeft en meestal zijn er talloze opties om uit te kiezen. Dit leidt ertoe dat open source steeds populairder wordt in de databasewereld. Bedrijven kijken nu naar hun rekeningen van hun eigen databaseleverancier en vragen zich af of ze deze een beetje kunnen verminderen door een gratis open source-database over te nemen.

Zoals gewoonlijk zijn er voor- en nadelen. Waar moet u rekening mee houden voordat u een open source-database implementeert? In deze blogpost zullen we enkele tips delen waarmee u rekening moet houden wanneer u van plan bent te migreren naar open source-databases.

Begin klein en breid uit

Als uw organisatie geen open source databases gebruikt, heeft ze hoogstwaarschijnlijk ook geen ervaring met het beheren ervan. Hoewel dit mogelijk is via externe consultants, is het waarschijnlijk geen goed idee om uw hele omgeving naar open source-databases te migreren.

De betere aanpak zou zijn om te beginnen met kleine projecten. Misschien moet je een soort interne tool of website bouwen, misschien een soort monitoringtool - dat is een geweldige kans om open source-databases te gebruiken en ervaring op te doen met het gebruik ervan in echte omgevingen. Hierdoor leert u de ins en outs van een database kennen - hoe u een diagnose kunt stellen, hoe u de prestaties kunt volgen en hoe u deze kunt afstemmen om de prestaties te verbeteren.

Bovendien leer je meer over de high-availability opties en implementaties. Door ermee te werken, krijgt u ook inzicht in de verschillen tussen de eigen database die u gebruikt en de open source-databases die u voor kleinere projecten hebt geïmplementeerd. Na verloop van tijd zou u de voetafdruk van de open source-database in uw organisatie aanzienlijk moeten zien toenemen, samen met de ervaring van uw teams.

Op een gegeven moment, nadat je genoeg ervaring hebt verzameld om de open source databases te laten draaien, kun je besluiten de hendel over te halen en een migratieproject te starten. Een andere, ook zeer waarschijnlijke optie, is dat u uw activiteiten geleidelijk op projectbasis naar open source-databases zou verplaatsen. Uiteindelijk zullen uw bestaande applicaties die gebruik maken van propriëtaire RDBMS verouderd raken en uiteindelijk worden vervangen door nieuwe iteratie van de software, die afhankelijk is van open source databases.

Kies de juiste database voor de vacature

We hebben al vermeld dat open source databases doorgaans behoorlijk gespecialiseerd zijn. U kunt een gegevensopslag kiezen die geschikt is voor verschillende toepassingen:tijdreeksen, documentopslag, sleutelwaardeopslag, kolomopslag, tekst zoeken. Dit, in combinatie met de vorige tip, laat u precies het type database kiezen dat uw kleine project nodig heeft. Stel dat u een monitoringstack voor uw omgeving wilt bouwen.

Misschien wil je eens kijken in tijdreeksdatabases zoals Prometheus of TimeScaleDB om je bewakingsapplicatie van stroom te voorzien. Misschien wilt u een soort van analytische/big data-oplossingen implementeren. U zou een soort ETL-proces moeten ontwerpen om de gegevens uit uw hoofd-RDBMS te extraheren en in een open source-oplossing te laden. Er zijn talloze mogelijkheden om als datastore te gebruiken. Afhankelijk van de eisen en gegevens kunt u kiezen uit een breed scala aan databases, bijvoorbeeld Clickhouse, Cassandra, Hive en nog veel meer.

Hoe zit het met het verplaatsen van sommige delen van de applicatie van het propriëtaire RDBMS naar een open source-oplossing?

Daar zijn ook opties voor. Datastores zoals PostgreSQL of MariaDB hebben een groot aantal functies die verband houden met gemakkelijke migratie vanuit datastores zoals Oracle. Ze worden bijvoorbeeld geleverd met ondersteuning voor PL/SQL en andere SQL-functies die beschikbaar zijn voor Oracle. Dit is een grote hulp - er hoeft minder code te worden geconverteerd samen met de migratie van Oracle naar andere databases, het is waarschijnlijker dat uw opgeslagen procedures en functies ook grotendeels out-of-the-box zullen werken en u hoeft niet veel geld uit te geven hoeveelheid tijd om code te herschrijven, testen en debuggen die een kernlogica van uw toepassing vertegenwoordigt.

Je moet ook de middelen die je al in je team hebt niet vergeten. Misschien heeft iemand ervaring met meer populaire open source datastores? Als deze overeenkomen met uw vereisten en passen in uw omgeving, kunt u wellicht de bestaande kennis in uw team gebruiken en gemakkelijk overstappen naar de open source-wereld.

Overweeg om ondersteuning te krijgen

Migreren naar datastores waar je niet al te veel ervaring mee hebt, is altijd lastig. Zelfs als je met kleine stappen doorgaat, kun je nog steeds worden verrast door verrassingsgedrag, onverwachte situaties, bugs of zelfs gewoon operationele situaties waar je niet bekend mee bent.

Open source databases hebben doorgaans een geweldige community-ondersteuning - e-maillijsten, forums, Slack-kanalen. Meestal, als je erom vraagt, zal iemand je proberen te helpen. Dit kan in sommige gevallen niet voldoende zijn. Als dat het geval is, moet u op zoek gaan naar betaalde ondersteuning. Er zijn talloze manieren waarop dit kan worden bereikt.

Allereerst zijn niet alle open source-projecten gelijk. Grotere projecten, zoals PostgreSQL of MySQL, hebben mogelijk een ecosysteem van adviesbureaus ontwikkeld die experts inhuren die advies voor u kunnen doen. Als een dergelijke optie, om welke reden dan ook, niet beschikbaar of haalbaar is, kunt u altijd contact opnemen met de projectbeheerders.

Het is heel gebruikelijk dat het bedrijf dat de datastore ontwikkelt, u graag helpt tegen een prijs.

Onafhankelijke adviesbureaus hebben een belangrijk voordeel:ze zijn onafhankelijk en zullen een oplossing voorstellen op basis van hun ervaring, niet op basis van de datastore en tools die ze ontwikkelen. Verkopers, nou ja, ze zullen meestal hun eigen oplossingen en omgeving pushen. Aan de andere kant zijn leveranciers behoorlijk geïnteresseerd in het vergroten van de acceptatie van hun datastore. Als u migreert vanuit een propriëtaire datastore, is het mogelijk dat ze zich al meerdere keren in die situatie hebben bevonden, dus ze zouden u goede praktijken moeten kunnen bieden, u kunnen helpen bij het ontwerpen van het migratieproces, enzovoort. Voor een onervaren bedrijf kan toegang tot de experts op het gebied van migratie een grote troef zijn.

Het kan zijn dat toegang tot externe ondersteuning niet alleen nuttig is in de migratiefase. Omgaan met een nieuwe datastore is altijd lastig en het leren van alle aspecten van de bewerkingen kost veel tijd. Zelfs na de migratie kunt u nog steeds profiteren van iemand die u kunt bellen, vragen en, wat het belangrijkste is, van kunt leren. Trainingen, externe DBA, het zijn allemaal veelvoorkomende opties in de wereld van open source databases, vooral voor die grotere, meer gevestigde projecten.

Zoek een systeem of hulpmiddel om te helpen

Open source databases worden geleverd met een verscheidenheid aan tools, sommige meer of minder complex. Sommige voegen functionaliteit toe (hoge beschikbaarheid, back-ups, monitoring), andere zijn ontworpen om het databasebeheer te vergemakkelijken.

Het is belangrijk om er gebruik van te maken (adviescontracten kunnen hier nuttig zijn om u kennis te laten maken met de belangrijkste tooling voor de open source datastore van uw keuze), omdat ze uw operationele snelheid en de prestaties en stabiliteit van de hele opstelling.

Sommige tools zijn gratis, voor sommige is een licentie vereist, je moet in de pool kijken en kiezen wat het beste bij je past. We hebben het hier over load balancers, tools om replicatietopologie te beheren, virtuele IP-beheertools, clusteroplossingen, min of meer toegewijde monitoring- en observatieplatforms die alles kunnen volgen, beginnend met typische databaseprestatiestatistieken door slimme voorspellingen te geven op basis van de gegevens aan gespecialiseerde analyse van de queryprestaties.

De open source-wereld is waar dergelijke tools gedijen - dit heeft ook voor- en nadelen. Het is gemakkelijk om de "A"-tool te vinden, het is moeilijk om de "DE"-tool te vinden. Je kunt talloze projecten vinden op GitHub, waarbij iedereen bijna hetzelfde doet als anderen. Welke je moet kiezen, is het moeilijkste. Daarom zou u idealiter een helpende hand hebben bij een ondersteuningscontract of u kunt ook vertrouwen op beheerplatforms die u zullen helpen om meerdere aspecten van de bewerkingen op open source-databases te beheren, waaronder u helpen bij het standaardiseren en kiezen van de juiste tools voor dat.

Er zijn ook platforms zoals ClusterControl, dat is ontworpen om onervaren mensen te helpen de kracht van open source databases volledig te begrijpen. ClusterControl ondersteunt meerdere verschillende soorten open source datastores:MySQL en zijn smaken, PostgreSQL, TimeScaleDB of MongoDB. Het biedt een uniforme gebruikersinterface voor toegang tot beheerfuncties voor die datastores, waardoor het eenvoudig is om ze te implementeren en te beheren. In plaats van tijd te besteden aan het testen van verschillende tools en oplossingen, kunt u met ClusterControl eenvoudig een omgeving met hoge beschikbaarheid implementeren, back-ups plannen en metrische gegevens in het systeem bijhouden.

Hulpprogramma's zoals ClusterControl verminderen de belasting van uw team, waardoor ze beter kunnen begrijpen wat er gebeurt in de database waarmee ze niet zo vertrouwd zijn als ze zouden willen.

Neem de tijd

Het is goed om in gedachten te houden dat je je niet hoeft te haasten. De stabiliteit van uw omgeving en het welzijn van uw gebruikers staat voorop. Neem de tijd om de tests uit te voeren, verifieer alle aspecten van uw toepassing. Controleer of u over de juiste processen voor hoge beschikbaarheid en noodherstel beschikt.

Alleen als je er 100% zeker van bent dat je klaar bent om over te stappen, is het tijd om aan de hendel te trekken en over te stappen naar open source databases.


  1. Wat is het maximale aantal toegestane parameters per type databaseprovider?

  2. Problemen met de postgresql COPY-opdracht met Rails op een andere server

  3. Hoe roep ik een opgeslagen procedure met argumenten aan met sqlcmd.exe?

  4. Een sha1-hash van een rij maken in Oracle