My thought process in this situation was driven by two concepts: Scalability and High Performance ( using free software and technologies).
There are still a few technical details that need consideration in order to decide what is the the best approach since the beginning but here is what I would suggest:
To deploy one CentOS server, or even a SaaS server running Linux, Python and MariaDB or MongoDB (see branches on the right for in depth analysis)
As for the CMS itself, my idea is to ditch the concept of a dedicated application ( your current CMS built in VBA ) in favor of a web based dashboard built on powerful web frameworks as Twisted, Nevow, Django.
This lets you reach the CMS by opening a tab in your browser and typing the address of the CMS service and why not, reach the CMS even remotely from home / elsewhere.
No more stand alone closed third party software - Hello homebrewed portable SaaS CMS!
MongoDB is a NoSQL database and it works under the form of document storage in a very fast machine (and human) readable file format, called JSON, which at it's turn can be compiled into an even faster format called B(inary)SON.
BSON is 10 times faster on iterating an SQL command than a traditional table based database.
Highly used by services which handle big data and real time applications
Drop in replacement for MySQ, very well documented and cross platform support. I think it is enough to say that Google uses it. This is the perfect replacement for a traditional type of database. Full of features and very good for complex transactions.
In order to make the right choice here ( both are strong ) it is important to ask:
The first question is aimed at optimizing the database since the very beginning, whether is MongoDB or MariaDB.The second question is fairly important as if you indeed make lot of use of DEB then MariaDB is preferred and encouraged to use.
- What is the cardinality of your current database? How many 1:1 or 1:N relations do we have? How many of them are actually legitimate and are not there just by commodity or lack of optimization.
- We are making accountability - do we use double entry bookkeeping? If yes, how much do we use it? ( e.g. one function every 10 operations or 8 out of 10 )