De juiste technologiestack kiezen voor softwarearchitectuur
Lucid Content
Leestijd: ongeveer 8 min
De wereld draait tegenwoordig vooral op software. Wereldwijd zijn er immers bijna 15 miljard digitale apparaten in gebruik. Dat zijn bijna twee apparaten voor elke persoon ter wereld. En dan hebben we het nog niet over pc's en laptops. Daarnaast zijn er op elk van deze apparaten ongeveer 35 apps geïnstalleerd.
Dus als je wilt concurreren op de wereldwijde softwaremarkt, heb je een goede infrastructuur nodig. Je moet er ook voor zorgen dat je over de juiste technologie beschikt om je softwarearchitectuur te bouwen, te onderhouden, bij te werken en te optimaliseren.
In dit artikel bespreken we een aantal aandachtspunten bij het kiezen van tools voor je softwarearchitectuur. We zullen ook een lijst maken van enkele populaire technologieën die momenteel in gebruik zijn, om je te helpen een keuze te maken voor een software development stack die geschikt is voor jou.
Wat is een technologiestack, ofwel tech stack?
Een technologiestack, of tech stack, is een lijst van de software, frameworks, technologieën, programmeertalen enz. die worden gebruikt om je software of dienst te bouwen. Je tech stack zal technologieën moeten bevatten om te helpen bij de ontwikkeling van de frontend (clientzijde) en backend (serverzijde) delen van je product.
De frontend
De frontend is het deel van het programma waar de eindgebruikers mee interageren. Het bevat elementen voor de gebruikerservaring en de tools die nodig zijn om gebruikers te helpen om datgene te doen waarvoor zij je software nodig hebben. Deze elementen zijn doorgaans gecodeerd met talen die gemakkelijker te gebruiken en te begrijpen zijn, zoals HTML, CSS en JavaScript. Bootstrap is een populair framework voor HTML en CSS.
JavaScript-frameworks worden gebruikt om interactieve gebruikersinterfaces te maken. De drie populairste JavaScript-frameworks zijn React, Angular en Vue.
De backend
De backend vergemakkelijkt de communicatie tussen de verschillende componenten van de toepassing. Deze communicatie helpt alle componenten te begrijpen hoe ze moeten reageren op gebruikersinteracties. De onderdelen van de backend bestaan uit programmeertalen, databases en servers.
Veelvoorkomende programmeertalen zijn Ruby, JavaScript, PHP, Python en Scala. De database is essentieel voor het opslaan van de gegevens die de gebruikers nodig hebben. De database slaat bijvoorbeeld de contactinformatie van een gebruiker op. Populaire databases zijn MySQL, PostgreSQL en MongoDB.
Servers verwerken verzoeken van de gebruikers en reageren erop. De meest populaire servers zijn Nginx en Apache.
Criteria voor het kiezen van software architecture tools
Net zoals er een sterke basis nodig is om een gebouw te ondersteunen, heb je een sterke technologie stack nodig om je bedrijfsinfrastructuur te ondersteunen. Alles wat je bedrijf doet zal gebaseerd worden op deze tech stack.
Er is geen universele tech stack. Wat je gebruikt, hangt af van wat je wilt bereiken. En omdat er zo veel verschillende tools zijn, kan het een beetje ontmoedigend zijn om de juiste te vinden. Om je te helpen de juiste tools te kiezen, moet je rekening houden met de volgende criteria:
Wat is de behoefte?
Kies niet voor technologie omdat het de volgende grote trend is. Er moet een behoefte zijn die door de technologie kan worden vervuld. Het beantwoorden van de volgende vragen kan je helpen de juiste tools voor je bedrijf te kiezen.
Waar hebben we de technologie voor nodig?
Stel je prioriteiten op basis van de bedrijfsbehoeften. Als het maken van een architectuurdiagram bijvoorbeeld een prioriteit is, kijk dan eens naar tools waarmee je een softwarearchitectuurdiagram kunt maken, zoals Lucidchart.
Is het flexibel genoeg om mee te groeien met de langetermijnvisie van het bedrijf?
De technologie kan een acuut probleem oplossen, maar als hij niet flexibel is en niet kan meegroeien met je behoeften, moet je op zoek naar iets anders.
Hebben we echt iets nieuws nodig?
Als je huidige architectuur en ondersteunende software goed werken, verander dan niet zomaar.
Het soort project waaraan je werkt, zal ook bepalen welke technologie je nodig hebt. Een eenvoudig project zoals een landingspagina kan bijvoorbeeld worden gerealiseerd met eenvoudige HTML en CMS. Een complexer project, zoals een sociaal netwerk, zal een mix van programmeertalen en robuuste frameworks zoals React of Angular vereisen.
Hoeveel zal de technologiestack kosten?
Hoewel het klopt dat je geld moet uitgeven om geld te verdienen, is het toch belangrijk om je bewust te blijven van het budget van je bedrijf wanneer je onderzoek doet naar tools voor softwarearchitectuur. Als je weet wat het budget is, voorkom je dat je tijd en moeite verspilt aan producten waar het bedrijf niet voor wil betalen.
Een andere kostenoverweging zijn de werknemers. Als de technologie relatief gemakkelijk te gebruiken is, is de kans groot dat je huidige personeel ermee kan werken. Maar als de technologie ingewikkeld en moeilijk aan te leren is, moet je misschien een hoge prijs betalen om specialisten en experts in te schakelen.
Licenties zijn een ander kostenplaatje dat je moet bekijken. Is het een opensourcelicentie? Geldt de licentie per gebruiker, per netwerk, per maand, per jaar?
Is de technologie volwassen?
Voor langetermijndoelen en essentiële projecten is het beter om een volwassen technologie te gebruiken. Je moet kijken naar:
- Hoeveel jaar bestaat deze technologie al?
- Hoeveel releases zijn er geweest?
- Wie gebruikt het momenteel? Als je concurrenten de technologie reeds met succes gebruiken, is ze waarschijnlijk volwassen genoeg om ook voor jou te werken.
- Is het goed onderhouden?
De Tiobe-index is een goede plek om de huidige technologietrends te bekijken. Deze index wordt elke maand bijgewerkt en bevat de populairste programmeertalen die momenteel in gebruik zijn. Het is een goed vertrekpunt om na te gaan welke technologieën in gebruik zijn en volwassen genoeg zijn voor je behoeften.
Is het compatibel met bestaande tools?
Als je nog steeds gebonden bent aan bepaalde oude tools en technologieën, moet je nagaan hoe goed de nieuwe technologie daarmee zal werken. Als de integratie van een nieuwe stack een enorme aanpassing van de bestaande infrastructuur vereist, is het misschien niet de juiste stack voor jou. Je zult ook moeten kijken naar de bestaande tools om te zien of ze kunnen worden geüpgraded of opgeschaald om met nieuwe toepassingen te werken.
Is de technologie schaalbaar?
Is je product bedoeld om op te schalen? Als dat zo is, dan wil je er zeker van zijn dat het gebouwd is op een stevige basis die gemakkelijk mee kan schalen met je product.
Bedrijven maken gebruik van verticale of horizontale schaling om hun prestaties te verbeteren. Verticale schaling verwijst naar het toevoegen van meer dingen (processen, programma's enz.) aan één enkele computer. Horizontale schaling verwijst naar het toevoegen van meer hardware (zoals servers) aan het systeem. Om je te helpen om de tech stack te vinden waarmee je kunt schalen zonder te bezwijken, moet je deze vragen eens overwegen:
- Kan ik met de tech stack schalen om aan de prestatievereisten te voldoen?
- Hoe gemakkelijk is het om horizontaal op te schalen?
- Hoe goed schaalt het verticaal op vergeleken met andere opties?
Is de technologie veilig?
Beveiliging moet altijd een aandachtspunt zijn tijdens de projectontwikkeling. Je wilt dat geautoriseerde gebruikers gemakkelijk toegang hebben tot wat ze nodig hebben en tegelijkertijd nieuwsgierige blikken buiten houden. Denk aan het volgende bij het zoeken naar beveiligingsoplossingen:
- Identiteits- en toegangsbeheer en op rollen gebaseerde toegangscontrole
- Inbraakpreventie
- Preventie van gegevensverlies
Zijn er derde partijen?
Als je producten en diensten zullen worden gehost door een cloudservice van derden, moet je technologie stack compatibel zijn met hun technologie om een vlotte implementatie en updates mogelijk te maken.
Hoe goed is de technologie gedocumenteerd?
We horen de hele tijd dat niemand de documentatie leest. Maar documentatie kan ervoor zorgen dat goede tools voor softwarearchitectuur geweldig worden door extra informatie, voorbeelden, scenario's en andere details te geven die het gemakkelijker maken om ze te leren en te gebruiken. Aan de andere kant kunnen de beste bibliotheken en frameworks ter wereld nutteloos zijn als niemand weet hoe je ze moet gebruiken.
De documentatie moet duidelijk en beknopt zijn, en gemakkelijk te gebruiken en te begrijpen door de doelgroep.
Het is ook zeer belangrijk om alles wat je maakt met je gekozen technologie stack te documenteren. Laat die belangrijke informatie niet in iemands hoofd zitten. Documenteer alles, zodat de informatie niet verloren gaat wanneer mensen op zoek gaan naar andere mogelijkheden. Lucidscale is een geweldige tool om je cloudarchitectuur automatisch te documenteren en te visualiseren.
Evolutie van de tech stack
Technologie verandert voortdurend. Het zal je dan ook niet verbazen dat je tech stack regelmatig moet worden bijgewerkt om met de tijd mee te gaan. Soms zal de verandering drastisch zijn en vereisen dat je een volledige revisie uitvoert, zoals het vervangen van verouderde technologie. Maar meestal zijn de veranderingen subtieler met een upgrade hier of daar. Wees in ieder geval altijd bereid om wijzigingen aan te brengen als dat nodig is.
Concentreer je op belangrijke clouddetails met Lucidscale om kritieke delen van je architectuurdiagram te filteren en te bekijken.
Meer informatieOver Lucidchart
Lucidchart, een slimme diagramapplicatie in de cloud, is een kernonderdeel van Lucid Software's pakket voor visuele samenwerking. Met deze intuïtieve cloudgebaseerde oplossing kunnen teams in realtime samenwerken om flowcharts, mockups, UML-diagrammen, kaarten van customer journeys en meer te maken. Lucidchart stuwt teams vooruit om sneller aan de toekomst te bouwen. Lucid is trots op zijn diensten aan belangrijke bedrijven over de hele wereld, waaronder klanten als Google, GE en NBC Universal, en 99% van de Fortune 500. Lucid werkt samen met brancheleiders, waaronder Google, Atlassian en Microsoft. Sinds de oprichting heeft Lucid talrijke onderscheidingen ontvangen voor zijn producten, bedrijfsvoering en werkcultuur. Ga voor meer informatie naar lucidchart.com.