A solution is a bucket where all the customization components of a particular project are stored. Creating a solution helps in moving these components from one environment to another. There are three different types of solutions: default, managed and unmanaged.
UNMANAGED SOLUTIONS
In the past versions of Microsoft Dynamics CRM (prior to Dynamics 365), most of the code deployments were done via unmanaged solutions as this was regarded as the fastest way. Working with managed solutions was considered a tricky challenge, and issues often required a holding solution (and lots of time!) to get fixed.
An unmanaged solution can be described as a container, combining multiple customizations.
The container can be imported as an unmanaged solution in your target system and will transfer all your customizations that are available in the solution. However, deleting the unmanaged solution will leave all the individual components untouched! This would require you to manually delete all the individual components in the target instance, in case something goes wrong.
To summarize, here are some risks you can encounter with unmanaged solutions:
Deleting an unmanaged solution in your target instance does not delete the individual customizations in the solution.
Unmanaged customizations can be changed from within the target system, and thus creating a conflict between your source and target instance.
It is not possible to undo or roll back the changes made via an unmanaged solution
MANAGED SOLUTIONS
Using managed solutions to transfer customizations has some advantages. You can control which elements can(not) be customized in your target instance. This way you are sure that all customizations are pushed correctly from within your source entity to your target entity, which will help keeping both instances in sync. Another great advantage is that you can use versioning and patching to effectively handle your solution changes (more info to follow below).
There are however also some risks involved when using managed solutions, especially when deleting a managed solution. This will also trigger the deletion of all data stored in custom entities AND all data of custom field in system entities, that are a part of your managed solution. If your customer is already up and running, this will have a huge negative impact. In order not to lose your data, we suggest never deleting/uninstalling managed solutions, but advise on updating the managed solutions via patches or upgrades.