Skip to Content
Gids

Wat zijn moderne apps? Een Definitieve Gids

Moderne apps maken gebruik van cloud-native technologieën zoals containers met agile en DevOps best practices om draagbaarheid, betrouwbaarheid en agility op schaal te leveren.

Wat zijn Containers?

Een moderne app is elke applicatie die is gebouwd en geïmplementeerd met de nieuwste technologieën, ontwikkelingsmethodologieën en best practices die beschikbaar zijn voor het leveren van een optimale gebruikerservaring. De moderne applicaties van vandaag zijn cloud-native. Ze zijn ontworpen als Microservices die met elkaar communiceren via API's, in tegenstelling tot nauw gekoppelde monolithische applicaties. Deze op Microservices gebaseerde applicaties maken doorgaans gebruik van cloud-native technologieën zoals containers en Kubernetes.

Moderne applicaties zijn gebouwd met agility, schaalbaarheid, portabiliteit en betrouwbaarheid in het achterhoofd.

Het zijn Microservices in plaats van monolithisch, waardoor ze schaalbaar, herbruikbaar en gebruiksvriendelijker zijn.

Ze worden vaak gebouwd in overeenstemming met agile ontwikkelingsmethodologieën en DevOps-best practices, met een zware nadruk op automatisering in de hele pijplijn van Doorlopende integratie en levering (CI/CD).

Hoe ziet dat eruit in termen van de huidige technologieën? In deze gids bekijken we de verschillende functies die een app modern maken.

Lees meer: Moderne app-ontwikkeling gedemystificeerd .

Wat zijn de voordelen van Containers?

In de traditionele benadering van applicatieontwikkeling worden applicaties gebouwd met enkele, nauw geïntegreerde codebases. Een Microservices-architectuur daarentegen omvat het ontwerpen van een app als een verzameling losjes gekoppelde diensten.

Deze ontwikkelingsaanpak heeft veel voordelen:

  • Zeer testbare code
  • Eenvoudiger te debuggen, onderhouden en updaten
  • Granulaire controle over provisioning van opslag- en computerresources
  • Betere foutisolatie, wat leidt tot veerkrachtigere toepassingen
  • Draagbaar en onafhankelijk inzetbaar. Componenten kunnen worden losgekoppeld van software- en hardwareomgevingen met virtualisatietechnologieën zoals containers.

Omdat u te maken hebt met een verzameling onafhankelijk inzetbare, modulaire diensten, is het mogelijk om aan één dienst te werken zonder de andere te verstoren. De mogelijkheid om te bouwen, testen, implementeren, onderhouden en upgraden op service-per-service-niveau verkort ook de ontwikkelingstijd aanzienlijk.

Wie heeft er baat bij het gebruik Containers?

Microservices-architectuur stelt ontwikkelaars in staat om het volledige potentieel van virtualisatietechnologieën zoals containers en virtuele machines te ontsluiten. Laten we eens kijken naar enkele van deze kernvirtualisatietechnologieën:

  • Virtuele machines (VM's): Schakel virtualisatie op hardwareniveau in (inclusief OS en hardware). Met een hypervisor kan een enkele server meerdere apps uitvoeren met verschillende afhankelijkheden van het besturingssysteem.
  • Containers: Schakel virtualisatie op softwareniveau in (nog steeds afhankelijk van een host OS kernel). Gestandaardiseerde software-eenheden die alle code en afhankelijkheden bevatten, waaronder binaries, bibliotheken en configuratiebestanden, zijn nodig om een dienst te kunnen uitvoeren.
  • Virtuele volumes (vVols): Zijn ontkoppelde datastores. Gecontaineriseerde applicaties kunnen sterk profiteren van gecontaineriseerde opslag. vVols kunnen 1:1 toewijzen aan gecontaineriseerde Microservices, waardoor knelpunten in de centrale database worden voorkomen.

Virtualisatie kan helpen de voordelen van een Microservices-architectuur voor moderne applicatieontwikkeling te verbeteren door u granulariteit te geven over de mate van isolatie die u aan uw Microservices geeft.

U kunt profiteren van virtuele machines om diensten met verschillende OS-afhankelijkheden op dezelfde machine uit te voeren. Of u kunt containers en vVols gebruiken om het aantal diensten dat u op één machine kunt uitvoeren aanzienlijk te verhogen.

Het belangrijkste is dat virtualisatie het gemakkelijker maakt om de provisioning en implementatie van Microservices en hun resources automatisch op aanvraag te schalen.

Lees meer over de afwegingen tussen virtuele machines en containers.

Containers en dataopslag

Om te begrijpen waarom u stateless containers zou willen koppelen aan serverloze architecturen, moeten we een paar termen definiëren:

  • Stateless: Een applicatie is stateless als deze geen informatie over de status van de ene runtime naar de volgende leest of opslaat (bijv. een calculator-app leest nul wanneer u hem opnieuw opent, zonder zich te herinneren van de laatste keer dat een berekening werd uitgevoerd).
  • Serverloos: Een applicatie is serverloos als een ontwikkelaar vertrouwt op een derde partij, zoals een cloudprovider, voor het beheer van serverresources, waarbij de details van serverbeheer worden abstraheerd.

De eerste containers waren door het ontwerp stateless omdat ze zo nodig konden ontstaan, hun werk konden doen en konden verdwijnen, waardoor resources voor de rest van de applicatie vrijkwamen. Evenzo houden moderne apps containers eenvoudig, zodat ze zo nodig kunnen worden ingezet.

In combinatie met een serverloze architectuur is het voor applicatieontwikkelaars mogelijk om functies aan te roepen die resources op aanvraag beschikbaar stellen zonder de onderliggende infrastructuur zelf te hoeven beheren. Het combineren van stateless containers met serverloze architecturen vereenvoudigt de ontwikkeling van zeer schaalbare applicaties aanzienlijk. Dit is met name geschikt voor edge computing-omgevingen waar edge-apparaten voortdurend data streamen als reactie op gebeurtenissen. De stateless/serverless combinatie maakt het voor apps gemakkelijk om direct aanpassingen aan te brengen in reactie op realtime informatie.

Dat gezegd hebbende, hoe complexer uw applicatie, hoe waarschijnlijker het is dat u nog steeds persistente opslag nodig hebt voor uw gecontaineriseerde Microservices. Om deze reden vereenvoudigen data-opslag oplossingen zoals Portworx ® de persistente opslaglevering aan stateful containerized apps. 1:1 mapping van agile datastores kan de schaalbaarheid verbeteren en ervoor zorgen dat de status behouden blijft terwijl uw applicatie draait.

Wat zijn containerorkestratie en containerbeheer?

Moderne apps zijn cloud-native apps. Losjes gekoppeld aan de onderliggende infrastructuur die nodig is om ze te ondersteunen, kunnen ze profiteren van de volledige voordelen van cloud-ecosystemen zoals Amazon Web Services (AWS), Google Cloud en Microsoft Azure.

Dus wat maakt een app cloud-native onder de motorkap? De combinatie van een Microservices-architectuur met virtualisatietechnologieën en serverloos computergebruik betekent dat moderne apps dynamisch kunnen worden aangeboden op basis van de vraag van de gebruiker. Deze Microservices kunnen onafhankelijk communiceren via API's die worden beheerd via een servicelaag.

Cloud-native apps profiteren ten volle van cloud computing-implementatiemodellen zoals software as a service (SaaS), platform as a service (PaaS) en infrastructuur as a service (IaaS). Deze modellen vervangen het traditionele CAPEX-betalingsmodel wanneer u een vaste prijs betaalt voor middelen die u al dan niet gebruikt met OPEX-betalingsmodellen wanneer u betaalt voor middelen wanneer u ze gebruikt.

Lees meer over wat het betekent om cloud-native te zijn.

Wat is Docker?

Een groot verschil tussen moderne apps en legacy-apps zit in hun ontwikkelings- en implementatiefilosofieën.

Bij de traditionele aanpak van app-ontwikkeling begint u met een lineair overkoepelend plan en houdt u zich eraan. Ontwikkeling loopt van het verzamelen van vereisten door duidelijk gedefinieerde fasen tot u de volledige applicatie in productie zet. De communicatie tussen ontwikkelaars, operators, belanghebbenden en eindgebruikers wordt beperkt door lange softwareontwikkelingslevenscycli (SDLC). Codebases zijn monolithisch; patches zijn groter; en pogingen om een bugfix uit te rollen, een nieuwe functie toe te voegen of onderliggende technologie bij te werken zijn kwetsbaar voor langdurige verstoringen van diensten of onverwachte bijwerkingen die moeilijk op te lossen kunnen zijn.

De moderne app-oplossing? Overstappen van monolithische systemen naar Microservices met agile en DevOps best practices.

Agile ontwikkeling hanteert een iteratieve benadering van softwareontwikkeling. In combinatie met Microservices stelt dit ontwikkelaars in staat om functies stapsgewijs te bouwen, te testen en te implementeren over meerdere ontwerpiteraties. De SDLC wordt strak gehouden, waardoor nauwere feedbacklussen van communicatie tussen eindgebruikers, belanghebbenden en ontwikkelaars mogelijk zijn. Populaire agile ontwikkelingsmethodologieën omvatten Scrum, Extreme Programming (XP) en testgedreven ontwikkeling (TDD).

DevOps is een praktijk en cultuur voor softwareontwikkeling die ontwikkelaars- en operationele teams binnen een organisatie nauw integreert. De SDLC is opnieuw ontworpen als een CI/CD-pijplijn die gebruik maakt van configuratiebeheer, automatisering en realtime monitoring om de ontwikkeling, het testen en de implementatie van software te stroomlijnen.

Van moderne apps wordt verwacht dat ze te allen tijde zeer beschikbaar en performant zijn. Ze kunnen het zich niet veroorloven om onderbrekingen in de service te hebben die worden veroorzaakt door monolithische patches, updates of bugs. Daarom maken moderne apps gebruik van agile ontwikkelingsmethodologieën en DevOps bestpractices om ervoor te zorgen dat ze up-to-date en concurrerend blijven in een snel veranderend digitaal landschap.

Lees meer over hoe moderne apps de time-to-market verkorten.

Wat is Kubernetes?

In een steeds digitaler wordende wereld staat dataprotectie voorop. De voordelen van dataprotectie van moderne apps zijn onder andere:

  • Code-isolatie, wat het voor hackers moeilijk maakt om het hele systeem in gevaar te brengen 
  • Modulaire architectuur, die zorgt voor strengere incrementele beveiligingstests gedurende de gehele SDLC. 
  • CI/CD-pipelines, die zorgen voor nauwere feedbackloops tussen ontwikkelaars en gebruikers, waardoor  ontwikkelaars snel kwetsbaarheden kunnen patchen wanneer ze verschijnen
  • Gestroomlijnd disaster recovery - Microservices kunnen onafhankelijk worden geback-upt en hersteld met minimale tot geen verstoring van de gehele applicatie
  • Verbeterde best practices op het gebied van beveiliging, zoals DevSecOps

Moderne apps zijn uitgerust om moderne veiligheidsbedreigingen aan te kunnen. Nauwere ontwikkelingscycli en communicatiefeedbacklussen stellen ontwikkelaars in staat om bugs en kwetsbaarheden te identificeren en aan te pakken voordat ze kunnen worden geëxploiteerd.

Lees meer: De voordelen van dataprotectie van moderne apps

NEEM CONTACT MET ONS OP
Vragen, opmerkingen?

Hebt u een vraag of opmerking over Pure-producten of certificeringen?  Wij zijn er om te helpen.

Een demo inplannen

Plan een livedemo in en zie zelf hoe Pure kan helpen om jouw data in krachtige resultaten om te zetten. 

Bel ons: 31 (0) 20-201-49-65

Media: pr@purestorage.com

 

Pure Storage

Herikerbergweg 292

1101 CT . Amsterdam Zuidoost

The Netherlands

info@purestorage.com

Sluiten
Uw browser wordt niet langer ondersteund!

Oudere browsers vormen vaak een veiligheidsrisico. Om de best mogelijke ervaring te bieden bij het gebruik van onze site, dient u te updaten naar een van deze nieuwste browsers.