chore: more work on the report
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Andre Henriques 2024-03-11 12:53:30 +00:00
parent 73dc08a782
commit db08e53a8f

View File

@ -220,29 +220,44 @@
\pagebreak
\section{System Analysis}
\subsection{Introduction}
Understanding the project that is being built is critical in the software deployment process, this section will look into the required parts for the project to work.
Understanding the project that is being built is critical in the software deployment process, this section will look into the required parts for the project to work.
As a SaaS project, there are some required parts that the project needs to have:
As a SaaS project, there are some required parts that the project needs to have:
\begin{itemize}
\item{Web App}
\item{JSON API}
\item{Server Management}
\item{Dataset Management}
\item{Model Management}
\end{itemize}
\begin{itemize}
\item{Web platform}
\item{JSON API}
\item{Server Management}
\item{Dataset Management}
\item{Model Management}
\end{itemize}
\subsection{Overall Structure of the Project}
The service should be able to respond to any load that is givien to it. This will require the ability to scale depending on the amount of requests that the service is recieving.
Therefore the service requires some level of distributivity.
\subsection{Overall structure}
The system needs to have some level of distributivity, this requirement exists because of the expensive nature of machine learning training.
The service because of the machine learning tasks, also requires to able to have acess to machines that can use GPUs.
As the machines that have
The service needs to have some level of distributivity, this requirement exists because of the expensive nature of machine learning training.
It would be unwise to perform machine learning training on the same machine that the main web server is running, as it would starve that server of resources.
\subsection{Resources}
The system has to manage what servers are available to do machine learning tasks.
The system has to be aware and manage all GPU servers, servers that have GPUs available, and run the possible models.
For a separation of concerns data should also be in a different server.
\subsection{Web platform}
The web app is where users manage models, and data. The user will access the web app and configure the model, and manage that data set.
\subsection{Resources}
As the service contains more than one resourse to manage, it should be able to track what are the resourses it has available and distribute the load acordingly.
One example of this would be the service has two servers with GPU available to them.
One of the servers contains a more capable GPU that server should be used to train models as that requires more computational power.
Storage is another resourse that the service will have to handle.
The service needs to keep track of the model files and uploaded files.
Alternatively it be able to mount other servers disks and get the images directerly from the other service.
\subsection{Web App}
The web app is where users can interact with the service.
Users should be able to manage models, see uploaded data.
The user will access the web app and configure the model, and manage that data set.
\subsection{JSON API}
@ -284,19 +299,21 @@
The service is designed to be a 4 tier structure:
\begin{itemize}
\item{Presentaion Layer}
\item{Api Layer}
\item{Work Layer}
\item{Presentation Layer}
\item{API Layer}
\item{Worker Layer}
\item{Database Layer}
\end{itemize}
This structure was selected because it allows separation of concerns to happen based on the resourses required by that layer.
This structure was selected because it allows separation of concerns to happen based on the resources required by that layer.
The presentaion layer requires interactivity of the user, therefore it needs to be accessible from the outside, and be simple to use.
The presentaion layer consisnts of a webpage that interacts with the Api layer, to manage both the resourses allocated to users and administrators of the system.
More specific details of the implementaion can be found in \ref{web-app-design}.
The presentation layer requires interactivity of the user, and therefore it needs to be accessible from the outside, and be simple to use.
The presentation layer consists of a webpage that interacts with the API layer, to manage both the resources allocated to users and administrators of the system.
More details of the implementation can be found in \ref{web-app-design}.
The Api layer, controls the system, it's the interface that both the webpage and customer servers use to interact with the system.
The API layer, controls the system, it's the interface that both the webpage and users' servers use to interact with the system.
The Worker layer, consists of a set of servers available to perform GPU loads.
\subsection{Inter Application Interface}
@ -320,6 +337,8 @@
\item{See the performance of the model.} %TODO add image for proff
\end{itemize}
\subsection{Aplaication Programming Interface}