Cloud computing is a paradigm which has changed the way organizations develop, manage, and deploy their applications. Most of the resources are available at low costs in this technology and it creates new opportunities for organizations to move their existing applications to the cloud for modernization. But this modernization also comes at a price. The authors present a model-driven approach to address the challenges in application modernization and focus on the application migration to cloud. Most of the cloud applications are very specific to a particular vendor's features or services. The proposed methodology addresses the challenge of vendor lock-in also. The authors present their theoretical details and experience with two pilot projects where they have applied the proposed approach.