Ontwikkeling Prindustry platform 3.0

By 17 maart 2020Blog, Technologie
Ontwikkeling Prindustry platform 3.0

Van een monoliet naar microservices

Als IT bedrijf moet je up to date blijven. Er komen continu nieuwe technologieën bij. Je moet regelmatig je technologie onder de loep nemen en waar nodig vervangen. Prindustry werkt in 2020 aan een nieuwe versie van haar platform.

Van 2.0 naar 3.0

In het huidige Prindustry systeem zijn in de loop der jaren talloze functies bijgekomen. Het systeem betreft inmiddels een enorm omvangrijke applicatie dat jarenlang is doorontwikkeld, waardoor de schaalbaarheid in gevaar is gekomen. In de nieuwe versie van het platform komt er vanaf de basis een compleet andere infrastructuur, gebouwd op de populaire microservices technologie. Deze volgende fase staat in het teken van het optimaliseren van snelheid, schaalbaarheid en gebruikersgemak. De gebruikerservaring staat centraal. Minder kliks, sneller en makkelijk navigeren, een duidelijke flow en meer mogelijkheden.
Natuurlijk betekent dat niet dat het huidige systeem, versie 2.0, stilstaat. Het grootste deel van het developersteam is nog bezig met het doorontwikkelen van 2.0. Alle portals moeten naar tevredenheid werken en we willen de huidige irritaties wegwerken.

Microservices

Versie 3.0 bouwen we op microservices. Microservices zijn een software-ontwikkelingstechniek die één grote applicatie rangschikt als een verzameling van meerdere, kleinere applicaties. Elke applicatie – of: microservice – vormt een onderdeel van het Prindustry platform. Denk bijvoorbeeld aan onderdelen als orders, producten, zoekfunctie, winkelwagen of klanten. De voornaamste voordelen: een betere performance door een sneller systeem, beter onderhoudbare software, effectievere ontwikkelingsteams en schaalbaarheid. Bedrijven als Netflix, Uber of Amazon zijn ons succesvol voorgegaan met het herontwikkelen van hun complexe, grote systemen op microservices.

van monoliet naar microservies

De grote voordelen

Snelheid

Met een microservices architectuur wordt het 3.0 platform modulair opgebouwd, met op zichzelf staande componenten. De services werken samen, maar zijn niet afhankelijk van elkaar. Wanneer je als gebruiker niet alle services nodig hebt, zal het platform ook niet alle onderdelen inladen. Dit in tegenstelling tot het monolithische 2.0 systeem waarbij er één centraal systeem is en altijd alles geladen wordt.

Beter software-onderhoud

Er kan sneller ontwikkeld en getest worden dan bij grote, logge applicaties. Ook spoor je bugs sneller op, omdat de kleinere applicaties overzichtelijker te inventariseren zijn. Bij een fout werkt slechts één individuele applicatie niet. Daardoor kan een developer de bug efficiënter achterhalen en oplossen. Ook het live gaan van nieuwe features zal makkelijker verlopen, omdat ze onafhankelijk in te zetten zijn. Dit vermindert downtime of grote verstoringen.

Effectievere ontwikkelingsteams

Developers kunnen effectiever aan de slag met één microservice. Bij één grote applicatie wordt er gewerkt met een groot team en is er veel communicatie nodig tussen de mensen van het project. Kleinere services worden ontwikkeld en onderhouden door kleine, autonome teams met volledige focus op de microservice. Dit sluit aan bij een Agile-manier van werken in scrumteams. Met een Agile werkwijze werken medewerkers kort en cyclisch, waardoor sneller en beter ontwikkelen aan features mogelijk is.

Schaalbaarheid

Toekomstige groei vormt geen belemmering. Een schaalbare IT-infrastructuur is geschikt om snel aangepast te worden aan de actuele vraag. De 3.0 versie kan bij toenemende vraag elke service, onafhankelijk van elkaar, automatisch opschalen. Afschalen kan natuurlijk ook, indien dit gewenst is.

Nieuwe feature in 3.0: vergelijkingstool

In het nieuwe systeem zijn er veel uitbreidingsmogelijkheden voor nieuwe functionaliteiten. Een belangrijke is de reeds gecommuniceerde Print Connector. Deze vergelijkingstool gaat veel gemak opleveren voor onze resellers. In deze tool hebben we alle grafische productopties gestandaardiseerd van de leveranciers die hun producten via ons platform aanbieden. We zijn in 2019 te enthousiast geweest met communiceren hierover. Deze tool past bij uitstek in het nieuwe systeem. Door deze nieuwe techniek, een nieuwe manier van data opslaan en productsamenstelling, zullen alle producten en productopties sneller ingeladen worden.

Het 3.0 ontwikkelproces

developen platformHet gaat om omvangrijke projecten wanneer je overgaat naar een andere software-architectuur. Dergelijke immense softwareprojecten kennen een stapsgewijs traject met een hoop hindernissen. Wanneer je een systeem op microservices goed ontwikkelt, staat de infrastructuur echter als een huis. We hopen gedurende 2020 per micro-applicatie, flow of toepassingsgebied, testgroepen samen te stellen te testen en optimaliseren. Eind 2020 hopen we de eerste gebruikers op het nieuwe systeem (over) te zetten. Tot die tijd geldt dat we nog steeds de meeste developersuren inzetten voor het huidige 2.0 systeem.

Kleine verklarende woordenlijst

 

Applicatie
Een applicatie betekent letterlijk: toepassing. Het gaat om een softwareprogramma dat bedoeld is voor gebruik op de computer, tablet of smartphone. Een applicatie is gericht op eindgebruikers. Voorbeelden zijn Word, PhotoShop, Netflix, Amazon, Outlook, Skype of Print.com.

Bug
Een bug is een programmeerfout in een computerprogramma of een website, waardoor het zijn functie niet (geheel) volgens specificaties vervult. Praktisch alle programma’s van enige omvang bevatten bugs. Het traceren en verwijderen van bugs wordt debuggen genoemd. Meestal is het vinden van de bug het moeilijkste deel van het opsporen van fouten. Wanneer de bug gevonden is, is de fout oplossen meestal eenvoudiger gedaan. Een opgeloste bug noemen we een fix.

Feature
Een feature is een bepaalde functionaliteit in het softwaresysteem die gewenst is. Het gaat om een onderscheidend kenmerk van een software-item. Een softwaresysteem is rijk aan features wanneer er veel opties en functionaliteiten voor gebruiker inzitten. Wanneer we spreken over een nieuwe feature, bedoelen wij dat we een nieuwe functie in het systeem hebben ontwikkeld.