When serving to clients plan large-scale migrations of applications to the cloud, we right here on the Skilled Providers staff typically observe them pouring numerous hours into the top-down analysis of their software property and categorizing them into discrete migration methods like “rehost”, “replatform”, “refactor” and so forth. It’s a nicely1 established2 business3 follow4 by which the one open level for debate, it appears, is whether or not there are 5, 6, 7 or eight distinct “R’s”.
In follow, the favored “R” migration methods aren’t actually methods in any respect—they’re placeholders for all of the stuff you don’t but find out about your purposes. We discover that an IT group’s insurance policies and capabilities do extra to find out the migration path than anything and finally override any architect’s prior top-down planning.
What’s extra, nearly no software falls squarely into any one of many migration methods throughout all of its layers. The database would possibly get replatformed from self-hosted PostgreSQL to managed Cloud SQL whereas the appliance layer would possibly get rehosted as the identical VM on Compute Engine, whereas the load balancer would possibly get changed with Google’s International Load Balancer.
What most organizations often want is a extra holistic approach to migration. That’s why when our Skilled Providers groups interact with clients, we pay little consideration to those semantics. On this early strategy planning stage we’re extra fascinated by folks and processes earlier than we deal with the know-how. First, we could suggest you contemplate the Google Cloud Adoption Framework, and decide whether or not your cloud migration must be tactical, strategic or transformational. Then, armed with that perception, it’s time to contemplate three basic migration approaches:
Migration manufacturing facility
The migration manufacturing facility method, by which we laterally copy or deploy digital machines or containers in bulk, works nicely if the purposes are easy and comparable sufficient and if the staff dealing with the migration can execute it autonomously without having to coordinate a lot with particular person software groups. This scaled method is nicely fitted to initiatives which can be infrastructure-led relatively than application-led, specifically wholesale data center exits, and might be expedited with options like Google Cloud VMware Engine or specialised instruments like Migrate for Compute Engine or our Database Migration Service.
By the identical token, the migration manufacturing facility method doesn’t lend itself nicely to a change administration course of (by way of inside coverage or exterior regulation) by which every software should individually bear a handbook overview. The trouble of reviewing and controlling for the inevitable modifications outweighs the time saved from the automated migration of the code and information itself. The identical is true if that you must make materials modifications to your CI/CD software chain earlier than you’ll be able to deploy to your cloud setting. And when you issue within the change course of, the industrial case for an as-is migration to the cloud turns into much less compelling.
In abstract, there are some particular eventualities by which the migration manufacturing facility method is the best choice, however there are various different eventualities that don’t meet the factors.
Greenfield software program growth
On the different excessive of a migration manufacturing facility method, there’s the choice to not migrate an present software in any respect, however relatively to develop a brand new “greenfield” or “cloud-native” software as an alternative. This method primarily follows textbook agile software program growth practices. Whereas there’s nothing particular to the cloud about this method, the cloud’s managed and serverless companies lend themselves significantly nicely to accelerating the event of such a software program answer.
A newly developed software have to be handled as a product and never as a mission, which means the staff doesn’t abandon its work after the final milestone has been reached. Somewhat, it stays devoted to the appliance and constantly refines and expands its performance in perpetuity (or till the appliance is deprecated). On this regard, the method is basically totally different from any form of migration. There aren’t any predetermined schedules and the architect doesn’t unilaterally dictate necessities—there are solely sprints of incrementally function wealthy, usable software program. The staff tasked with creating the appliance have to be small, cross-functional and long-lived. It additionally takes significantly extra time to develop a brand new software than emigrate an present one.
Modernization manufacturing facility
The vast majority of migrations that we see our clients interact in contain some extent of modernization on an software by software foundation.
Software program modernization falls on a large spectrum, involving a mess of unbiased techniques and finest practices to enhance the scalability, availability, safety and sturdiness of the appliance itself whereas additionally decreasing the quantity of toil in deploying and working the appliance.
It’s by way of these incremental modernizations that clients often notice their true TCO financial savings—and it’s additionally the rationale why enhancing their DevOps capabilities naturally goes hand in hand with cloud adoption. Within the cloud, as a result of the whole lot is an API, the whole lot might be automated.
For instance, provisioning constant mission environments with the assistance of infrastructure as code can represent a noteworthy modernization. Decoupling state from stateless logic can have nice scaling advantages. Eradicating shell entry from all servers and permitting just for modifications to be pushed by way of a CI/CD pipeline is usually a sport changer on your safety posture. There are 100 extra examples of incremental software program modernizations and none of them squarely match right into a migration technique “R”.