The 6 Rs talked about how 'rehosting' is the quickest way to get to Cloud. But it also acknowledges that it is not the best.
A bad application on-premises is a worse application on Cloud. -- Alex Smith (this page, 2022)
To combat this, we can replatform (to alternative products) or refactor (using different architecture practices), but what are some of the common places to start?
Cloud deployments are fluid, compared to the most constrained traditional on-premises model.
Three easy steps to take:
- Stop treating your servers like pets: Assume at any point your server could be terminated and replaced with a base image. Design your deployment and infrastructure to embrace this as a benefit - for greater scalability and agility, rather than a brittle design flaw.
- Avoid hardcoding static configuration: Default to using DNS instead of IP, or an orchestrator for service mapping
- Loosely couple to tolerate failure: For instance, if a memory cache becomes unavailable - default to regenerating content rather than returning an error
While these are just places to start, they're all linked to the same design pattern: (re)build for fluidity. By embracing that, you'll create a reliable and scalable Cloud Ready infrastructure.