When tasked with moving an in-premise application to cloud based one, what are the things to be taken considered?<p>Some of the things I can think of<p>* re-architect the existing app probably to micro service architecture (debatable)<p>* how to setup CI/CD process<p>* processes and tools<p>* how to auto scale with not only on AWS/Azure but own data centre<p>* monitoring and logs<p>Of course, I might be missing a lot of things from the list above.<p>I would like your suggestions on going about this. Any pointers to any resources (books, videos, articles, etc ...) highly appreciated.
When you say "cloud" I assume you mean the colloquial use, meaning:<p>- Multiple clients using the same application files<p>- Hosted in a data center instead of on client-owned servers<p>- Priced per seat per year/month instead of once, services included in the price as opposed to maintenance<p>- No local client-side dependencies beyond a browser or your purpose-build, self-contained app (like on a phone)<p>- Regular updates pushed directly to production instead of patches and updates going out as manually installed files<p>So, you have to address those individually. There is no way to just "cloud-ize" an on-premise software business. You could start by supporting browsers as a way to access the client, by charging people per seat per month and including services in the price, by hosting customer systems on your server instead of expecting them to support it, by eliminating client-side dependencies like database clients, etc. and by encouraging standardization of features so many customers can use the same application files.<p>As someone with lots of experience working for a traditional on-premise vendor, most of our customers accepted a virtual version of the system running on the server using Terminal Server and connecting up using RDP. Not fun on a bad connection, but it achieves a similar user experience for desktop apps. For the most part though, people will not accept or consider this cloud. It just allows them to benefit from virtualization, which is where most of the actual technology benefit comes from if we are talking large scale projects.