Goals for deck
Availability is more than you think it is…(not just up, but performant)
Slow is worse than out...
How do you even measure availability?
Availability thru your customer’
Dynamic cloud helps make availability happen (n ways it make it easier)
Unless you muck up these parts
How do you get there?
(what are the key takeaways)
(anchor slide for each topic and end with it)
What do I mean by using the cloud as a “dynamic tool for dynamic applications”? I mean:
Use only the resources you need <click>
* Allocate and deallocate resources on the fly <click>
* Resource allocation becomes an integral part of your application architecture.
In a dynamic application, resources are allocated, consumed, and deallocated on the fly. And the application is aware of and is controlling this management of resources. The application is essentially performing traditional OPs resource management tasks.
New Relic did an analysis recently about how our customers are making use of Docker. The question we wanted to answer was, how long do docker containers live? This diagram shows the answer to that question. The horizontal axis is the number of hours a docker container has lived for, and the vertical axis is the number of containers in that time bucket. As you can see, there is a long tail, with some docker containers running for well over a year. However, there is a huge number of docker containers that run for less than one hour. In fact, if we zoom in on just that one hour time period…
we can see that most docker containers we run actually only run for less than one minute! Over 11% of all docker containers we run will run for less than 60 seconds.
This is some customer’s application or service, some business logic, that starts up, runs, and shuts down all within 60 seconds. This is very rapid. These are containers that are launched only for a specific business purpose and are terminated when that purpose is completed. This is what we mean by dynamic infrastructure.
And there are lots of different cloud technologies that can be used in this dynamic manner…from queues to routing to auto scaled EC2 instances. Many resources in the cloud can be used in this dynamic fashion.
So, in the old world, your operations team was comfortable. They knew the resources they controlled, they created them, they managed them. All was simple and manageable.
But in this new world, resources are created and destroyed dynamically. The world of the operations team can no longer be as simple as tracking resources on a spreadsheet. The resources they are responsible for are dynamic and transient. Their world has gotten a lot more complicated.
So, that’s all great data. I know I need to move to the cloud to keep my company moving forward. But what about the nuts and bolts. What should *I* do to be successful in moving to the cloud?
Let’s take a look at how most enterprises figure out how to migrate to the cloud. There are six *typical* steps that most companies take to move to the cloud.
They don’t all use all the steps. Some stop part way up the path.
Some skip steps.
But this is typical…
Let’s look at each of these in turn.
Let’s start with “Experiment”.
This is the first, tentative step into the cloud. It involves using safe technologies. Technologies that we can use in simple and subtle ways in parts of our applications that may be less critical.
There are no cloud policies created. We just build one off implementations to see how the cloud can fit into our needs.
Most companies have at least started on this step.
After you’ve done some basic “feet wetting” in the cloud, security typically becomes a concern.
Critical evolution point in the company’s culture
…all displines in the company are involved (Legal, Finance, Security)
…companies that can’t get past this point, can’t be successful in the cloud
Once policies are in place and the cloud can be trusted…you start using other features the cloud has to offer.
Three choices:
...1) Put some workloads in the cloud, some in your own data center
...2) Resiliency - additional data center(s)
...3) Move applications to the cloud, out of existing data centers
Independently: SaaS uage increases (internal apps first)
Now the cloud is important to you, so you start to see what else the cloud can do for us.
Three choices:
...1) Put some workloads in the cloud, some in your own data center
...2) Resiliency - additional data center(s)
...3) Move applications to the cloud, out of existing data centers
Independently: SaaS uage increases (internal apps first)
Now, we start looking at cloud native services…services only available in the cloud.
Three choices:
...1) Put some workloads in the cloud, some in your own data center
...2) Resiliency - additional data center(s)
...3) Move applications to the cloud, out of existing data centers
Independently: SaaS uage increases (internal apps first)
So now we are committed to the cloud…now comes the last step. Mandated use.
Three choices:
...1) Put some workloads in the cloud, some in your own data center
...2) Resiliency - additional data center(s)
...3) Move applications to the cloud, out of existing data centers
Independently: SaaS uage increases (internal apps first)
But ultimately, these are the steps involved.
Different companies go thru these steps at different speeds.
Different companies find the right “stopping point” that matches their needs
While these are the steps our *company* may go thru.
As we build new and migrate existing applications, our applications go thru a similar learning process…
How can a given application take advantage of the cloud?
This adoption may happen faster or slower for different types of applications.
Let’s take a look at these as two different axis on a chart.
Coporate adoption process on the left, Application adoption process on the bottom
Another way to look at this: based on application types and requirements...
So, that’s all great data. I know I need to move to the cloud to keep my company moving forward. But what about the nuts and bolts. What should *I* do to be successful in moving to the cloud?
How can I make sure a cloud migration is successful?
Understand where your culture is
Risk tolerance, Cloud commitment, Expertise
Understand your needs
Redundancy? Cost? New Opportunity?
Consciously plan your acceptance
What level are you?
What level do you need to be?
Drive your culture to where you feel you need to be
Monitor your adoption
Before migration
Baseline application
Servers
Databases
Caches
Applications
Microservices
Determine your steady state
Important before you migrate!
During migration
Incorporate Cloud’s internal monitoring
…provides cloud specific infrastructure monitoring
…AWS CloudWatch
Continue application monitoring
*Here, looking for performance deviations from steady state
Track down & explain all deviations before moving on
Understand all deviations from norm
Solve problematic deviations/problems
Continue monitoring post migration
Should understand: The infrastructure is now out of your control…you need to keep an eye on it
Cloud infrastructure changes can impact your application…you need to keep an eye on it
There are some cloud specific concerns:
EC2 instance failures
Greater part of your availability plans
Often impacts other AWS systems as well
Instance degradation (more common than you’d think)
Ongoing application & infrastructure monitoring is essential
Before, During, and After Your migration.
Monitoring plays an important role in your entire migration process.
So, that’s all great data. I know I need to move to the cloud to keep my company moving forward. But what about the nuts and bolts. What should *I* do to be successful in moving to the cloud?