Konfigurera en grundläggande tjänst

Slutförd

Eftersom molnbaserade program inte kräver någon specifik teknik för sina enskilda komponenter kan du basera implementeringsinformationen på dina inställningar. Dessutom kan du med många molnerbjudanden som Azure Database for PostgreSQL använda samma versioner av tekniker med öppen källkod som du är bekant med. De använder också den underliggande plattformen för att minimera administrativa kostnader som är associerade med deras användning.

Du kommer att utnyttja dessa fördelar när du skapar din lösning. Till att börja med implementerar du en Express.js-baserad webbtjänst med REST API-vägar som ger åtkomst till den nyligen distribuerade PostgreSQL-databasen.

Vilka är fördelarna med modulär design?

Modulariseringsprincipen för tjänstemodellen ger en hög grad av separation mellan enskilda tjänster. Du kan uppgradera, distribuera, skala och starta om varje tjänst oberoende av varandra, utan att påverka andra tjänsters tillgänglighet eller prestanda. Detta främjar i sin tur tillämpningen av DevOps-metoder i dina programs livscykel. Resultatet påskyndas av nya funktionsutgåvor som underlättas av små, frekventa och inkrementella ändringar.

Med den lösa kopplingen av tjänster kan du ändra den underliggande tekniken utan att tvinga fram betydande kodomskrivningar för hela programmet. Express.js-serverdelstjänsten kan till exempel containeriseras och distribueras till ett Kubernetes-kluster, vilket gör att den kan skalas dynamiskt baserat på efterfrågan. Ett annat alternativ är att distribuera den som en containerbaserad eller kodbaserad Azure App Service-webbapp, som också stöder automatisk skalning.

På samma sätt kan du ändra serverdelstjänsten så att den ansluter till en annan databas, vilket kan vara beroende av samma uppsättning bibliotek. De vanligaste objektrelationsmappningsbiblioteken som är tillgängliga med Node.js, till exempel Prisma eller Sequelize, stöder en rad relationsdatabasprodukter. Dessa inkluderar PostgreSQL, MariaDB och Microsoft SQL Server.

En annan fördel med modulär design är dess utökningsbarhet. Du har möjlighet att lägga till en annan komponent, till exempel en hanteringstjänst som är tillgänglig med en Next.js-webbapp och containerisera den utan betydande ändringar i det befintliga programmet.

The high-level architecture of the sample basic service.

Hur implementerar jag en grundläggande tjänst?

De två arkitekturmönster som ofta utgör grunden för att skapa och optimera tjänster är domändriven design (DDD) och CQRS (Command and Query Responsibility Segregation). Dessa mönster påverkar också hur molnbaserade program modelleras.

DDD är en metod för programutveckling som fokuserar på programmets funktioner för att definiera gränser mellan tjänster. CQRS kombineras ofta med DDD. Syftet är att ersätta den crud-baserade metoden (create, read, update, and delete), som förlitar sig på ett enda gränssnitt för alla datahanteringsuppgifter. I stället separerar CQRS läs- och uppdateringsåtgärder för ett datalager. Detta ger ytterligare ett lager av isolering som överensstämmer med lokalen bakom DDD.

Målet är att ändra den befintliga Express.js-baserade webbtjänsten för att ge åtkomst till en PostgreSQL-databas. Express.js är ett ramverk för serverdelswebbprogram med öppen källkod för Node.js. Det förenklar skapandet av webbprogram och API:er. Node.js är en JavaScript-körningsmotor för att skapa klient- och serverprogram. Express.js har en modulbaserad arkitektur som förenklar implementeringen av en mängd olika uppgifter. Dessa omfattar traditionell webbutveckling och åtkomst till databaser som MongoDB och PostgreSQL.

Du kan använda flera metoder för att komma åt en PostgreSQL-databas från Express.js-program. De mest populära sätten är att använda objektrelationsmappningsbibliotek, som mappar programmatiska konstruktioner till motsvarande databasschema. Den här metoden underlättar portabiliteten och ger ett abstraktionslager mellan de faktiska databasobjekten och deras tjänstbaserade representation.

De metoder som implementeras av Express.js-programmet exponeras via vägar, som definierar hur programmets slutpunkter svarar på klientbegäranden. När du implementerar dem bör du överväga att tillämpa principerna för CQRS, även om detta kanske inte är tillämpligt på grundläggande tjänster på grund av ökad komplexitet.