The cloud has a lot to offer IT departments. It provides the benefits of virtualization in a consumption-based model, and it allows new applications to quickly be deployed while waiting for, or even completely forgoing, on-premises infrastructure. This can provide a better time-to-value and greater flexibility for the business. It can help organizations reduce, or eliminate, their on-premises data center footprint.
But while the cloud has a lot of potential to disrupt how IT manages applications in the data center, it also has the potential to disrupt how IT delivers services to end users.
In order to understand how cloud will disrupt end-user computing, we first need to look at how organizations are adopting the cloud. We also need to look at how the cloud can change application development patterns, and how that will change how IT delivers services to end users.
The Current State of Cloud
When people talk about cloud, they’re usually talking about three different types of services. These services, and their definitions, are:
- Infrastructure-as-a-Service: Running virtual machines in a hosted, multi-tenant virtual data center.
- Platform-as-a-Service: Allows developers to subscribe to build applications without having to build the supporting infrastructure. The platform can include some combination of web services, application run time services (like .Net or Java), databases, message bus services, and other managed components.
- Software-as-a-Service: Subscription to a vendor hosted and managed application.
The best analogy to explain this comparing the different cloud offerings with different types of pizza restaurants using the graphic below from episerver.com:
Image retrieved from: http://www.episerver.com/learn/resources/blog/fred-bals/pizza-as-a-service/
So what does this have to do with End-User Computing?
Today, it seems like enterprises that are adopting cloud are going in one of two directions. The first is migrating their data centers into infrastructure-as-a-service offerings with some platform-as-a-service mixed in. The other direction is replacing applications with software-as-a-service options. The former is migrating your applications to Azure or AWS EC2, the latter is replacing on-premises services with options like ServiceNow or Microsoft Office 365.
Both options can present challenges to how enterprises deliver applications to end-users. And the choices made when migrating on-premises applications to the cloud can greatly impact end-user experience.
The challenges around software-as-a-service deal more with identity management, so this post will focus on migrating on-premises applications to the cloud.
Know Thy Applications – Infrastructure-As-A-Service and EUC Challenges
Infrastructure-as-a-Service offerings provide IT organizations with virtual machines running in a cloud service. These offerings provide different virtual machines optimized for different tasks, and they provide the flexibility to meet the various needs of an enterprise IT organization. They allow IT organizations to bring their on-premises business applications into the cloud.
The lifeblood of many businesses is Win32 applications. Whether they are commercial or developed in house, these applications are often critical to some portion of a business process. Many of these applications were never designed with high availability or the cloud in mind, and the developer and/or the source code may be long gone. Or they might not be easily replaced because they are deeply integrated into critical processes or other enterprise systems.
Many Win32 applications have clients that expect to connect to local servers. But when you move those servers to a remote datacenter, including the cloud, it can introduce problems that makes the application nearly unusable. Common problems that users encounter are longer application load times, increased transaction times, and reports taking longer to preview and/or print.
These problems make employees less productive, and it has an impact on the efficiency and profitability of the business.
A few jobs ago, I was working for a company that had its headquarters, local office, and data center co-located in the same building. They also had a number of other regional offices scattered across our state and the country. The company had grown to the point where they were running out of space, and they decided to split the corporate and local offices. The corporate team moved to a new building a few miles away, but the data center remained in the building.
Many of the corporate employees were users of a two-tier business application, and the application client connected directly to the database server. Moving users of a fat client application a few miles down the road from the database server had a significant impact on application performance and user experience. Application response suffered, and user complaints rose. Critical business processes took longer, and productivity suffered as a result.
More bandwidth was procured. That didn’t solve the issue, and IT was sent scrambling for a new solution. Eventually, these issues were addressed with a solution that was already in use for other areas of the business – placing the core applications into Windows Terminal Services and provide users at the corporate office with a published desktop that provided their required applications.
This solution solved their user experience and application performance problems. But it required other adjustments to the server environment, business process workflows, and how users interact with the technology that enables them to work. It took time for users to adjust to the changes. Many of the issues were addressed when the business moved everything to a colocation facility a hundred miles away a few months later.
Ensuring Success When Migrating Applications to the Cloud
The business has said it’s time to move some applications to the cloud. How do you ensure it’s a success and meets the business and technical requirements of that application while making sure an angry mob of users don’t show up at your office with torches and pitchforks?
The first thing is to understand your application portfolio. That understanding goes beyond having visibility into what applications you have in your environment and how those applications work from a technical perspective. You need wholistic view of your applications and keep the following questions in mind:
- Who uses the application?
- What do the users do in the application?
- How do the users access the application?
- Where does it fit into business processes and workflows?
- What other business systems does the application integrate with?
- How is that integration handled?
Applications rarely exist in a vacuum, and making changes to one not only impacts the users, but it can impact other applications and business processes as well.
By understanding your applications, you will be able to build a roadmap of when applications should migrate to the cloud and effectively mitigate any impacts to both user experience and enterprise integrations.
The second thing is to test it extensively. The testing needs to be more extensive than functional testing to ensure that the application will run on the server images built by the cloud providers, and it needs to include extensive user experience and user acceptance testing. This may include spending time with users measuring tasks with a stop-watch to compare how long tasks take in cloud-hosted systems versus on-premises systems.
If application performance isn’t up to user standards and has a significant impact on productivity, you may need to start investigating solutions for bringing users closer to the cloud-hosted applications. This includes solutions like Citrix, VMware Horizon Cloud, or Amazon Workspaces or AppStream. These solutions bring users closer to the applications, and it can give users an on-premises experience in the cloud.
The third thing is to plan ahead. Having a roadmap and knowing your application portfolio enables you to plan for when you need capacity or specific features to support users, and it can guide your architecture and product selection. You don’t want to get three years into a five year migration and find out that the solution you selected doesn’t have the features you require for a use case or that the environment wasn’t architected to support the number of users.
When planning to migrate applications from your on-premises datacenters to an infrastructure-as-a-service offering, it’s important to know your applications and take end-user experience into account. It’s important to test, and understand, how these applications perform when the application servers and databases are remote to the application client. If you don’t, you not only anger your users, but you also make them less productive and less profitable overall.