A Contributed Article by Steve Riley, Technical Director in the Office of the CTO at Riverbed Technology
The cloud is reshaping how we work.
Every year, businesses are moving more of their workloads to the
cloud. The Cisco Global Cloud Index stated that by 2018, 78 percent of all
workloads will be processed in cloud-ready data centers.
While the move to public-cloud services is on the rise, the majority
of cloud workloads will be processed in private cloud environments.
Moving to a hybrid environment has a number of advantages - such as
reduced costs and more agile IT. However, it also creates security and
visibility issues.
If your cloud workloads aren't available, secure and resilient, they
will crush your business.
How can you move to a hybrid cloud environment while maintaining control
of your workloads and ensuring a high level of application performance?
Your
On-Premises Techniques Won't Work in the Cloud
A hybrid cloud environment brings new levels of complexity to your IT.
You're dealing with a wider variety of applications that run on different
infrastructures and are spread across many locations. You'll also face architectural
"collisions" where design patterns for on-premises systems won't translate into
the cloud.
This means that you need new techniques - ones that are different from
how you manage your on-premises data - when managing workloads in the cloud.
When managing on-premises workloads, you would traditionally use span
ports on switches to capture all of your packets to disk. By analyzing stored packets
or flows, you could see how all of your transactions proceeded throughout the
network. This also gave you insights into your applications' performance.
However, capturing packets isn't always useful - or even possible - in
the cloud.
How
to Gain Visibility Into Your Applications in the Cloud
A Riverbed and Amazon
Web Services Re:Invent Survey Report found that the No. 1 reason enterprises
move to a hybrid environment is to optimize application performance. However, the
more environments you have, the harder it can be to measure your applications' performance.
Here are three keys to measuring and improving application performance
in the cloud:
1.
Don't
make assumptions based on location.
When you move applications to the cloud, you likely won't know exactly
where they are located. For example, they might be somewhere in the mid-west or
on the east coast. Some SaaS apps may also move data between multiple providers
and data centers. This means you can't make assumptions about your
applications' availability and latency.
However, cloud providers can now help you work around these assumptions
to achieve high resiliency. For example, you can situate message queues between
elements in a workload. This improves application availability and performance,
while allowing workloads to process more data.
2.
Use application-level
performance monitoring.
With application-level performance monitoring, you won't need to rely
on network-based tools but you'll still have visibility into how your
applications behave.
One way you can do this is by injecting JavaScript into your
applications, so the code will measure the browser's traffic. When the browser
renders a page, the JavaScript will track data such as the network round-trip
time and transaction completion time. This data will be visible to you through
your central cloud deployment. You can use this information to gauge
transaction performance, application behavior and the end-user experience.
3.
Design
for failure.
Eventually, all of your applications will fail - whether they are
located on-premises or in the cloud. However, since cloud infrastructure
resides outside of your organization and your control, a failure can feel
catastrophic.
But it doesn't have to be this way. You can take steps to keep your
applications resilient. Design backwards from potential points of failure so
you can be prepared if something happens. Your provider may also let you build
multiple workloads across different locations, which helps your applications
function during local outages.
Start to improve your visibility by testing some application
performance management tools (APMs). Many of these tools automate your
processes while giving you full visibility into your applications.
Once you see your current and potential performance issues, you can
optimize your applications to provide a high-quality user experience. After
all, happy users are productive users.
##