Recently, a distributed test system has been implemented that implements the basic features of the main architecture and the MVP (minimum viable product) version. In terms of architecture design, database design, implementation, and so on, the most complex test system I've ever done, it took 2-3 weeks, and finally the MVP version came out (more features to consider in the future based on needs and energies).
Using Python development, the interface section has not yet been done, and what is used in architecture is mainly used: DJANGO+DJANGORESTFRAMEWORK+MYSQL+CELERY+RABBITMQ.
Such as:
Architecture diagram of test execution API
(This figure is in: http://www.processon.com/view/link/53a6e2440cf266a8fabce8b0)
It should be said that the scalability of the system is still relatively good, the task is asynchronous processing, and can implement distributed workers to process the messages in the RABBITMQ. In the future, if the number of calls to a large order of magnitude, you can also well optimize and expand the level of more workers.
In the process of building the system, because previously did not actually use these technologies in the project, so still took a variety of detours, stepped on some pits. No, the links in the Resources page may be worth reading.
Resources:
http://mathematism.com/2010/02/16/message-queues-django-and-celery-quick-start/
http://maemual.net/?p=543
http://ashin.sinaapp.com/article/137/
Implementing a distributed test system with DJANGO+MYSQL+CELERY+RABBITMQ