Angular 2.0 is a major upgrade from Angular 1.X that introduces components instead of controllers, improves performance with more efficient change detection and dependency injection, and adds support for mobile, server-side rendering and standards-based web components. Some key differences between Angular 1 and 2 include a shift to a component-based architecture, removal of scopes and watches, updated directives and dependency injection, and new routing and view encapsulation features. The migration path involves either rewriting the entire application using Angular 2 or upgrading services and components incrementally.