The way to do this (especially when talking about DAM Assets, which need to have a canonical source in AEM) is to simply put a CDN in front of Dispatcher/AEM.
If youre talking about AEM Author, you can cache Clientlibs on the CDN, but you must expire them after ANY code deployment. Never cache DAM Assets on AEM Author as this will result in content mis-matches, and result in a broken experience.
If youre talking about AEM Publish, you can cache both Clientlibs and Assets on the CDN. You would set up the flow like so:
Web browser -> (http request) -> CDN -> (reverse proxy) -> AEM Dispatcher -> (reverse proxy) -> AEM Publish
The CDN should be able to provide you with a way to set caching rules on various URL patterns. As for articles/blogs - looks like Google has a number of them.