Closed piet0024 closed 1 year ago
I Deployed a small SPA project that I contributed infrastructure as code for to my personal Azure portaL. The project is a simple questionnaire but it has both the front end and back end decoupled from one another and can serve as a demonstration on how we can leverage Azure's serverless features to break away from containerization.
The front-end was built in Vue due to the simplicity of this particular app. This demo doesn't mean we have to use Vue, any of the major frameworks will work since they output a build with an index file that points to a bundle with all your styles and JS.
During the planning stages of this project, the original plan was to host the front end out of a Docker container but due to constraints with IMDT requiring specific approved Docker images the plan was abandoned.
Azure does have a managed service specifically for serving static files (Azure Static Web service) but it is unfortunately not available in Canada.
After some research we discovered the storage container web feature. This ensures that our data remains in Canada, avoids Docker containers and the constraints that come along with them and so far has worked great during our testing and development.
The back is comprised of multiple Azure functions written in Typescript, however much like the front end framework support for multiple languages is made available by Microsoft.
Function apps are stored in an Azure App service plan not a web server or container There are a number of trigger types that can execute the function HTTP Triggers will likely be the only ones we'll use
A visual diagram of a simple serverless solution.
URL to demo: https://devdssastacctc43609bb.z9.web.core.windows.net/ 3 API calls are made on load, and the response from the CosmosDB is stored in local storage to limit the number of requests.
I don't think considering custom dev for this is a good idea. I think an Elgg uplift would be the better option, and deal with IMTD roadblocks if the hosting with them is a problem
Can we look at this from a descriptive point of view? There are probably a mix of features from elgg, some from mediawiki, others we can layer on from other services using widgets or other approaches. Separating identity and data from these services and views will give the clearest idea. Happy to participate in an exercise along these lines.
Do research and options analysis on how to upgrade or improve the core backend solution for the GCcollab app. Options can include: