Whats your #cloud #migration #strategy? - read the full article about cloud migration, Cloud Consulting and Data migration, Cloud infrastructure management from Raj Ramesh on Qualified.One
How to think about your Cloud migration strategy? Let’s say, you’ve made the decision to move your IT infrastructure and applications to the cloud as part of your overall AI transformation.
What is your strategy? First lets clarify what a strategy is.
I’ll use a simple example.
Every strategy has at least one goal.
A young person’s goal might be to be rich.
There are many choices to achieve that goal.
One may be to marry someone with money, another to get a good education and a job, another to start businesses, another to rob a bank, and so on.
Some may not align with the person’s values.
So he may chose to get rich through business because he has a knack for it.
The choices the person makes towards achieving the goal is your strategy.
That’s it! If you are not making choices, there is no strategy.
I’ve come across too many attractively formatted “strategy” documents that are not strategy! Say you are a retailer.
Your web traffic goes up during holiday seasons and you want to be able to meet the demand.
If you have your own IT, then you have to invest in enough IT to take you through the holiday season, but that same IT will be much underused for 95% of the year.
If you don’t invest up front, then you will lose sales during the holidays.
So, you basically want to reduce your cost and yet ensure scalability.
How will you achieve these goals? You have two options: (1) outsource your IT to some services company, or, (2) move your technology to the cloud.
If your software applications were just a commodity then you could go with option one because its not a differentiator.
In the early 2000s, AMEX outsourced their IT to IBM at a deal worth about $4 billion at the time.
On the other hand, if you have applications that differentiates you from others and you want to maintain control over it then you would choose option two – which is essentially you are renting out computing resources rather than buying it outright.
Netflix uses Amazon’s AWS cloud.
Say you’ve done some research and decided to move to the cloud to reduce your cost and ensure scalability.
Right there, you’ve made your first choice: migrate your IT to the cloud.
That thoughtful choice becomes part of your strategy.
The next goal is to actually put your IT on the cloud.
You have multiple options.
One is called “lift and shift.” In this case youre not making any changes to the software but simply leaving the hardware behind and moving your software to hardware thats on the cloud maintained by the cloud providers.
This option should directly reduce your cost and allow you to scale.
So go for it.
Ah, you are not happy with this choice.
Why not? Oh your software is built in such a way that it still requires a lot of maintenance for new business requirements and you feel youre not agile enough.
OK, what youre really saying is that the software has to be refactored so that it can deal elegantly with new business requirements and changes.
So the option of lifting shift is not going to work.
Rather you have to refactor the code.
How and when can you do that? One option is simply move everything over to the cloud as is, and do a second phase where you refactor the code.
The problem is that you may not ever go to the second phase and your code will be as bad as it was.
Another option is to refactor the code as you move to the cloud.
This option has more risk.
As a company you decide that you can come together and reduce the risk.
So you’ve made your next choice.
Great! Software applications comes in many sizes and forms.
Lets just focus on a web based shopping cart application that your customers used to buy your products.
Here’s the architecture of this application.
On the backend you have a database – specifically a relational database.
The middle application layer contains the business logic of reading, manipulating, and writing data back.
Finally, the user interface layer is the front-end screen through which the customer interacts with the software application.
This is called the 3-tier application.
Overall, this application drives many business process steps or entire business processes.
The customer shops on your website and drops a product in the shopping cart.
Once the customer purchases the product through a checkout process, it triggers a business process that checks inventory, accepts the payment, and sends a notification to the shipping department to ship the product to the customer’s address.
The shipping department might have its own three tier software application, to manage the products that have to be and have been shipped.
Their database may be completely separate because that application was developed for their need, at a different point in time, with a different set of technologies.
Other business areas might have the same – essentially holding duplicate information across their databases with different business logic for the same problem.
Having understood this architecture, it looks like we’ll have to make a few more choices.
Let’s focus on integration of systems.
There are many options to integrate such systems to make the end-to-end customer experience seamless.
Specifically we’ll talk about integrating the shopping and shipping systems The simplest option is to use a human to read information from one system, and manually type it into the other.
In the customer shopping example above, when a notification arrives in the form of say an email to an agent, she reads the content of the email to update the shipping system.
As you can tell, this way of doing things is error prone and inefficient.
A better option is to use RPA or robotic process automation which I describe in more detail in another video whose link I share in the description below.
Another is to wrap the functionality of applications in APIs or application programing interfaces, where one application calls another to update it.
However, this causes a many one-to-one integrations to happen, and the complexity increases exponentially.
Yet another option is to use an eventing architecture where system events are dropped in a location and other systems can pick up and use those of interest.
For example, a checkout event may be dropped in, which could be picked up by the shipping system.
So you have some architectural choices to make.
Maybe you picked the eventing architecture.
All these choices we made so far – choose the cloud, move and refactor in one shot, and use the eventing architecture - together make up your cloud migration strategy.
I did not cover the exhaustive list of goals or choices you have to make, but wanted to give you a way to think about it.
If you are creating a cloud migration strategy, make sure you understand the goals, and the choices you make to achieve each goal.
If not, you are just getting a fluffy document that’ll go on the shelf! If you enjoyed this video, please consider subscribing.
For a 1-page visual summary of this video, sign up on my website.
Thank you deeply for giving me the motivation to do what I do.
Raj Ramesh: Whats your #cloud #migration #strategy? - Cloud Consulting