There are many solutions for your question, some more suitable than others based on constraints such space/memory available in your servers.
The client side looks like simple because you do not want to overlay any other layer at this moment, so leaflet or openlayers can help you.
The server side is a bit trick, since you need to decide how to provide your data. Options are wms or tms. If your data is static, I would go with tms and generate a set zoom levels of tiles. It can takes a long time based on the number of zoom levels and extension of your data, but once its done, you will have no geoprocessing activity, just serving a bunch of png/jpeg files via http protocol. The cons of this approach is that you will need a lot of space in your servers but pros is that access to this png/jpeg files will be quick since they are ready and you do not need any extra service (geoserver, mapserver, etc) but apache httpd running.
If you decide for this option, second question is: are your files in the final style that you want to publish? Usually you may have rgb files that contains that final style (set of colours/ranges) or in gray scale files and you problably have a pallete of colors that you want to apply.
In case of rgb files, the utility gdal2tiles.py can be you solution. It will generate the tiles and a client using openlayers so you can test your process.
In case of gray scale files, you can define style using mapnik style xml files and generate the tiles with the utility generate_tiles.py that is available in the mapnik website.
You can go with options using geoserver/mapserver/etc, but I do not think that you need this overhead of service since your data looks like static.