How Practical is it to Refactor a Monolithic Application in the Cloud Era?