Skip to content

Hosting van het project

De SAAS oplossing die jullie aan het bouwen zijn komt in de cloud te staan. Op die manier wordt de oplossing beschikbaar voor de opdrachtgever.

De versie van de SAAS oplossing die de uiteindelijke gebruiker krijgt te zien noemen we de live versie. Die versie krijgt een publieke URL en draait op de infrastructuur waar de organisatie mee akkoord is gegaan.

De versie die je als ontwikkelteam in de cloud zet om mee te testen, mee te proberen en daarna de code weer aan te passen noemen we de ontwikkel versie. Die draai je als ontwikkelteam in een ontwikkelomgeving. Vanuit HBO-ICT BIM bieden we twee mogelijke versies aan van een ontwikkel omgeving. In het project zijn user stories geschreven om tot de ontwikkel en de live omgeving te komen.

De stappen die jullie doorlopen in dit tweede semester zijn

  1. Oefenen met het bouwen van een lokaal, op je eigen laptop, netwerk omgeving. Zie blok 3 (infra-docker-compose in docs en de bijbehorende workshop van week 2)
  2. Uitzoeken wat een virtuele machine is (blok 3, Debian 11 VM)
  3. Een advies schrijven waarin de keuze wordt beargumenteerd voor 1 van de 2 omgevingen. (blok 3, zie de user story voor de cloud manager)
  4. Werken in de ontwikkelomgeving in de ontwikkel versie. (blok 4, dus vanaf nu)
  5. Opzetten live omgeving (sprint 2 blok 4, hier kan de uiteindelijke gebruiker dus gebruik maken van jullie applicatie)
  6. Opleveren van de SAAS oplossing (sprint 3 blok 4, dit is dus het eindproduct voor dit semester)

Keuze en aanvraag ontwikkelomgeving

Welke infrastructuur opties zijn er voor de ontwikkelomgeving?

Docker stack op hva-fys

In wat we tegenwoordig de cloud noemen is het goed gebruik om applicaties in kleine stukken op te delen. In de cloud wordt dan elk stukje apart gedraaid in een eigen digitale omgeving. Deze stukjes noem je containers. Zo draait de database in een aparte container, de frontend ook en stop je software die bijvoorbeeld berekeningen doet weer in een andere container. Een bekend software pakket die deze containers kan aanmaken is Docker. Docker hebben jullie in semester 1 al gebruikt voor de database: je klikte in VSC rechts op een docker-compose.yml bestand en startte zo een container.

In blok 3 staat de oefening om lokaal op je eigen laptop jullie applicatie in te bouwen in een docker omgeving. Zie infra-docker-compose.yml in de /docs directory, de workshop van week 2 en K3; allen in blok 3.

Die oefening is dan gelukt als jullie eigen applicatie een lokale URL (bijvoorbeeld http://myapp.localhost/) heeft gekregen. Ook is jullie database gekoppeld aan de applicatie via een intern, lokaal docker netwerk.

Van belang is dat alle docker containers in 1 stack draaien. Jullie moeten lokaal de Docker netwerken koppelen en zorgen dat Traefik alles aan elkaar knoopt. Dit controleer je in de GUI van Portainer.

Virtuele Machine (VM)

In het advies wat jullie aan de cloud manager hebben geschreven kan ook gekozen zijn voor het gebruik van een Virtuele Machine. Deze is al zo ingericht dat hij automatisch de Flask applicatie start en laat zien. Verder kun je zelf software installeren met apt-get, het is namelijk een Debian11 installatie.

Aanvraag procedure

De aanvraag voor de ontwikkel en live omgeving doe je als team bij de cloud manager. Vraag bij de docent na wie dat is.

Stuur een e-mail naar de cloud manager met de aanvraag. Zorg dat je vermeld waar de cloud manager het advies rapport kan lezen. Controleer dat daar duidelijk in staat welke van de twee oplossingen wordt aangevraagd.

Een aanvraag wordt pas in behandeling genomen als: 1. Het advies rapport duidelijk is en voldoet aan de acceptatie criteria 2. Bij Docker Stack oplossing: de leden de lokale Portainer infrastructuur hebben draaien 3. Bij de VM: als minimaal 1 lid binnen het team bekend is met Debian en SSH instructies

Korte samenvatting Docker Stack uitrol

  1. Team stelt de docker-compose.yml in met de kennis uit de locale bouw
  2. Cloud manager controleert docker-compose bestand in main branch
  3. Cloud manager stelt credentials in op Gitlab
  4. Team controleert build en deploy
  5. Team maakt concrete afspraken over support