13
© 2012 EnterpriseDB Corporation. All rights reserved. EnterpriseDB and Postgres Plus are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners. www.enterprisedb.com A Cloud-Ready Enterprise Database Checklist An EnterpriseDB White Paper For DBAs, Application Developers, and Enterprise Architects 2012

Cloud-ready enterprise database checklist GCedits …info.enterprisedb.com/...cloud-ready-enterprise-database-checklist... · A Cloud-Ready Enterprise Database Checklist An ... Oracle

  • Upload
    ngohanh

  • View
    235

  • Download
    0

Embed Size (px)

Citation preview

© 2012 EnterpriseDB Corporation. All rights reserved. EnterpriseDB and Postgres Plus are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners. www.enterprisedb.com

A Cloud-Ready Enterprise

Database Checklist

An EnterpriseDB White Paper For DBAs, Application Developers, and Enterprise Architects 2012

Table of Contents

Introduction ............................................................................................................................................................. 3!What are the Important Characteristics of an Enterprise Cloud Database? .................................. 4!Proven and Robust Database / Features ..................................................................................................... 4!Administration Ease of Use & Automated Provisioning ........................................................................ 5!High Availability (HA) and Redundancy ....................................................................................................... 6!High Performance ................................................................................................................................................. 7!Transparent Scalability and Elasticity ........................................................................................................... 7 Strong Security ...................................................................................................................................................... 8!Multiple Cloud Environment Support ............................................................................................................ 9!Low Cost ................................................................................................................................................................. 10!Summary: An Enterprise Cloud Database Checklist ............................................................................ 11 Conclusion ............................................................................................................................................................. 13!About EnterpriseDB ........................................................................................................................................... 13

2

Introduction

A recent study done by the IT industry analyst group IDC found that, while cloud computing accounts for less than 2% of IT spending today, it’s estimated that by 2015 nearly 20% of all information will be "touched" and enabled by cloud computing environments. IDC believes that as much as 10% of all data will be maintained in a cloud by 2015.1 This equates to large volumes of data being stored in the cloud, with much of it being offered in a database-as-a-service (DBaaS) fashion. The data volumes stored in the cloud will likely be enormous, considering that IDC predicts a 50X data growth multiple in the next decade. Modern businesses are looking to both public and private clouds as enablers for their database management systems. However, many admit that they struggle with selecting the database provider(s) to utilize in their move to cloud computing and what features they need in order to benefit from such a move. This paper examines the question of what constitutes an enterprise-class database that takes advantage of the various benefits of cloud computing environments.

1 http://idcdocserv.com/1142 !

3

What are the important characteristics of an enterprise cloud database?

There are many software vendors who claim to have a cloud database. However, oftentimes this equates to the vendor having an Amazon machine image (AMI) of their database server that can be installed and run on a cloud provider’s platform. While certain benefits can be had through such a deployment, the full potential of cloud database computing cannot be realized through such a simplistic offering. In addition, there is also a perception that new specialized databases based on NoSQL technology is what constitutes a true cloud database, when in fact these specialized databases serve the needs of a specific category in the market and they are beginning to integrate or co-exist with traditional relational database systems that serve equally important functions. This naturally begs the question of what does represent a robust feature set for an enterprise-ready cloud database – one that combines proven data management functionality with the advantages that come from running in a cloud environment? While experts may disagree on some particular feature-set items, almost all agree on the following set of criteria. First and foremost, a cloud database needs to meet the requirements and rigors expected of any database whether it’s hosted in a cloud or not. For the vast majority of database applications in use, this means supporting the wealth of features commonly available in a traditional relational database as embodied by the big three: Oracle database, IBM DB2, and Microsoft SQL Server. From the perspective of cloud based database computing and the promise it brings to the enterprise, organizations should focus on evaluating the following characteristics: • •

Proven and Robust Database / Features Many, if not most, users of databases are looking to their existing database vendors for cloud solutions. This makes sense if an organization is generally satisfied with its database choice and

4

wishes to take advantage of the benefits of cloud computing. So, from a traditional database standpoint, users may expect to use their proven databases such as Oracle, DB2 and SQL Server along with the features they currently enjoy in a cloud offering. However, many organizations are already considering open source databases to reduce their licensing costs and will want to work with these in a cloud environment. While there are many open source databases already in the cloud, many of these are either specialized for specific application use cases, and not suited to the multitude of applications better served by traditional relational databases, or they have yet to be proven over years of development, standards adoption, use and reliability. For these reasons, users are rightfully cautious to avoid a type of ‘double jeopardy’ posed by moving into a new computing environment (the cloud) and an as-yet unproven database model. So when it comes to open source choices for cloud computing, the most likely databases to consider are MySQL and PostgreSQL. These databases offer the double benefit of being well known and proven databases that can reduce costs and if used in a cloud environment can reduce costs even further.

Additionally, whether proprietary or open source, users foraying into the cloud will certainly not want to experience the loss of any features they currently use just because they are in a cloud environment, indeed they will be expecting just the opposite. So an important question to ask any cloud database vendor is will they lose any features as a cost for moving to the cloud? Finally, because of the cloud’s reliance on virtual machine instances

(creating potentially many database clusters), your cloud database vendor needs to have a reliable plan in place to manage and update your database software for regular maintenance releases and ad-hoc security updates as well.

Administration Ease of Use/Automated Provisioning Nearly every IT industry analyst group says that the ratio of database administrators to managed databases continues to move in a direction where, each year, a DBA is managing more databases than the year prior. This is not surprising given the explosive growth in data across all industries.

As an example, according to a recent report from consulting giant McKinsey & Company, the average investment firm with fewer than 1,000 employees has 3.8 petabytes of data stored and experiences a data growth rate of 40 percent per year.2

2 http://www.mckinsey.com/mgi/publications/big_data/index.asp !

5

The absolute last thing a database administration staff wants or needs is an increased management burden that comes from administering databases in the cloud. Steep learning curves, inadequate or non-existent tools, and other issues can be steep barriers to cloud database adoption. To stave off these and similar problems, the cloud database should include a management framework that includes smart and intuitive interfaces, which allow a DBA to easily setup, manage, monitor, and control their cloud database deployments. Such tooling would enable an increase in the database to DBA ratio without adding pain. At the heart of making DBAs more efficient with more databases, is automated provisioning. Virtualization has made provisioning templated operating system and database installations much easier, and is supported in cloud environments. However, with databases there are other, more complex, tasks that are ripe for automating in a cloud environment. One such example is load balancing. Since scaling involves the addition of new database instances, (i.e. multiple database instances are used for a single logical database), a built-in form of load balancing should also be present that helps reduce or eliminate machine hotspots especially where query activity is concerned. Another great candidate for automatic provisioning in the cloud is creating high availability setups using native database features like replication and automatically expanding these configurations in response to demand. Finally, automated provisioning and easy administration of cloud databases is especially important for application developers at small companies and development departments in large organizations. They don’t have the time, inclination, or skills to deal with database deployment, administration and management issues, and they stand to benefit greatly from a competent cloud database provisioning and management system.

High Availability (HA) and Redundancy There is no question that database downtime adversely impacts a company’s business. The cost of database downtime varies, with average downtime charges ranging anywhere from approximately

$90,000 per hour in the media sector to about $6.48 million per hour for large online brokerages.3 One expectation of a good cloud database is that it should offer both high degrees of uptime as well as redundancy in the case of a machine or zone/region failure that occurs within the cloud provider’s infrastructure. Both of these attributes help guarantee little to no business disruption for the applications that make use of the database.

Integral to HA are fast and efficient fail-over features that execute automatically and are easy to deploy and setup across geographies. Cluster recovery and server replacement in the event of a server going offline should be automatic and easy to manage with little impact on user operations. Finally, backups need to be automated, grandfathered if desired, and their recovery require little intervention from a DBA.

3 http://www.information-management.com/infodirect/2009_133/downtime_cost-10015855-1.html !

6

High Performance In today’s always-on business world, where the competition is just a click away and decisions have to be made as quickly as possible, fast database performance has never been more important. Consider the following facts4 from some of today’s premier software and services providers on how performance impacts their business:

These facts speak for themselves where a cloud’s database performance is concerned.

The database under consideration must exhibit both strong read and write performance, and also have the ability to increase performance through the addition of more database nodes when the underlying user traffic demands faster response times as is so common with many popular applications both on the traditional internet and more recently the mobile web (tablets and smart phones).

Transparent Scalability and Elasticity Transparent database characteristics in the cloud refer to the ability to modify a cloud database setup without interruption or degradation to the user community and without any modifications to applications using the data. This is obviously a critical feature of managing and maintaining any database and necessary in the cloud as well. One statement made by nearly every successful business that sees rapid growth in demand for its products and services is, “I never thought we’d grow so fast!” Accelerating customer activity for a company translates into increased transactional and query traffic for the databases that power the key applications, which drive the underlying business. If the underlying database is not capable of growing along with a company’s increased customer traffic, then the business simply becomes bottlenecked with the end results being low customer service satisfaction ratings and lost revenue.

4 For the individual references for each statistic, see: http://blog.equinix.com/2011/03/optimizing-internet-application-performance/

!

7

Scalability refers to the ability of a cloud database to ramp up raw compute power (CPU/RAM), add physical data storage when needed and add additional database instances to service more active users and connections. This keeps the business growing fast without a loss in service levels. Elasticity addresses the ability to scale compute power, storage and database instances up or down as performance and user access wax and wane for some applications. This is one area where cloud features can help data centers approach utility-like pricing for the resources they use and not be saddled with compute power/hardware that is idle and costly to the bottom line. A cloud database should exploit the elasticity capabilities of the cloud, meaning that it should allow for easy and transparent additions of new database nodes that increase the overall scalability of the underling database to serve more users. An added bonus involves the cloud database proactively detecting capacity shortfalls in advance according to user-defined thresholds and adding new capacity without any user intervention. Finally, since scaling involves the addition of new database instances (i.e. multiple database instances are used for a single logical database), adjustments to related features like load balancing should be automatic as well.

Strong Security In September 2011, LinkedIn questioned its user base about their main concerns with moving to a cloud-based infrastructure. By a margin of over two to one, the primary worry in these professionals’ minds was security.

8

These results are not surprising given that many businesses retain sensitive customer information that, if lost, stolen, or compromised, could result in large monetary damages, lost revenue for the business, and damage to its reputation. According to the Ponemon Institute’s six annual U.S. Cost of a Data Breach Study, the average total per-incident cost of a security breach for a business was $7.2 million. In addition, many IT shops are still unsure of outsourcing their computing resources and the consequent reduction in control of those assets. That said, it’s important to keep in mind that outsourcing IT functions is exactly what many new businesses are looking for. In either case, security only becomes more important. Because of these and similar facts, it’s paramount that the cloud database provide strong security features in the areas of secured data transfer, external authorization, system permissions, and object access. Furthermore, the cloud database should offer built-in auditing that easily allows administrators to answer the questions of “who looked at what when?” and “who changed what when?” In addition, with SQL injection attacks on the rise, a cloud database must offer some sort of SQL-based firewall against SQL injection attempts. One last consideration is for companies that utilize the database for all or part of their application logic (e.g. through stored procedures, functions, etc.) Businesses should require that the cloud database be able to encrypt code objects stored in the database to guard their corporate IP.

Multiple Cloud Environment Support Another key requirement of an enterprise-class cloud database is that it must support popular public cloud providers (e.g. Amazon EC2, Rackspace, etc.) as well as software from private cloud vendors in case a business wishes to deploy cloud-style applications both inside and outside their data center. Such support ensures the business is not locked in to one particular cloud provider or private cloud software vendor. It also provides a measure of choice in seeking out the best cost structure over time or by application need. It is also not desirable to rely on the provider to provide a cloud database provisioning and management system, as they typically aren’t database experts. So, various implementations of the same database engine can vary widely in quality and performance. It is more desirable to have a database vendor provide the critical database features across any cloud environment for consistency and expertise.

9

Low Cost Some traditional RDBMS providers are as expensive or more expensive in a cloud deployment as they are in a typical on-premise implementation. While most IT professionals who begin investigating cloud strategies as an alternative to typical on-premise architectures assume they will see reduced software costs in a cloud implementation, they oftentimes have a rude awakening when they see no cost reductions where their database is concerned. Open source software has challenged proprietary vendors on many fronts where cost is concerned in the cloud (e.g. application servers, middleware, etc.), but the database layer has not experienced as much disruption. The primary reason is, while open source databases such as Oracle’s MySQL do offer cost savings over legacy RDBMS vendors, MySQL does not have the enterprise-class feature set needed by many modern businesses for their cloud-enabled applications. It is common knowledge that PostgreSQL has a superior feature set to MySQL. However, until recently, a version of PostgreSQL that is cloud ready has not been available even though demand has been extremely strong as evidenced by the amount of requests seen on Amazon’s AWS forums:

This situation has now changed with the development of Postgres Plus Cloud Database by EnterpriseDB.

10

Summary: An Enterprise Cloud Database Checklist

Below is a chart summarizing many of the topics mentioned in this paper, to be used as a checklist. The companion white paper “Postgres Plus Cloud Database – An Enterprise-Ready Cloud Database” discusses in detail how EnterpriseDB’s new Postgres Plus Cloud Database addresses each one of the topics below.

Cloud Database Requirement

Postgres Plus Cloud Database

Option 2 Option 2

Database Use Case Fit Enterprise class features

Full compliment of tools

Proven track record No feature restrictions Upgrade path Administration Ease of Use and Automation Browser-based Console

Point and Click Interface

Automatic Deployments

Auto-setup Load Balancing

Auto-setup Replication

Automatic Scaling Global Status Developer Sandbox Clones

High Availability and Redundancy Reliable Binary Replication

Automatic Setup Automatic Backups Automatic Failover Easy Failback Multi-geography support

11

High Performance High Write Throughput

High Read Throughput

Automatic Load Balancing

Automatic node additions

Transparent Scalability and Elasticity Transparent Operations

Scale Compute Power Scale Storage Scale Server Instances

Scale Connections Scale Up / Scale Down

User Set Scaling Thresholds

Strong Security Secure Data Transfer External Authentication

System Permissions Object Access Rights Built-in Auditing SQL Injection Protection

Server Code Obfuscation

Supported Environments

Public Clouds Private Clouds Traditional Hardware Low Cost Pure Open Source Option

Low Cost Proprietary Option

12

Conclusion

Industry analysts agree that a wide-scale move to cloud computing is already under way, with a key responsibility of cloud-based systems being the delivery of a lower cost, easier to manage infrastructure that doesn’t sacrifice existing functionality while providing new options for scalability and elasticity not available in traditional deployments. To competently deliver this, and handle the expected wave of data flowing into cloud-based systems, a cloud database must contain a proven and enterprise-class feature set, but also be able to fully deliver on the benefits that come with a move to cloud computing.

About EnterpriseDB

EnterpriseDB is the enterprise PostgreSQL company, providing products and services worldwide that are based on and support PostgreSQL, the world's most advanced open source database. EnterpriseDB’s Postgres Plus products are ideally suited for transaction-intensive applications requiring superior performance, massive scalability, and compatibility with proprietary database products. Postgres Plus products provide an economical open source alternative or complement to proprietary databases without sacrificing features or quality. EnterpriseDB understands that adopting a new database is not a trivial task. You have lots of questions needing answers, schedules and budgets to keep, and processes to follow. We have helped thousands of organizations like yours through the steps to investigate, evaluate, prove, develop, and deploy their PostgreSQL solutions. If you would like to discuss training, consulting, or enterprise support options, please contact EnterpriseDB directly. EnterpriseDB has offices in North America, Europe, and Asia. The company was founded in 2004 and is headquartered in Bedford, MA. For more information, please visit http://www.enterprisedb.com. Sales Inquiries:

[email protected] (US) [email protected] (Intl) +1-732-357-3390 +1-877-377-4352

General Inquiries: [email protected] [email protected] (APAC) [email protected] (EMEA) +1-732-357-3390

13