s3-kennisbank

View the Project on GitHub HU-SD-S3/s3-kennisbank

Deployment

Hoe willen we onze zaken deployen?

Er zijn dit semester een boel mogelijkheden. Voor nu wat algemene plaatjes en ideeën. Meer details zullen moeten volgen.

AzureSome Virtual MachineMyApplication.jarPostgresVite FrontendBackend

Dit is basically de goedkoopste: “Ik wil doen alsof mijn laptop op productie staat”. Alles op 1 machine. En gaan.

Als je ook de S2-webapp structuur wil gebruiken krijg je iets als:

AzureSome Virtual MachineAzure Web AppPostgresBackendVite Frontend

Deze versie heeft als grote voordeel dat HTTPS automatisch geregeld is (vanwege Azure Web App). HTTPS op je eigen VM is een boel gedoe ([https://letsencrypt.org])

De grote verleider die je -niet- werkend moet proberen te krijgen is:

AzureSome Virtual Machinenpm run devMyApplication.jarPostgresVite FrontendBackend

npm run dev staat voor development, en daar moet het blijven. npm run build maakt een productie-pakketje, die prima door je Spring-backend gehost kan worden.

Een laatste (redelijke maar lastige) optie is iets als:

AzureSome Virtual MachineAzure Web AppAzure Static WebsitePostgresBackendVite Frontend

Dit is iets waar je waarschijnlijk online veel documentatie over vindt. Want je frontend op een static website hosten, en je backend op een aparte web-app hosten is een stuk goedkoper, en een stuk beter voor de performance. Maar het is wel een stuk ingewikkelder, want je zult een hele specifieke build van je frontend-moeten maken (“waar staat mijn backend eigenlijk?”), en je zult CORS in de diepte op moeten lossen.

Een laatste advies zit in de 1 VM-met-HTTPS hoek:

AzureSome Virtual MachineMyApplication.jarProxy (bijv. Haproxy of Nginx)Certbot (Letsencrypt)PostgresVite FrontendBackend

Certbot ([https://letsencrypt.org]) is een programma dat gratis HTTPS certificaten kan inregelen voor de meest gangbare webservers (zoals bijv. Haproxy of Nginx). Met deze setup configureren we onze proxy zodanig dat Certbot requests naar de Certbot applicatie geroute’d worden, maar dat de rest naar onze “echte” applicatie gaan.