Per què les bases de dades necessiten API – The New Stack

Una aplicació no val gaire fins que no es posa en producció. Per als desenvolupadors, arribar ràpidament a aquest punt significa un accés fàcil a les dades amb les quals han de crear, sense haver de preocupar-se pels detalls de la creació, gestió i manteniment de bases de dades.

Les API s’han convertit en l’estàndard de facto per connectar aplicacions a bases de dades, però no sempre ha estat així. Aquí parlarem del que ha canviat al món del programari per augmentar la importància d’exposar les bases de dades com a API, i parlarem de Stargate, el projecte de codi obert que simplifica com els desenvolupadors poden treballar amb aquestes API. La darrera versió de Stargate, que inclou millores en escalabilitat i flexibilitat, s’ha llançat avui.

Com creem programari que utilitza bases de dades

Els administradors de bases de dades (DBA) solien ser els encarregats de les consultes, ja que requeria un expert en bases de dades per dissenyar la manera com els desenvolupadors interactuaven amb les dades. Però fins fa poc, s’esperava que els desenvolupadors sabien molt sobre la interacció amb bases de dades, encara que no fossin experts en SQL, consultes o models de dades.

Vaig ser un desenvolupador competent als anys noranta, però les bases de dades em van intimidar. Vaig trigar anys a sentir-me còmode treballant amb SQL. Simplement oferir un “SQL semblant” tampoc és suficient. Preneu CQL (Cassandra Query Language), que es va desenvolupar per oferir un llenguatge de consulta similar a SQL per comunicar-vos amb Apache Cassandra. La idea era proporcionar una abstracció per comunicar-se amb Cassandra, facilitant-ho a aquells que es sentissin amb bases de dades relacionals.

Però al món de les xarxes, tenim nous conceptes d’identitat, permisos i seguretat que estan completament separats del llenguatge de consulta. La noció d’un controlador que es comunica simplement amb un protocol binari no funciona bé al núvol. HTTP és el protocol de capa d’aplicació fonamental per al núvol, però la majoria de les API basades en HTTP són lentes. Una opció de baixa latència, com gRPC, és fonamental per a les comunicacions en temps real en sistemes distribuïts.

Com el programari parla amb el programari

La forma estàndard que utilitzaven els clients o els servidors d’aplicacions per parlar amb les bases de dades implicava controladors que s’executaven al centre de dades. Ara tot funciona al núvol, però els desenvolupadors escriuen en una àmplia gamma d’idiomes. Es poden utilitzar JavaScript, Python o qualsevol d’una gran quantitat de marcs diferents, de manera que els mitjans pels quals el programari accedeix a les dades s’han d’abstraure de maneres diferents dels controladors de bases de dades clàssics, utilitzant API (JSON, gRPC, GraphQL o Document) que els desenvolupadors se senten còmodes.

La manera moderna en què el programari parla amb el programari és una API; és la capa d’abstracció que amaga les complexitats de la base de dades.

La naturalesa de les dades

Les dades solien ser molt més uniformes; s’adapta perfectament a les files i columnes de les taules de bases de dades. Però la dinàmica de les dades ha canviat. Les dades es mouen de les representacions en memòria de tornada a la base de dades d’una manera perfecta sense gaire programari intervingut. I estem tractant amb nous tipus de formats de dades que són molt més robusts que els primitius de dades amb els quals la gent solia tractar, o la mitja dotzena de tipus de dades que podia gestionar SQL.

API de bases de dades

Les API són com els desenvolupadors actuals treballen amb bases de dades. Aquí teniu un resum del perquè:

  • HTTP és el protocol de xarxa del núvol. Molts desenvolupadors ja estan familiaritzats amb les API web i l’ús d’HTTP fa que el desplegament d’aplicacions al núvol sigui molt més fàcil.

  • No cal instal·lar i executar bases de dades localment. La instal·lació d’una base de dades localment requereix esforç i crea un altre entorn en el qual s’han de depurar els problemes.

Una porta d’entrada a la simplicitat, l’escalabilitat i l’extensibilitat

Una passarel·la d’API de dades és una peça d’infraestructura de programari que proporciona accés a dades mitjançant API de diversos estils, com ara REST, gRPC i altres. La passarel·la resumeix els detalls de l’emmagatzematge i la recuperació de dades mitjançant un o més magatzems persistents. Això permet als desenvolupadors d’aplicacions centrar-se a escriure serveis empresarials que accedeixen a les dades mitjançant API fàcils d’utilitzar en lloc d’haver d’aprendre les complexitats d’un llenguatge de consulta de bases de dades.

Stargate és una passarel·la d’API de dades de codi obert que es troba entre una aplicació i les bases de dades que necessita per consultar. Es va presentar per primera vegada el setembre de 2020 i Apache Cassandra va ser escollida com a primera base de dades, en part perquè resol els reptes d’escalabilitat i disponibilitat més difícils del món.

Una passarel·la d’API de dades és una manera potent de permetre als vostres desenvolupadors treballar en marcs i estructures que coneixen, proporcionant una sèrie de compensacions entre productivitat i rendiment. Stargate ofereix el poder de Cassandra presentant REST, Document i GraphQL com a API simples. També ofereix un conjunt de biblioteques gRPC per fer CQL sobre gRPC com una alternativa més fàcil, lleugera i més amigable amb el núvol als controladors natius per a CQL sense sacrificar el rendiment.

Aquest any, l’equip d’enginyeria de Stargate de DataStax ha estat treballant en una actualització arquitectònica de Stargate. Stargate v2, com l’anomenem, s’ha llançat avui. A partir dels comentaris de la comunitat de desenvolupadors de Stargate, a Stargate v2 hem fet algunes actualitzacions significatives que faciliten l’ús dels desenvolupadors i la contribució de la comunitat al projecte. El més important és que l’API gRPC d’alt rendiment de Stargate v2 pot oferir una velocitat equivalent als controladors de bases de dades natius. Això permet als desenvolupadors utilitzar protocols de xarxa compatibles amb el núvol com HTTP per connectar aplicacions i bases de dades, sense pèrdua de rendiment per cable.

Ampliable i Adaptable

Cap estratègia de dalt a baix o API del mes ha sobreviscut mai al contacte amb un gran grup de desenvolupadors. Un objectiu clau de Stargate v2 és permetre a la comunitat afegir nous serveis d’API de manera ràpida i senzilla fent que la implementació sigui més fàcil d’entendre, depurar, millorar i ampliar.

Afegir un nou servei d’API ara és molt més senzill, i el codi font dels serveis REST, GraphQL i Document API ofereix als desenvolupadors un codi d’exemple instructiu que mostra com hauria de ser un servei d’API acabat.

El nivell de l’API hauria de ser multimodel; els desenvolupadors volen trobar la seva API preferida fàcilment disponible, en lloc de veure’s obligats a adaptar el seu treball de desenvolupament a una API diferent. I si l’API no està disponible, el nivell d’API s’hauria de poder adaptar.

Núvol-natiu

Llançar codi davant d’una base de dades fa anys que es fa. Però, en realitat, construir una plataforma que pugui escalar amb la vostra base de dades, i que sigui adaptable i fiable, és una cosa nova. Si utilitzeu Cassandra, probablement ja sou una aplicació de gran creixement o aspireu a convertir-se en una. Així que tot el que hi ha al davant ha de facilitar un entorn de gran creixement. Stargate va començar com una bifurcació del codi del coordinador de Cassandra, de manera que hereta gran part de la fiabilitat i disponibilitat per les quals Cassandra és ben coneguda.

El nivell d’API ha de ser totalment capaç d’operar a escala, de manera que un altre objectiu de Stargate v2 era fer-lo més amigable amb el núvol. Diversos canvis per facilitar l’escalabilitat de Stargate inclouen:

  • Stargate ara està totalment en contenidors i s’executa dins dels pods de Kubernetes, cosa que ofereix als operadors més control sobre com es poden escalar les càrregues de treball.

  • Els serveis de l’API s’han traslladat fora del node monolític Stargate a microserveis separats, que permetran escalar cada API de manera independent.

  • Els nodes d’emmagatzematge i els nodes de coordinació es poden desplegar i escalar de manera independent, la qual cosa també ofereix als operadors més control sobre com es poden escalar les càrregues de treball.

Si una càrrega de treball requereix consultes o emmagatzematge, es pot ajustar sense recórrer a escalar tot el clúster en conjunt.

Desenvolupar amb alguna cosa familiar

Els serveis de dades al núvol s’han convertit en el tema dominant al món de la tecnologia, per la qual cosa no és d’estranyar que els desenvolupadors tendeixin a pensar en termes d’abstraccions de dades com JSON en lloc d’idiomes únics a bases de dades particulars. Stargate és la culminació d’un munt de treball dur per conèixer els desenvolupadors on es trobin, cosa que els permet treballar en marcs i estructures que els coneixen.

Més informació sobre Stargate aquí.

Grup Creat amb Sketch.

Leave a Comment

Your email address will not be published. Required fields are marked *