Contents

Docker - Task

Microservices System Project

This post provides detailed instructions and requirements for the Microservices System project. The project aims to create a system based on at least three microservices, including a UI application, a model training/prediction microservice, and a data microservice. T

Project Overview

The project should consists of designing and implementing a system architecture composed of three microservices:

  1. UI Application Microservice: This microservice is responsible for providing the user interface for interacting with the system. It should allow users to input data, view results, and interact with other components of the system.

  2. Model Training/Prediction Microservice: This microservice is responsible for training machine learning models and making predictions based on the input data provided by users through the UI application. It should have functionalities for model training, prediction generation, and model evaluation.

  3. Data Microservice: This microservice handles the storage and management of data used by the system. It should provide APIs for storing, retrieving, updating, and deleting data.

Project Requirements

General Requirements

  • The system should be implemented using microservices architecture (containers, Docker).
  • Each microservice should be designed and implemented independently, with clear interfaces and communication protocols.
  • Use appropriate technologies and frameworks for implementing each microservice.
  • Ensure proper documentation for each microservice, including API documentation, code comments, and README files.
  • Document the system architecture, including component diagrams, deployment diagrams, and interaction diagrams, to facilitate understanding and maintenance.
  • Provide clear instructions for deploying and running the system locally.

UI Application Microservice

  • Implement a user-friendly interface accessible via a web browser (you can use streamlit, gradio or any other framework.).
  • Provide functionalities for users to input data, view results, and interact with other components.
  • Integrate with other microservices using appropriate APIs and communication protocols.

Model Training/Prediction Microservice

  • Implement functionalities for training machine learning models using input data.
  • Provide APIs for making predictions based on the trained models.
  • Include mechanisms for model evaluation and performance monitoring.
  • Utilize appropriate libraries and frameworks for machine learning model development and deployment.

Data Microservice

  • Implement functionalities for data storage, retrieval, updating, and deletion.
  • Ensure data integrity, consistency, and security.
  • Use a suitable database system for storing data/

Additional functionilies (Optional)

  • Implement logging and monitoring functionalities for each microservice to track system activities and detect anomalies.
  • Ensure fault tolerance and resilience in the system architecture to handle failures gracefully.
  • Implement appropriate testing strategies, including unit tests, integration tests, and end-to-end tests, to ensure the reliability and correctness of the system.