Cloud migration has attracted a lot of attention in both industry and academia due to the on-demand, high availability, dynamic scalable nature. Organizations choose to move their on-premise applications to adapt to the virtualized environment of the cloud where the services are accessed remotely over the internet. These applications need to be re-engineered to completely exploit the cloud infrastructure such as performance and scalability improvements over the on-premise infrastructure. This paper proposes a re-engineering approach called architectural refactoring for restructuring on-premise application components to adopt to the cloud environment with the aim of achieving significant increase in non-functional quality attributes such as performance, scalability and maintainability of the cloud architectures. This paper proposes, when needed to migrate to cloud, the application is divided into smaller components, converted into services and deployed to cloud. The paper discusses existing issues faced by software developers and engineers during cloud migration, introduces architectural refactoring as a solution and explains the generic refactoring process at an architectural level.