CDN stands for Content Delivery Network, and is essentially a network of servers that act as distributed caches to make accessing various assets faster for the end user. Say you have an application that needs to load a bunch of images and scripts, instead of going to the home server to fetch all that content (which could be on the other side of the world from you) the idea is that you save time by accessing those assets via a nearby CDN, reducing the chance of routing errors etc.
There are downsides to CDNs as well. End users might have privacy settings that block CDNs, they may cost money to make use of, might make deployment a bit more complicated. I my biggest issue with CDNs is that they may not respect the end user's privacy, so if I develop an application and I really care about my users' privacy, I'd likely endeavour to not make use of a CDN as I can't guarantee that the CDN won't be a weak link in my chain. It doesn't matter how much I respect people's privacy if the CDN stores logs and tracks my users.