There are several components to Service Cloud which I will address: Cases, Knowledge, and Community. Each of these has various pros and cons, although the cons far outweigh the pros. It's become an albatross around our company's neck, and I'm requesting our company decision makers to move to a different platform ASAP.
Cases is the basis of Service Cloud, and once you get accustomed to the workflow and interface, it can be quite useful. You can search for knowledge articles, email responses, or use case comments. Out of the box, Service Cloud is terrible, and it will not do what you want. There is a large amount of configuration you will need to do, from setting up email templates, creating workflows to mimic what other platforms do out-of-the-box, and even then you will encounter issues that impede your ability to communicate effectively with your customer. Out-of-the-box email-2-case did not work because we had an Email Service class installed for something else, which rendered the default email-2-case completely useless. So we need to create a custom email handler for cases. This also meant some of the native functionality was no longer going to work. We would end up having to write a ton of customized code, Lightning components, workflows, etc.
Knowledge is rather nice at first, until you start using it and discover the limitations imposed by
Salesforce. Articles are limited to 131,000 characters, and that includes the HTML markup hidden to the viewer. This means your articles will end up having to be abbreviated or broken up into smaller pieces. We tried to host these articles externally, but there is no option to embed these inside the Article object. You can embed videos hosted on YouTube, Vimeo or DailyMotion, but that's the extent. Anything else will require a fully customized solution for displaying knowledge articles. It's a very basic knowledge solution.
Salesforce offers a really strong knowledge base of their own, but it's almost certainly not running using Articles, because Articles is terrible.
Communities is where your customers can go to search knowledge articles, communicate with support, and even create records in your org. It is quite customizable, which is laudable and appreciated. The ability to update and manage the community is relatively easy and can be done without much code.
Unfortunately, the issue comes up with Cases. There are components for displaying Cases, but unbelievably, there is no place for discussion of the case with the service agent. This is almost ludicrous. There are Case Comment related lists, but these are handicapped by artificial constraints. Customers can't view the entire case comment, because it is only a related list, and there's no ability to change this without creating your own Lightning component, which means additional development costs.
Ultimately, the overall impression of Service Cloud is an extraordinarily half-baked product which is nowhere near enterprise-grade, despite carrying enterprise-level costs.