Has anyone of you noticed a dramatic surge of interest in database migration in the recent years? Today cloud-based databases represent a cutting-edge trend in database technology. Adoption of cloud-based databases is ramping up, as an increasing number of companies see the value of moving from traditional on-premise data stores to off-premise cloud services.
In today’s blog post, we will discuss the current issue of database migration and address the topical concern about cloud database security. In addition, we are going to expand on importance and peculiarities of database documentation and present to your attention some of the best tools for documenting databases.
Database migration essentials
First of all, for the sake of your clear understanding, we encourage you to learn how traditional data differs from big data in our previous blog post. If you are not a newbie to this topic and already know some basics, scroll down. In this short paragraph, we will give you a quick overview of what a cloud database is and dwell a bit on its key benefits and some disadvantages.
A cloud database is a database running on a cloud computing platform that could be private, public or hybrid. In 2012, Citrix Cloud Survey Guide wrote: “First to mind when asked what ‘the cloud’ is, a majority respond it’s either an actual cloud, the sky, or something related to weather.” As you see, the majority of people are rather hazy about what cloud computing means.
By and large, there are two methods for running a database in the cloud: database as a service model (DBaaS) or traditional model.
In the traditional cloud model, a virtual machine image should be purchased for a limited time. So the database is then run on such virtual machines. On the other hand, the DBaaS model is a fee-based subscription service in which the database runs on the service provider’s physical infrastructure. One estimate has the market for cloud databases and DBaaS growing from $1 billion this year to $14 billion by 2019.
The question arises then, why more and more companies are currently moving towards cloud computing. The answer is black and white: in comparison with a traditional database operating on an on-site physical server, a cloud database offers a number of benefits:
- Cost savings
By migrating to the cloud, companies can significantly reduce their costs. Cloud computing means less staff, a smaller amount of needed physical space, no need for advanced and specialized tools and other resources to manage and maintain complex IT environments. Eventually, it leads to reduced capital expenditures as well as decreased electrical and HVAC operating costs.
- Scalability and elasticity
Cloud computing allows your business to easily upscale or downscale your IT requirements when it is needed. In other words, it is the ability of hardware or software to continue to function well when it is changed in size or volume in order to meet a user’s need. Сloud elasticity, however, is a slightly different notion. It is the ability of the application to make calls to the hypervisor to create new machine instances with the resources required in order to meet the current demand. This means that when demand is expected to exceed what one virtual machine can provide, another one is created to support it.
- Disaster Recovery
Using the cloud to aid disaster recovery (DR) is becoming increasingly common. Now the entire virtual server can be copied or backed up to an offsite data center and spun up on a virtual host in a matter of minutes. Data can be safely and accurately transferred from one data center to a second data center without the burden of reloading each component of the server. Disaster recovery becomes much more cost-effective with significantly faster recovery times.
Cloud computing enables employees to gain access to data and applications from anywhere, making them more productive. They have the ability to access, modify and save files from any number of devices in any location. Moreover, they can share and work remotely with other people on the same files. Indeed, this is one of the greatest benefits that cloud brings.
According to a 2014 survey conducted by the Harvard Business Review (HBR), business agility is a key driver for the adoption of cloud. Agility is defined as the capability of companies to adapt rapidly and cost efficiently to changes. Cloud computing services are highly automated and self-provisioning, giving end-users the ability to quickly scale up their needs, avoiding any manual intervention. Businesses can quickly respond to customer demands, which improves overall service and responsiveness.
On the flip side, there are some minor disadvantages that some companies encounter in the process of database migration. Let’s take a look at them:
- Low bandwidth
The benefits of the cloud-based databases cannot be utilized with low bandwidth. For cloud computing, a stable internet connection is a must in order to have access to all the data. The quality of the cloud computing connection can get affected when a lot of people utilize the net at the same time.
- Lack of control
Businesses using cloud computing have minimal control over the functions of the software as well as hardware. The applications can never be run locally due to the remote software.
- Security issues
It is a common nightmare of every IT director – to imagine that the company’s data falls into the hands of their competitors. Many people are skeptical of cloud services because of frequent data breaches, the loss of the encryption key, a malicious hack, or a careless cloud service provider. This issue has become a major concern nowadays. Thus, I would like to dwell upon it in more details.
Secure clouds wanted!
Companies are no longer hesitant to migrate their data to the cloud. Click To Tweet What is impeding this process of migration is a concern over security. Embracing the well-established problem of cloud database security, one has to take into consideration such issues as cloud encryption, management of the encryption keys, and use of innovative technologies like split-key encryption and homomorphic key management.
- Data breaches
Businesses experience significant losses when hackers gain access to sensitive information stored in the cloud and use it for personal gain. Below we enumerated top security breach examples:
1) Yahoo! Data breach was one of the biggest database breaches in history. Hackers stole data on 500 million users in 2014. The first hacking attack, however, happened in August 2013. Over a billion accounts were compromised. The latest breach that occurred in February 2017 is quite small, with only 32 million accounts being accessed.
2) Hacking Team got hacked on July 2015. 400 GB of confidential information was leaked.
3) Kaspersky Lab, one of the biggest and most well-known cyber security research firms in the world, also experienced an attack on their own internal network in June 2015.
4) In July 2015 Ashley Madison reported about a massive breach where over 32 million users account details and logins were exposed.
5) Anthem medical data breach was a cyber attack which exposed personal information of tens of millions of customers and employees, including the CEO’s.
- Data loss
If a company’s files are tampered with and there are no up-to-date backups of these files, they can be lost forever. It’s better to have a disaster recovery plan for such cases – a set of strategies that are required in order to restore hardware, applications, and data quickly for business continuity.
- Hacked interfaces and APIs
IT teams use interfaces and APIs to manage and interact with cloud services. They tend to be the most exposed part of a system because they’re usually accessible from the open Internet. Weak interfaces and APIs expose organizations to security issues related to confidentiality, integrity, availability, and accountability. To learn more about API, read one of our recent blog posts.
- Account hijacking
Attackers may gain access to a user’s account by phishing or using holes in software security systems to discover passwords. Organizations should prohibit the sharing of account credentials between users and services, otherwise stolen data may be modified, manipulated and used to launch other attacks. The main thing that cloud provider should ensure is that account credentials cannot be stolen.
- Malware attacks
Cloud malware and viruses can be fatal to the data in the cloud. The potential for damage is greater when hackers spread malware across the whole network than if they only affect a small, locally-stored organization network.
Before opting for database migration, it’s better to build a robust security strategy. Here are some questions to ask any cloud provider before making a final decision:
- Who has access to the company’s data?
- Can he provide internal controls to prevent unauthorized viewing, copying, or emailing of customer information?
- How is data encrypted in the cloud?
- How are data encryption keys managed?
- What are the peculiarities of data backups and disaster recovery?
We have highlighted for you pros and cons of moving towards a cloud service. Make your choice, but don’t let the risks of cloud computing overshadow its benefits. There are ways to manage your risk of using cloud computing, and we’ll discuss those now.
Database documentation: terra incognita
Rarely do companies care about database documentation. It seems to be one of those uncharted territories as yet. Everyone is now familiar with API or testing documentation, but a few people really understand what database documentation is and whether it is actually needed.
To put it simply, database documentation is as important as sufficient documentation in the cockpit of every airplane. In case of a malfunction or disaster, it helps to determine the reason for the event and triggers the execution of a set of actions in order to correct the reason and avoid air crashes. Documenting a database during its development is vital, since it:
- helps easily point to the most troublesome parts of the system.
- facilitates making a right decision because the risk is easier to evaluate.
- reduces risk when extending or upgrading a system.
- boosts the productivity of employees by providing a glossary of commonly used terms, naming conventions and commonly-used strategy patterns.
- helps to transfer knowledge within a company and ensures smooth onboarding process.
Database documentation caters to a variety of audiences: database developers, database administrators, testers, business executives and even external consultants. The fundamental point is that the representation of the same documentation should vary according to each target audience. Let’s say, highlighted reports and schemas would perfectly work for business people and upper management staff… but not for developers. They would certainly frown at you if you walk up to them with a ‘pretty’ diagram, highlighted in red. They immediately start associating it with some kind of trouble. And we can imagine how that conversation would end.
Database documentation is most commonly classified by tier: for instance, application logic documentation vs. database logic documentation. There is also hardware environment documentation that includes installation, maintenance, disaster recovery planning and testing. This documentation often takes many forms including a data dictionary, database administrator guides, database architecture documentation, and database functional specifications.
Its quality depends on the priority it is given, resources and time allocated to it. There are a variety of tools available to assist in the development of database documentation. We suggest considering the following list of database documentation software:
1) Dataedo is a great tool to document your SQL Server, Oracle and MySQL databases. It can describe each table and column (data dictionary), procedure and function, create ER diagrams from existing schema and generate HTML, PDF or Excel documents. Dataedo has a free version with limited functionality for simple documentations. To get the whole range of options, however, you need to buy a license.
2) dbdesc produces detailed documents describing your software. It supports the following databases: SQL Server, Microsoft Desktop Engine, Access and Firebird, Oracle. dbdesc uses XSLT templates to transform an XML file that holds your database description to get the final documentation. Sample XSLT templates are included to get HTML, RTF and Word 2003 files. Now the software includes a built-in report engine and report viewer to easily browse database documentation. If you are interested you may download a free trial or purchase it for just $99.
3) SchemaSpy is a free and open source Java-based tool (requires Java 8 or higher) that analyzes the metadata of a schema in a database and generates HTML and PNG-based entity relationship diagrams.
4) TechWriter for Databases is the simplest way to automatically create database reference documentation for Access, MySQL, Oracle, SAS, SQL Server, PostgreSQL and DB2 databases. TechWriter can generate documentation in PDF, Compiled Help (CHM), Word/RTF, HTML, XPS and XML formats. It has several paid versions that differ in functionality.
Summing up, on the surface database migration may seem to be simple. Unfortunately, things are not quite that easy. In fact, it is a complicated process that requires great effort and sufficient database documentation. Get the best of our tips and try to implement them in your company as soon as possible. Let the above-mentioned tools help you to leverage your time so that you can get more done.