The document discusses best practices for migrating applications to the cloud. It recommends instrumenting applications early in the migration process to gain visibility and identify issues. A methodical approach is suggested that involves planning the strategy, priorities, and baseline metrics upfront. The migration should then be executed gradually with validation checks to ensure performance and functionality are maintained. Ongoing monitoring is also important after migration to account for the dynamic cloud environment.
It’s your big day.
The day of the new product launch.
Black Friday
Election Day.
Whatever day, it’s the busiest day of the year.
{c} The day of the year when your company either…makes it or breaks it…
You hold your breath…
Can you scale?
{c}Can you stay operational?
{c}Will you survive?
You’ve been anticipating this…
You know that you can’t scale…at least not using your own infrastructure…
That’s why your company has…A COULD INITIATIVE…!!!
{c} Surely, moving to the cloud will solve all of our scaling problems, won’t it?
{c} And of course, surely, moving to the cloud will save us lots and lots of money.
{ppp}
{c} At least…that’s what you thought it would…
But you were wrong…
{c} Why didn’t the migration complete?
{c} Why is it costing me so much more money than it did before? Why do I have double the infrastructure I use to have?
{c} Why is the performance so bad? Why didn’t the cloud make it faster like it was suppose to do?
{c} Why? Why? Why?
You have managed to move your company from doing this…
{p}{c}…to doing this…
And things are worse than they were before.
Migrations
Often, we start our migration to the cloud with lofty expectations.
But we find out that moving to the cloud isn’t necessarily as easy as we would like it to me.
Problems occur. The cloud doesn’t meet our expectations that have been promised to us.
There is pressure to declare ”victory” before we are ready.
{c}Promised performance gains are not occurring. Costs run out of control.
{c}And schedules just don’t matter anymore.
{c}How can we meet our promises to our stakeholders if we can’t get the cloud to do what we want it to do?
Most companies moving to the cloud struggle with this. Some struggle more than others. Some fail to overcome the struggle.
But moving to the cloud does not have to be scary or dangerous. It can be done safely. It can solve your problems.
{p}You can succeed.
There is a solution…
Success in migration takes…
{c} Visibility into your applications, and visibility into your infrastructure
{c} Instrument your applications early in the process
{c} This is so you can find problems as quickly as possible
{c} Which gives you a clearer understanding of what is going on with your application
Early instrumentation of your application.
{c} Leads to greater visibility into your applications.
{c} It also leads to easier migrations.{c} Both of which ultimately lead to a faster migration.
And a faster path to the scalability and cost benefits the cloud has promised.
{c} The earlier you instrument, the faster you go
Because if you don’t monitor the data you need at the time you need it. You’ll:
1) Waste time fire fighting, 2) Meaningless finger pointing across teams, 3) Lose money, 4) Make customers unhappy, 5) Unhappy customers tell other people…
Doing migrations right involves taking actions before your migration while you are planning, during the migration itself, and follow up after the migration is complete.
Let’s start with what you do before your migration, during the planning of your migration strategy itself.
The first important key is determining your application baselines.
Identifying baselines involves determining the type of metrics you want to measure, and understanding why you want to measure them.
Measuring your key metrics before you migrate allows you to use these metrics throughout your migration to determine if a problem is occurring during the migration, as well as a validation step in determining when your migration is complete.
To do this, we use a KPI model.
KPIs stand for Key Performance Metrics.
They are the important metrics that you need to track during your migration in order to assure your migration is successful.
Typically, you’ll have technical KPIs that refer to the underpinnings of how your application works.
You have User Experiential KPIs, which deal with how your customers see and experience your site.
And you have Business KPIs, which describe how the performance of your application is impacting your business requirements.
Here are some example KPIs from a fictional airline. Your KPIs will be different, and are dependent on your industry, company culture, and system requirements.
Whatever your KPIs are, determine them and start monitoring them *before* you begin your migration process.
Next step are dependencies and resource inventory.
To create your resource inventory and establish the dependencies, you must instrument all parts of your application and infrastructure.
This helps you understand how your app components work together.
It helps you determine which resources depend on which other resources.
It also helps you determine the performance expectations of each component.
And, most importantly, it allows you to confidently answer the question, is there anything I missed?
Once you have your resources and their dependencies, you can prioritize and determine the migration order.
Prioritization involves determining which resources are in scope for migration, it also helps you determine a reasonable order for which you should migrate these resources.
What services should you migrate first? Next?
There exists a sweet spot of migration order that can be determined, and knowing the right order for migration will help you make your migration substantially faster and less error prone.
That‘s what you do before the migration.
{c}Now, during the migration, you use data and validations to determine methodically how your migration is occurring.
Starting with identifying issues and roadblocks.
Early instrumentation allows you to uncover issues and roadblocks easier and quicker.
{c} Is your app working? Is your application running as expected on the new infrastructure? ** Comparing your KPIs to your baselines gives you data to understand if your migration is going awry.
{c} Is your app running efficiently? Is it consuming the cloud resources it requires in an efficient and effective way?
Are the changes you’ve made to run better in the cloud actually working?
Are the new cloud technologies you are utilizing actually improving the operational capabilities of your application?
Again, use your baselines and compare your current results to what they were before you began migrating.
And finally, acceptance testing.
Acceptance testing is all about proving that the changes you’ve made have accomplished the desired goals. And, if they have not, then allow a path to go back and iterate until you are successful.
Baselines and KPI performance help you determine when your migration is complete.
That’s Migrate.
{c} Finally, once the migration is complete, you must follow up to understand the impact of the cloud on your overall application performance.
Post migration monitoring is important because:
The infrastructure you are running on is now out of your control. If you are having a problem, is it your problem, or the clouds?
Understand the impact cloud technologies have on your application performance. Dynamic technologies, serverless, distributed architectures are all great, but are the performance impacts appropriate for your application and are you still meeting your business needs?
You also have some cloud specific concerns. Some things like multi-region redundancy and optimizing for cloud spend are good things, but is the performance impact what you were expecting? Reasonable? Are you seeing desired improvements?
That’s after the migration.
{c} Together, before, during, and after your migration, doing migrations right involves understanding how your application is running in all three areas..
{c} And underlying all three is monitoring your application and your infrastructure.
Our Customers demand modern applications.
{c} And modern applications demand…modern instrumentation
Modern instrumentation gives you the visibility to innovate. It gives you speed. It gives you flexibility.
By giving yourself the visibility into your applications that proper instrumentation can provide, you get confidence.
Confidence to migrate…
Confidence to innovate…
Visibility gives you confidence in the cloud.
No more are your applications in jeopardy.
No more is money being burned.
In the cloud. Things are constantly in motion.
Tracking resources, watching how your application works, is substantially more complicated in the cloud.
Your world has gotten a lot more complicated.
Instrumentation gives you the visibility.Visibility gives you the confidence in the cloud.
Visibility gives your innovation the speed required…the speed you need to keep your business going.
{c} The earlier you instrument, the faster you go.
Hoping for your application to function up never helps…
Neither does panic while there is a problem.
But it’s really quite simple.
The earlier you instrument, the faster you go…period.
{c} Move faster, with confidence.