Our hope that this document will allow a business executive to have a basic understanding of how utilizing a cloud server to host the OASIS database will affect OASIS users.
The Internet has moved from a place to surf the web to a place of business. Recently a number of companies have had a lot of success leasing “virtual servers” for use across the Internet. When user expectations match the solution, the result is a cost effective solution.
Unfortunately, not all implementations have been good. We often learn that an OASIS user has moved to the cloud when we get complaints about "OASIS slowness". After spending hours diagnosing drivers we find the server has been moved offsite, but with "good bandwidth". Unfortunately, even the best bandwidth possible today can be less than adequate. This document is presented to help explain why.
What is a “Cloud Server”?
Simply stated, a cloud server is nothing more than a server you access across the Internet. Normal OASIS implementations include a local server running a database engine (SAP Sybase SQL Anywhere) containing all the OASIS data. As users create and update transactions, the data is stored in the database. Hosting the server to a server accessible from the Internet (a cloud server) has the following advantages:
- No need to purchase or manage a local server
- The server is accessible from anywhere with the proper security
- OASIS setup for the users is just the installation of the OASIS application (no server)
Differences in Architecture
As shown above, the local server contains all the data and is accessible from the local user’s PC. Often the local switch is capable of switching 1 billion bits per second (1 Gb/s) or more. The user experience is best in this scenario.
Since the cloud server is accessed over the Internet, the connection from the user’s PC is across the local switch, out the local modem, over the Internet and to a server somewhere else on the Internet. The speed and user experience will depend heavily on the internet plan your company has with your internet service provider (ISP), traffic congestion on their network, time of day, and overall internet traffic on intermediary ISP networks between your ISP and the ISP of the cloud hosting service.
Issues We Have Seen with Cloud Server Implementations
There are a lot of surprises for cloud users:
- Speed is the biggest difference. See below.
- Backups – the service provider will keep the server up and running, but often they won’t backup the data.
- If the Internet goes out, then OASIS is not accessible (e.g. “down”)
- Security may be an issue if not properly managed
- Improperly sized solutions
Most small business networks these days have a 1 Gb/s unmanaged switch. This technology allows for multiple concurrent connections over the local network and the Internet. The technology is stable and fast. Moving the server out of the office and making it only accessible over the Internet essentially results in server access speed being reduced to that of an old style 10/100 hub (if anyone remembers that technology). Think of it this way:
- The speed is at best 1/10th the speed of the typical switch
- The overall bandwidth (speed) is shared between all devices and applications on the Internet.
- All network devices on the Internet are shared
Additionally, the Internet speed should be “symmetrical” for best results. That is, the up and down speeds need to be the same or at least more than 10 Mb/s to consider this option. One of the often overlooked bottlenecks is the upload speed. Internet providers typically offer higher download speeds and lower upload speeds. Remember: Much of what is done in OASIS involves saving attachments and transactions, which requires sending data up to the server.
Service providers will configure and ensure the proper operation of the physical server and in many cases ensure the operating system is running properly. Additionally, system redundancy will likely all but guarantee no actual server downtime. But what happens when a software glitch, virus, or malicious user deletes data or the database? This is where backups are critical. Unfortunately, the service provider will likely not directly provide a backup solution that allows you to recall a version of the database from the past.
Anything on the Internet needs to be secured. When an employee’s PC is setup to connect to and run OASIS, then they have access to your data from anywhere. If you fire that employee, consider the processes you have in place to rapidly disable the user’s connectivity to your data.
Improperly Sized Solutions
Before migrating to a cloud environment, the existing environment needs to be thoroughly evaluated in order to properly size a cloud based replacement and account for growth. Failing to properly size a solution will result in many user complaints. Here are some of the questions that should be asked.
- How large is the database? At what rate is it growing per day/week/month?
This can sometimes be difficult to measure but it is possible to get a very rough estimate. If daily backups are being run there will be many "AA" logs in the database folder, one for each day. These logs represent all activity within the database for that day. These can give a very rough estimate of the amount of data added to the database. Understand that this will be a very rough number and is generally less than the size of the log because the log includes a record of updates and deletions of existing items in addition to items that were created.
- How much RAM is the database using on average?
RAM usage must be evaluated properly. Checking RAM usage minutes or even hours after the database server has started will not give an accurate number, for instance. RAM usage after a week of daily use should give an accurate number.
- How much swap space is the database using on average?
If the server is low on RAM, the database will use swap space to make up for the lack of RAM. This will lead to slower performance from the database.
- How many users will be accessing the database?
More users means more queries to the database, meaning that more data must be cached into memory for day to day work.
- Is the database functioning well in its current environment, or is it being limited by its current environment?
This is a difficult question to answer because it is entirely subjective and will differ from customer to customer. Consider a customer with an aging Windows Server 2003 installation. The server has 4 GB of RAM. This environment has worked well for the customer for many years, and with that in mind they haven't wanted to upgrade because "everything just works". However over the past 10 years they have also grown, so their current number of users is far more than it was when the server was new. They may not realize that database performance is slow because "it has always worked like this".
Shared Resources vs Dedicated Resources
A common complaint after moving to a cloud solution is that the database is slow, even if the cloud solution appears to have plenty of system resources available to it. The most common cause of this is that the cloud hosted server is on shared storage.
When working on a local server in the office, the storage space is generally dedicated to that server and is not shared among other customers. On a cloud server, this is not the case. Most cloud providers operate on shared resource pools. Storage is shared, CPUs are shared, RAM is shared. The same storage pool could have another 30 customers using it (or thousands!). This is generally not a problem until some of those other customers are doing tasks that require high disk I/O at the same time you are doing a task that requires high disk I/O. Thus the bandwidth limitation on the storage array becomes a problem in the form of slowness or freezes in the application.