I'll hit the good part of the question first - NCM installs right onto your existing poller, and uses the same database as NPM.
Now for the less-good part: NTA was split out the way it was specifically because of the performance hits users saw when it was part of the Orion database. So putting the flow storage db onto either of those boxes really defeats the purpose of that enhancement. The good news (if you can call it that) is that you only need one more box, and the requirements are fairly low - it's not really a "database" server in the same way your SQL database for Orion is. It can be a VM, it doesn't need the same amount of memory, and disk space is determined by how many flows you want to store.
Of course, ALL of this advice comes with the usual "caveate implement-or" - if you have thousands of devices, millions of interfaces, or hundreds of flows, all bets are off. On other hand, if you are monitoring 150 devices, you MIGHT be able to get away with putting everything together.
Remember: "Every serious answer to an IT question begins with the words "that depends" and ends about an hour and a half later."
Hope that gives you a point in the right direction.
Indeed it can be done and it has been done successfully using 2 servers, however as adatole pointed out there is a lot of caveats.
Both servers are Virtual with 4 vCPU with 8GB (App) and 16GB (SQL)
[App server is running NPM / NCM / IPAM / NTA]
NPM monitors about 650 devices, with default polling and retention periods.
We only use NTA for approx 20 Devices / 54 Interfaces
Daily peaks of about 6,000 flows
60 Days of data = 93GB Flow Storage Db (FSDb)
FSDb is on a dedicated FAST PERFORMANCE DISK ARRAY.
We could do that as there was a need for maintain the O/S licensing costs as well as utilise the arrays spare drives from a previous project a bit more.
Oh I should add we monitor the above with a separated instance of SAM located elsewhere, so we know the performance of the above remains good
Thank you both for the information, it's been extremely helpful. I was planning on monitoring ~130 Cisco switches for now. I have an associate who is planning on virtualizing our servers with Nutanix but we won't be receiving the hardware for at least a couple of months and I need to get started now unfortunately. I will keep in mind the virtual specs you provided, much appreciated. Currently I'm unsure how many flows I'm going to store, but if I were to focus on say 20 devices and 40 interfaces, what would be minimum CPU, RAM, hard disk space I'd need for a box to store the FSDb?
Also in the event I'm forced to install the FSDb on either my NPM/NCM app server or SQL server, is it difficult to migrate the FSDb onto another server/or virtualize if I do find other resources? Thanks again for your help.
Thanks everyone, I think I have it all sorted now