When choosing a database to run your organization, many factors need to be considered. Does it provide the performance, scale, and availability required? Does it provide flexibility and efficiency by supporting all business workloads? Does it enable innovation with integrated machine learning, advanced analytics, and application development tools?
Organizations require an extensive set of capabilities in their applications in order to deliver the level of service their customers expect in an ever-changing business environment. Deciding where to deploy the databases that support an application portfolio is crucial since there are plusses and minuses for each deployment option.
When deciding where to locate the databases your organization needs, it’s important to consider the type of application(s) each database supports, the dataflows between the databases and applications, and the level of criticality for each database. Core business applications need higher levels of performance, scale, availability, and security. Regardless of the location where these databases run, they should provide key capabilities, including the following:
Beyond these core database capabilities, the deployment platform enables or restricts how you can use them. However, enterprise databases must have high availability built in at the software and hardware levels to support 24/7 operations. Disaster recovery is also critical, particularly when faced with geographically dispersed organizations and ransomware threats. And, while many people may overlook it, high performance is crucial since it allows business-critical applications to support the high-volume transactions and analytics that are required to support growth.
For example, a retail company that needs to enable many customer transactions and run near real-time reports against current data may choose a converged database solution in the cloud while a bank that requires the maximum level of security and data residency may need a solution running in their own data center.
Enterprises need to look at not only which databases best fit their needs but also where to deploy that database. These choices are interrelated because a particular database may only run in one location, or the platform on which it runs in one location is vastly superior to the platform available in another location. An easy way to combine these is to see whether the preferred database can run in the desired location(s), for instance in the public cloud, in a private data center, in a cloud within the data center, or in an edge environment.
Deploying databases in customer data centers offers several advantages. Databases are physically close to other systems, applications, data resources, and users so data can be accessed with low latency. In an on-premises data center, the databases and infrastructure are fully under customer control, which satisfies data residency requirements as well as many industry best practices. Some business practices also require using a capital expense (CapEx) financial model, which is made easier by deploying resources in customer data centers. This approach requires a database administrator (DBA) to manage the underlying hardware infrastructure as well as the database.
There are two flavors to this approach:
For many organizations, running their databases in a public cloud is an appealing choice. It has the advantage of being quick to implement, with potentially no initial capital requirements. Public clouds also provide some level of infrastructure and software management. Deploying on a public cloud doesn’t require any investment in data center space, machinery, or hardware operations staff, which can reduce costs. Plus, users can create databases in minutes since there’s no need to separately install and manage all the hardware and software components to run the database. The public cloud approach allows customers to easily leverage additional or different resources over time as workloads evolve.
When using a public cloud, there are different approaches organizations can take and different tradeoffs for each one. These different approaches are deploying on Infrastructure-as-a-Service (IaaS), Platform as-a-Service (PaaS), multicloud environments, public clouds in customer data centers, and private clouds.
One approach is to create a database environment in the cloud on bare-metal or virtualized infrastructure and then managing that infrastructure as if it was on premises. This allows the infrastructure to be tailored exactly as desired and eliminates the need to manage hardware and potentially virtualization software. Significant DBA time and system-management expertise is required to manage this implementation on an ongoing basis.
There are specific reasons for choosing this approach:
Deploying databases in IaaS environments may be best for organizations that use highly specialized databases, in particular for those that are small, unlikely to grow, and are tightly integrated with applications.
Also known as database as a service (DBaaS), this type of cloud service provides the compute, storage, and database software customers need to run a database. Some of these services eliminate the requirement for DBAs to set up or manage physical hardware, the installation of software, or to configure the database. A DBaaS environment enables users to provision databases in a matter of minutes, eliminates system management work, and often reduces the amount of database administration required. There are several options for deploying databases within a DBaaS environment:
Within the converged database and autonomous database approaches, organizations may be able to use several different types of infrastructure:
Beyond the deployment choice, the converged and autonomous database options can be tuned to support specific workload types while still supporting all other workloads. Some of these workload types include:
Deploying databases in PaaS environments may be best for organizations that want to minimize infrastructure and database management operations or are looking to reduce overall costs by consolidating infrastructure for hundreds to thousands of databases. Autonomous databases in PaaS environments bring the added benefit of virtually eliminating database management itself, allowing data management teams to focus on schemas, data, and users instead of the underlying database software.
Large enterprises that need to run hundreds of applications have found that it is best to utilize multiple clouds. For some business needs, the solution that provides the most functionality, highest performance, and lowest cost may require distributing the application and database stack across multiple clouds in what’s known as a multicloud environment.
In multicloud environments, it’s common that the application tier runs in one cloud (possibly because it only runs there) while the database tier runs on a different cloud that provides higher performance, greater scale, or lower costs than the cloud where the application tier is running. In multicloud environments, it’s critical that the cloud data centers from each provider be located relatively close to each other in order to minimize latency that can reduce application performance.
It’s also important that different cloud vendors used in a multicloud architecture have a strategic relationship with common support policies to identify and resolve any issues that arise and to minimize data egress costs for each cloud.
Deploying databases in a multicloud environment may be best for organizations that need a high-performance, enterprise (or perhaps autonomous) database and must be able to use applications that are not readily available in the same cloud.
Many business requirements or government regulations necessitate that a company’s data reside inside its data center or within the geographic limits of the country it resides in. To achieve these goals, organizations can deploy public cloud resources inside their data center with the cloud provider managing the infrastructure and, depending on the service, the databases. This approach provides the value and benefits of cloud, including a public cloud subscription-based service that meets requirements for data residency, security, and residency. This local cloud as a subscription (LCaaS) model provides the automated management the cloud provides, high performance from dedicated infrastructure, and efficiency benefits from consolidation. Customers can scale up and down their consumption as workloads change during the day or over time. Deploying on a public cloud service in customer data centers provides many advantages, including the following:
Some of these solutions allow the deployment of an autonomous database on public cloud resources in customer data centers, enabling organizations to benefit from the automated scaling, provisioning, patching, and fault management those databases provide. These advanced automation capabilities increase data availability and security by eliminating human errors, while lowering costs with pay-per-use consumption economics..
Deploying databases on public cloud resources in customer data centers is best for organizations that have data residency and security requirements that cannot be met in public cloud regions. This approach may also be best for enterprises that want to benefit from cloud automation and pay-per-use database pricing while still running applications on existing resources in their data centers.
Historically, databases were deployed on shared infrastructure in customer data centers. This infrastructure ran applications, middleware, and databases on infrastructure that was designed for good performance and availability, but it was expensive and didn’t offer any database-specific performance optimizations.
More recently, this shared approach has given way to the concept of a private database cloud where dedicated, on-premises infrastructure is specifically tuned to optimally run databases. These private database clouds are owned and managed by the enterprise that uses them, which has the advantage of allowing extremely high levels of database consolidation with multiple database versions running on the same infrastructure. These platforms have high levels of built-in automation to ensure that each database gets the resources it needs to meet performance SLAs while also prioritizing latency sensitive activities for crucial applications to help ensure that they run with the highest possible performance.
Running databases in a private cloud may be the best approach for organizations with high levels of database and application customizations and interconnectedness. For most applications, private database clouds look indistinguishable from legacy on-premises database deployments, so adopting them may be the easiest approach to start moving to the cloud.
In most organizations, it isn’t an either-or choice of deploying databases in the cloud or their own data centers: they do both and need the two environments to work together. There are many scenarios where customers will need to deploy in hybrid cloud environments. For example, many companies develop applications in one location and deploy them in another. Or a company may have applications supporting remote operations running in the public cloud while centralized operations run in its data centers.
To minimize IT workloads, one of the key requirements for deploying databases in hybrid cloud environments is that the database software and the hardware it runs on provide the same capabilities, management, and security in all environments. Environments with high levels of identicality reduce the amount of effort required to move databases and applications to different locations and manage them in a consistent manner.
Organizations need to select a cloud provider that offers a complete, integrated solution, with a broad set of converged database capabilities and high levels of infrastructure identicality that enable deployment wherever required. Such a solution helps ensure that organizations can meet flexibility, scalability and growth requirements while keeping costs low.