-
Notifications
You must be signed in to change notification settings - Fork 5
Description
This is a discussion story that will initiate smaller stories in the future.
Task management is a standalone product that can be installed on one or more virtual machines, so it can work with a sensenet-powered application in the cloud. However the architecture can be improved to be a more modern, cost-effective member of the sensenet app family in the cloud.
Task management web app
Currently the task management app (which behaves like a service) is an Asp.Net web application. We should consider converting it to a more scalable, cloud-friendly app service.
Scaling tasks
The task management web app is responsible for orchestrating tasks, notifying agents about a new job, channeling errors back to the portal. In a cloud environment scaling can be outsourced to the infrastructure: we do not need agents, we should be able to start any number of tasks and the infrastructure will provide the resources (based on the subscription plan).
Proposal: the agent and the service can be eliminated from the infrastructure.
ToRead: Azure Functions
Exclusivity
We have to keep the feature that makes sure that tasks are started by a single executor. The locking mechanism (through the db) is already in place, we do not want to change that.
Deployment
- Currently we deploy the task management app as a WebPI package, this should be improved to a more cloud-friendly solution.
- Deploying executors to the sensenet web app through NuGet is also something we need to change.
Monitoring
In sensenet there is already a monitoring page based on SignalR that is able to process and display status messages from executors, we do not want to change that.
The central task management application may be capable of displaying a central monitor page in the future, or should we direct these status messages to a 3rd party monitoring system in the cloud?