Never migrate on-premises code as-is to the cloud. Always redesign and rewrite.

Never migrate on-premises code as-is to the cloud. Always redesign and rewrite.

Redesign to save resources, achieve better performance, and save more money in the long term.


Split heavyweight applications into micro or nano-services that can be independently monitored using cloud tools. This way, you can easily maintain and hot deploy the services.


For cloud migration, redesign is more important than blind migration. Do not follow the same path that most people have tried, even if it was successful. Use your own judgment to create a good design.


Document your design in a real study as a pre-step to development. Follow your metrics to ensure:


A. Performance (response times).


B. Resource consumption.


C. Data transmitted in/out per second for every service call or request.


This may seem simple, but meeting each metric requires many calculations at every step.


Find the best tools (not always open-source) that are responsive, consume less memory, and use minimal network resources.


Fine-tune your code to be responsive, consume less memory, and transmit very few bytes in and out. This is not as simple as it sounds. For example, sending user information to the backend servers and retrieving information from backend tables through backend servers to the app/page need thorough design.


Data structures (e.g., DB tables) should be defined to use very few fields and be reusable. This way, data storage is used optimally, storing less data and reducing code complexity.


Write unit tests for every deployment iteration. This is crucial because, as the application grows, you might forget to test some scenarios. This could lead to legacy, memory, or security issues.


Security - Use the latest APIs from Amazon, Google, or Microsoft. Secure your data at every layer of the OSI/TCP model. In addition to cloud security, add your own security layer for extra protection.


Find the right cloud infrastructure and software to run your application. This will depend on customer needs, chosen tools, and code. Follow best practices from cloud examples and choose the most scalable options.


Pilot deployment - Plan to roll out independent micro/nano-services first. Then, roll out dependent applications to a selected group of users. Expect issues and plan to rectify or roll back as needed.


Happy designing –> Happy coding –> Happy customer.





To view or add a comment, sign in

Others also viewed

Explore content categories