Blogpost R Shiny 2

Een webapplicatie ontwikkelen met R Shiny

Bij Timformatie maken we veel gebruik R Shiny om dashboards te ontwikkelen (zie voor voorbeelden onze projecten-pagina). In onze vorige blogpost vertellen we meer over wat R Shiny is en wat je ermee kan. In deze blogpost zullen we kort uitleggen welke stappen hierbij komen kijken.

💡 1. Een project starten - Golem en RStudio

Wij ontwikkelen onze webapplicaties in RStudio en maken hierbij gebruik van een R-pakket genaamd “golem”. Golem voorziet ontwikkelaars van een duidelijke structuur en tools om hun Shiny-apps te organiseren en te beheren.

📦 2. Pakketbeheer - Renv

Een essentieel onderdeel bij de ontwikkeling van onze R Shiny webapplicaties is het R-pakket genaamd “renv”. De functie van renv is vergelijkbaar met virtual environments in Python. In een bestand genaamd de lockfile houden we alle pakketten met bijbehorende versie bij die nodig zijn om de webapplicatie te ontwikkelen en gebruiken. Hierdoor wordt bijvoorbeeld teamwerk enorm vereenvoudigd, doordat alle ontwikkelaars de pakketten met bijbehorende versie kunnen installeren uit de lockfile.

📊 3. Server en User Interface - Shiny

Een R Shiny webapplicatie heeft altijd een server en een user interface (UI).

  • De UI van een Shiny-applicatie is verantwoordelijk voor het definiëren en weergeven van de lay-out en visuele elementen waarmee de gebruiker interactie heeft.
  • De server van een Shiny-applicatie bevat de logica en functionaliteit die de app aanstuurt.

Zowel de UI als server bevat over het algemeen een aantal terugkerende componenten, zoals een sidebar in de UI of code in de server om een visualisatie te genereren.

🔐 4. Authenticatie en Autorisatie - Auth0

Zowel authenticatie als autorisatie zijn vanzelfsprekend belangrijke onderdelen van het ontwikkelproces. Wij gebruiken hiervoor Auth0. Auth0 is een platform voor identiteits- en toegangsbeheer dat bedrijven helpt bij het beveiligen van hun applicaties. Auth0 ondersteunt verschillende inlogmethoden, zoals sociale logins (bijvoorbeeld via Google of Facebook), single sign-on (SSO), en multi-factor authenticatie (MFA). Auth0 maakt het mogelijk om eenvoudig geavanceerde beveiligingsfuncties te integreren zonder zelf complexe authenticatiesystemen te hoeven bouwen en onderhouden.

☁️ 5. Deployment - Google Cloud Platform & Docker

Wanneer wij – en natuurlijk de klant – tevreden zijn met een webapplicatie, is de volgende stap het deployen van de webapplicatie. Soms doen we dit in de omgeving van de klant zelf, bijvoorbeeld op Microsoft Azure Platform, maar we hosten ook webapplicaties in onze eigen omgeving op Google Cloud Platform. We maken hierbij veelal gebruik van Cloud Run, maar ook Virtual Machine (VM) instances met Compute Engine. Bij een VM is de webapplicatie altijd beschikbaar (“in de lucht”), terwijl Cloud Run telkens opnieuw opstart wanneer een gebruiker de webapplicatie benadert.

Om een webapplicatie te kunnen deployen op Cloud Run gebruiken we Docker. Docker maakt gebruik van “images” en “containers”. Eerst maken we een image van de betreffende webapplicatie. Een image kan worden gezien als een soort kant-en-klaar pakket met alle benodigdheden om een applicatie te kunnen gebruiken. Een image kan vervolgens worden gerund op een container. Daarmee kan de applicatie direct in gebruik worden genomen. Wij zetten onze images in onze Artifact Registry op Google Cloud Platform. Vanuit daar deployen we de webapplicatie in Cloud Run of op een VM instance.

❓ Nieuwsgierig geworden naar de webapplicaties die wij maken? Neem contact met ons op!

De gebruikte afbeelding is afkomstig uit Storyset People Illustrations.

Laat een reactie achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *