Cloud native builds will mean that legacy applications, will need to be rebuilt to fit into cloud patterns. An example of a pattern to use to rebuild applications in the cloud is the strangler pattern. This is a method to refactor and rebuild the application over a period of time, strangling the legacy code and replacing it. The strangler pattern would be set against a set of design considerations for cloud native.
IBM’s architecture of the strangler pattern for an event driven architecture using APIs, MOM, Containers, Micro-services and related discrete data services.
The most common set of architecture principles for cloud native builds would be the 12 factors plus one. The missing ‘one’ is testing. Testing is a common pain point in cloud deployments including integrated security testing. The 12 factors allow the Agile team to envision what a decoupled and componentised architecture will look like. It serves as a useful guide.
The Twelve Factors
I. Codebase
One codebase tracked in revision control, many deploys
II. Dependencies
Explicitly declare and isolate dependencies
III. Config
Store config in the environment
IV. Backing services
Treat backing services as attached resources
V. Build, release, run
Strictly separate build and run stages
VI. Processes
Execute the app as one or more stateless processes
VII. Port binding
Export services via port binding
VIII. Concurrency
Scale out via the process model
IX. Disposability
Maximize robustness with fast startup and graceful shutdown
X. Dev/prod parity
Keep development, staging, and production as similar as possible
XI. Logs
Treat logs as event streams
XII. Admin processes
Run admin/management tasks as one-off processes
It is worthwhile to click through each of the above links and read the details on the associated ideas and patterns. These can form the basis of a target operating model in the cloud and the related architectures. It will also help teams imagine what a future state beyond a lift and shift with minor refactoring could look like, leading to a ‘digital transformation’ and new products and services.