A package is a bundle/collection of a list of components or related applications.
There are two types of packages :
* Managed
* Unmanaged
Managed Packages are used to sell and distribute applications to clients. Developers can sell user-based licenses and applications through the AppExchange for the managed packages. These are fully upgradable. In the case of seamless upgrades, removal of objects or fields is performed.