Delft3D Geological Tool (GT) is a web based system to create, view and share Delft3D simulations, including pre-defined processing, and run them remotely.
The figure below gives a schematic overview of the used components and their location.
The user can access the web interface with a browser (Google Chrome and Mozilla Firefox are supported) at https://delft3dgt.openearth.eu
The webserver at Deltares has three main components:
- Webserver: Apache serves a WSGI Python Django application, a subversion (version control system) server and a file server; Tomcat serves a THREDDS data server. All these components are behind a Nginx reverse proxy server.
- PostgreSQL database as a backbone for the Django application
- File storage
- Amazon Cloud
The computational power to perform the Delft3D simulation and processing is hired at the Amazon cloud. Three main components can be distinguished:
- Amazon Elastic Compute Cloud (EC2)
- Docker Swarm cluster
- Amazon Simple Storage Service (S3)
The architecture consists of three main components (as indicated in the architecture overview) that are loosely coupled. This means that the system is able to survive temporarily disconnection of individual components, without unnecessary disruption of the overall process. The user communicates via the user interface with the Python Django application at the webserver. The Django application presents information from the postgreSQL database to the user and stores requests for new simulations in the database. The Django application periodically (Celery beat) synchronizes the information between the postgreSQL database and the simulation cluster at the Amazon cloud. Information about the actual status of the simulations is updated in the database and requests for new simulations are send to the Amazon cluster. The figure below gives an overview of the structure and communication between Django at the webserver and the Amazon cloud environment.
At the Amazon cloud cluster, Redis is used as message broker between the webserver and Celery. Celerly handles the request at the amazon cloud cluster. The tasks, Delft3D simulations and the related processing (using Python), are running in Docker containers (Docker swarm) in a scaling group.
The Delft3D-GT source code is available under GPLv3 license at https://github.com/openearth
The source code is organised in four git repositories:
- Frontend for the web-based user interface (https://github.com/openearth/delft3d-gt-ui)
- Web application server (https://github.com/openearth/delft3d-gt-server)
- Dockerfiles (https://github.com/openearth/delft3d-gt-dockerfiles, https://hub.docker.com/r/deltares/delft3d-gt-dockerfiles/~/dockerfile/)
- Provisioning code for server deployment (https://github.com/openearth/delft3d-gt-provisioning)