Moving
applications to the cloud can bring great benefits to your organization and
increase the flexibility and responsiveness of your IT department. However,
when making this move, there are lots of issues to think about. For example, how
secure is my data in the cloud? How reliable is the cloud-based application?
What is the actual cost? How can I migrate my existing data to the cloud? And
so on.
In this
post, we’ll discuss some of these issues and look at the questions that you
should ask before you make the move to the cloud. This list is not intended to
be exhaustive and, depending upon your particular circumstances, some of these
things might not apply – or there might be other things that you need to add to
the list.
1.
Objectives/Goals
What
are the goals and objectives of moving to cloud? Is it to reduce costs, or reduce
time-to-deployment, or free up IT resources for other tasks? If you don’t know
what your goals are, then how do you know whether moving to the cloud has been
successful or not? If you don’t know your goals, then why are you moving to the
cloud at all – just because it seems like a cool idea?
List
your goals and objectives, prioritize them, and quantify them. This will give
you a measuring stick to determine if the Cloud is successful for you.
2.
Security
Security
is important – whether it is securing data stored in the cloud (“data at rest”)
or data moving between cloud apps and on-premise apps (“data in motion”).
Security breaches can be very embarrassing and can lead to financial loss (and
regulatory penalties if the breach affects data covered by privacy laws).
Wherever
the data is stored or in motion, it is your data and therefore your
responsibility to ensure that it is secure and protected. Just because your app
is in the cloud and supplied to you by a cloud provider does not absolve you of
responsibility for the security of your data. You need to make sure that your
cloud provider is securing and protecting the data on your behalf, whether the
data is at rest or in motion.
So you
should ask your cloud application provider how they secure your data in the
cloud. Do they encrypt the data? What about when the data is in motion? How is
it protected then? How do they protect the application against security
breaches? Do they perform threat analysis and penetration testing of the
application? Are they willing to discuss the results with you? The answers to
these types of questions will give you an understanding of whether your application
provider is securing and protecting your valuable data.
3.
Reliability
Make
sure that the cloud application reliability (as defined in your SLA) matches
your needs. If your cloud application is, say, an HR application, then having
12x5 availability is probably going to be OK. But what if the application is a
part of a mission critical business process that needs to be available 24x7? Or
what if the application must have guaranteed availability and reliability at
certain times of the day e.g. at the close of trading for financial
applications or at closing time for retail applications (for end of day
processing, in both cases)?
Check
that your cloud application SLA meets your particular requirements with regards
to reliability and availability – don’t just assume that, because the
application is in the cloud, it’s always available. Ask your cloud provider how
they provide the reliability and availability – do they have load balancing and
a high availability architecture in the cloud? Or are there points of failure
that could halt the whole application?
4.
Disaster recovery
Disaster
Recovery (DR) is somewhat related to reliability and availability, but in a
slightly different context. DR covers the situation where there is a total
failure of the data center where your cloud application is running. This has
happened recently when Amazon lost power to one of their data centers in
Virginia due to an electrical storm in the U.S. Mid-Atlantic region. This power
outage affected services such as Netflix, Instagram, and Pinterest – albeit
only for a few hours. Last year, a transformer failure knocked out the power to
Amazon and Microsoft data centers in Dublin, Ireland. It took up to 2 days to
restore some of the services running in these data centers.
How
would you be able to withstand a loss of your cloud application for an extended
period of time? How would this affect your ability to do business? If your
cloud application is important, then look for a cloud provider that offers a DR
capability. You will almost certainly have to pay for this functionality, but
it will be worth it if it prevents extended application outages.
Ask
your cloud provider how they support DR e.g. is the DR application located in a
physically different data center to protect against problems such has power
outages or natural disasters? What is the replication strategy between the
‘live’ data center and the backup (DR) data center? How frequently is the data
replicated? How long of an outage at the live data center is required before
triggering the DR application to start up? How long does it take for the DR
application to start up? What is the recovery strategy for interrupted
processes and transactions?
The
answers to these questions will help you to determine whether the cloud
provider’s DR capability is suitable for your needs.
5.
Cloud operations – who is
monitoring your application?
When
you use a cloud application, you are effectively outsourcing some of the
administration and monitoring of the application to a third party i.e. your
cloud provider. You need to understand what application and system health
metrics the cloud provider is monitoring on your behalf. You need to make sure
that they are monitoring enough metrics to catch problems as soon as possible –
preferably before they affect the performance or availability of the cloud
application. Items to be monitored by the cloud provider should include:
- CPU
Thresholds
- Load
balancing functionality
- Disk
utilization and volume capacity
- Database
metrics, e.g. utilization, I/O, etc.
- Application
specific metrics, e.g. listening ports, process pid’s, etc.
- URL
availability for user interface access
- Security
attacks:
- Denial of service attacks
- Brute force attacks
- Illegal log-in attempts
- Unauthorized file access, e.g.,
non-root user attempting access to host files
- Virus scanning
These
metrics – and alerts based on metric thresholds – should provide suitable information
about whether the application is running or not and whether anything abnormal
has occurred (e.g. a runaway application consuming all CPU cycles). However,
system or application level metrics and alerts don’t tell you whether the
application is performing as promised. If application performance – whether
response time, throughput, etc. – is important, then you need to ask your cloud
provider about mechanisms to monitor performance. For example, this could be
sending a test transaction through the application on a periodic basis to
measure the processing time or response time for the transaction. If they don’t
have any such mechanism or process, then how do you know whether your
application is meeting your performance criteria?
6.
Self-serve dashboards
Although
moving an application to the cloud means that someone else will be monitoring
the health of your application, it doesn’t completely absolve you of all of
that responsibility. After all, if something goes wrong with the cloud
application, the users within your organization won’t be able to contact the
cloud provider to find out what’s happening – they’ll need someone within the
organization who can tell them what’s going on.
This
means that your cloud application will need some type of self-service dashboard
which can provide a view on to the application and its health. Using the
dashboard, you will be able to notify your users if there are any problems,
such as slow performance, the application being unavailable, etc. This, in
turn, will result in a better user experience as they will be informed about
problems rather than just staring at a blank screen.
7.
Transparent pricing
Before
you sign up for any cloud-based application make sure that you fully understand
the pricing model. This sounds obvious but often people are caught unaware by
‘hidden charges’ that were not fully explained before they signed up.
For
example, if your cloud application costs are based on a ‘per user’ subscription
is this concurrent users or named users? What is the cost of adding more users?
How easy is it to add more users?
If your
application costs are based on throughput or transactions, what is the cost of
going over your quota or limits? Are there ‘overage’ charges (similar to cell
phone plans)? Or are you automatically bumped up to a higher quota plan with a
higher subscription cost? Is there a grace period if this is a one-off
occurrence? Or are the additional fees (overage or plan upgrade) automatic?
Also
consider the commitment period for your subscription. If this is month-by-month
with no lock in, then this is not going to be a problem. However, if you pay
for a year’s subscription in advance, what happens if you decide to cancel
before the year is up? Do you get a refund for the unused portion of your
annual subscription?
The
answers to these questions might not affect your decision to use a particular
cloud application, but you should at least be aware of the costs before you
sign up, so that you’re not hit with unexpected fees when it’s too late to
change.
8.
Migration
Unless
you are starting from scratch with a brand new application, the chances are
that you’ll have some existing data that you want to convert and migrate to
your new cloud application. You’ll need to understand what bulk data import
capabilities are provided with your application. Most applications offer some
form of data import capability and they are usually fairly easy and
straightforward to use.
However,
you shouldn’t underestimate the amount of effort involved in migrating your
data to the cloud. The data import mechanisms usually require that your data is
in a certain format before it can be imported, so you will need extract and
convert your existing data to match the import format. You should also take
this opportunity to cleanse and refresh the data before you import it into the
cloud application. If you’re importing CRM data, this is a good chance to go
through the data and refresh any old and old-of-date customer information or
delete any obsolete product or pricing data. If you need to enhance or extend
the data, e.g. by merging in data from another source, now is a good time to do
this.
Migration
should also include the training users on the new application and planning
their switch over to the cloud. Is this going to be a ‘big bang’ approach where
everyone will move to the new application at the same time and any old
applications will be switched off? Or will you have a phased approach to moving
user to the new cloud application? Both approaches have pros and cons and you
need to decide upon your approach to this.
9.
Integration
While
using applications in the cloud can bring great benefits to your organization,
you won’t truly realize those benefits until you integrate your cloud
application with your existing applications and business processes. If you
don’t do this then you get application silos that result in fragmented business
processes with too many manual steps or data duplication and data rekeying. If
you consider a basic application, such as an HR application, even this needs to
be integrated to other applications, such as your talent management
application, your IT systems for provisioning of email accounts and system
logins, etc. Additionally, your HR application is just one part of your new
employee on-boarding business process, so your HR application needs to be integrated
into the process flows for on-boarding your new employees.
When
planning to integrate your new cloud applications with your existing
applications and business processes, you need to consider how you access the
data and functionality of the new application. Is this via an API? If so, what
standards and formats does the API use? The most common cloud application APIs
are Web Services based, but do they support SOAP/XML or REST protocols? If the
cloud application has a ‘batch’ import/export interface, what sort of data
format does it support (e.g. XML, CSV, or JSON)? Are these protocols and
formats compatible with your existing applications? Do you have in-house
knowledge of the protocols and formats?
Answering
these types of questions will help you to prepare the integration of your new
cloud application to your existing applications and processes.
10.
Managed Services
Last
but not least, we have managed services. Cloud providers are increasingly
complementing their cloud-based applications with managed services offerings to
help you to get the best out of the application. These managed services can
range from offerings to get you started quickly, such as migration services or
‘quick start’ services, all the way through to managing the full solution on
your behalf. These managed services can complement the skills and expertise
that you have in-house and make it easier to get value from your new
application.
Managed
services are also a good way to free the IT staff from the routine tasks of
managing and administering the cloud application. Hopefully, with the time
freed up they can focus on more valuable work for the organization. Ask your
cloud provider about any managed services that they offer. If these are of
interest, find out about the scope of the services – exactly what does the
cloud provider do? And what is still left for you to do? For example, if you
are using a full managed service to run and administer the cloud application on
your behalf, are there any limits on the work provided? Is it based on hours of
effort? Or number of tasks? Or will they do anything requested? How do you
request work to be done such as adding a new user to the application)? How long
does it take before they perform the requested work? How can you get urgent
work performed as a priority task e.g. if your CEO wants a report immediately?
This
type of information should be supplied, by your cloud application provider, as
a definition of the scope of a particular managed service offering. Make sure
that you understand what you are getting before you sign up for a managed
service for your new application.
So there it is – ten things
to think about when moving to the cloud. As I said earlier, this list is not
exhaustive. Your particular circumstances might add new things to the list and
make some of the above things irrelevant. However, if you use this list as a
starting point, you will be able to ask the right questions to your cloud
providers and your move to the cloud will be from a perspective of knowledge
and understanding the challenges, and not from one of blind optimism and hope.