What is the difference between a milestone and a deliverable?

A deliverable is a unique product, result or capability to perform a service that is produced on a project. To put it in other words, it’s a tangible action item within a project. For example, to produce the Project Charter document would be a deliverable that the project manager is responsible for. A piece of software code would be a deliverable that the developer is responsible for.

A milestone is considered a significant point or event in a project, program or portfolio. For example, the end of the planning phase, or sign-off after testing has been completed, would be a considered a milestone. If you use MS Project as a scheduling tool, the duration of a milestone would be ‘0’ hours/days.

What is the difference between a milestone and a deliverable?