One of the principles we wanted to implement in our project is to containerize our applications. Containerization is a technique that consists in encapsulating applications in independent and isolated units. This allows a fast deployment, and more security. It allows us greater modularity, since the installation that was once hard, and that impacted the system environment, is no longer necessary. To deploy an application, you only need one command, or a block in a YAML file. The package we use is Docker, which is a fairly common containerization service. For our project, containerization has been implemented so that all the necessary services can be started from a single command. Here are the services that are in production, and are all started as containers:
To start these services with a single command, we use Docker Compose. Docker Compose is a tool that allows to deploy containers, and to configure them in a YAML file. The configuration YAML file used for our project is proposed in appendix 6.
Traefik is a reverse proxy, whose specificity is to discover the services to provide from the Docker service.
Its configuration is done via tags applied to containers, in the Docker Compose file. Via these tags, we can configure the URL that routes to the service, the service port, and other useful parameters for a reverse proxy.
Traefik also provides a web interface, which allows to monitor the correct functioning of the service.
Obviously, the reverse proxy service would not work for a user, without name resolution, so it works in union with DNS.
The DNS allows to translate domain names into IP addresses. It is one of the foundations of the Internet, and our project is no exception to this principle. For our project, we have been granted several resources:
These resources have been assigned as follows:
Service | Address | Port |
---|---|---|
Traefik management interface | cloudstack.chalons.univ-reims.fr | 8080 |
Documentation and project report | doc.sdn.chalons.univ-reims.fr | 80 |
Topology manager and web interface | sdn.chalons.univ-reims.fr | 80 |
APIs | R[123].api.sdn.chalons.univ-reims.fr | 80 |