WCS: replacing MapServer with a GDAL/rasterio based solution
Reasons:
- Bigger results: MapServer does only in-memory, everything bigger fails, sometimes not even with an exception, but with a memory overflow crash -> documented in https://github.com/EOxServer/eoxserver/issues/523
- data-types: MapServer only has a subset of the data types supported by GDAL (Byte, Int16, Float)
- debuggability: MapServer is very hard to impossible to debug. Splitting the steps into Python code makes it easier to change things
- patchability: MapServer is basically a black box. if an issue arises it is hard to get a fix into the system
- error reporting: MapServer errors can be very non-descriptive. Only a single Exception is raised and must be plucked out of an already rendered response
- (performance: it might be possible to improve performance by introducing multi-threaded code. But performance impacts are expected to be negligible)
- MapServer use forces us to use single threaded workers
How:
- Decide on whether to use GDAL or rasterio
- Decide on building an external library or a solution within EOxServer
- Design solution