Microsoft introduced the Streamlined Topology concept in SharePoint 2013. It's main goal is to put all low-load services with high impact on your siteperformance to your front-end servers (e.g. ManagedMetaData Service). High-Load Services will be deployed on different servers (Search).
The "full Version" of a streamlined topology has a total of 5 server roles:
- Front-End
- Batch-Processing
- Distributed Cache
- Specialized Workloads
- SQL-Database
This topology is oversized for most mid-range farms. I often see and install a topology with:
- Front-End (all Services including Distributed Cache - except Search)
- Batch-Processing (Search)
- SQL-Database (all Databases)
Ifyou want to be highly-available on application-level, you need two of each. So a total of 6 servers would be required. If you want to use OfficeWebApps (recommended) you need another Server.
Some more articles to read:
https://technet.microsoft.com/en-us/library/jj219591.aspx
https://technet.microsoft.com/en-us/library/cc263199.aspx
https://nikpatel.net/2013/03/20/new-best-practices-for-sharepoint-2013-farm-design-streamlined-topology/