翻译文章:采用何种方式实现云中的MySQL数据库

温馨提示:本文由厦门大学计算机系林子雨翻译自英文网站,转载请注明出处,仅用于学习交流,请勿用于商业用途。

[本文翻译的原始出处:厦门大学计算机系数据库实验室网站林子雨老师的云数据库技术资料专区https://dblab.xmu.edu.cn/topic/research/documentation/cloud_database]

采用何种方式实现云中的MySQL数据库

翻译:厦门大学计算机系林子雨(https://dblab.xmu.edu.cn/linziyu)   翻译时间:2012年4月27日星期五

作为一个免费开源的数据库,MySQL是当前应用最广泛的数据库之一。如果你是一个开发者、DBA或者一个IT管理者,很可能,你的公司已经有不少应用是运行在MySQL上的,而且对于那些即将开发的应用而言,My SQL也是一个很自然的选择。由于越来越多的应用会被迁移到云端,MySQL在云中越来越普及。

在云中部署MySQL有两种主要途径:

  • DIY(do-it-yourself)的方式。你自己选择一个云服务商,然后,在上面建立自己的云应用实例,并且在上面安装和配置MySQL数据库;
  • 订阅一个DBaaS(Database as a service)。这意味着,MySQL是作为一种服务提供给你,你只需要把应用程序连接到云中的MySQL就可以了。

即使在物理数据中心,维护MySQL的可扩展性和高可用性都是一个艰巨的任务,在云环境中更是如此。云环境的“无状态”和动态性,都给“有状态的”数据库层带来了严峻的挑战,而且数据库层整个应用程序中最敏感、最关键的部分,也是最难扩展的部分。

云中的数据库在本质上和传统的数据库有很大的不同。当选择DIY方法时,开发人员必须监督DB的运行,并且确保数据库服务的可用性和弹性。当选择DBaaS方法时,由于云数据库是专门为云环境设计的,这就为开发人员免除了繁杂的数据库维护工作,这些工作都是由云数据库服务商自动提供的。

下面的内容,将介绍DIY和DBaaS这两种方法的优缺点,并阐述它们是如何在Amazon EC2和Rackspace这两个云服务供应商上运作的,同时,也会介绍它们是如何在Heroku和Orchestra云平台上运行的。

  • 在Amazon EC2上运行MySQL
布置选项 优点 缺点
DIY

你可以在Amazon EC2平台上租用一个机器实例,然后在上面安装MySQL。你需要为计算能力和带宽付费,而且你必须自己负责MySQL数据库的所有维护工作。如果你需要对数据库进行扩展,增加机器实例,那你就必须自己配置一个MySQL簇,这通常会是一项复杂而艰巨的任务。

对于小型应用而言,非常简单。通常情况是,你的数据库和你的应用是布置在同一个机器实例上,而且只要一个数据库实例就可以满足你的应用需求。

在大多数情况下,这要比DBaaS便宜,因为,你只需要为机器实例付费,而MySQL则是免费的。

如果想要扩展到两个以上的机器实例,这会是一件非常困难的事情。

不具备高可用性。Amazon不会保证在所有时间内机器实例都是可用的,你必须自己负责失败恢复处理和备份工作。

你要自己负责软件更新和维护工作。

DBaaS:

如果你需要MySQL作为Amazon云中的一项服务提供给你,你可以选择RDS(Amazon’s Relational Database)和Xeround云数据库。这两个产品都可以为你提供云中的MySQL服务,不需要你配置和管理任何东西。你可以从云中连接数据库,也可以从本地应用中连接数据库。

很简单。

快速部署,不需要特殊技能。

高可扩展性。

高可用性。

比一个普通的机器实例更贵,你需要为计算能力、带宽、数据传输和其他数据库服务付费。

可扩展性会受到MySQL特定实现方式的影响;

可能面临无法使用的风险。

  • 在Rackspace中运行MySQL

DIY:你可以在Rackspace云中租用一个机器实例,在上面安装MySQL。就像在Amazon EC2上面一样,你需要为机器实例和带宽付费,你需要安装、配置、更新和维护数据库。如果你需要增加机器实例,就需要学习复杂的MySQL簇配置和管理方法。

受管理的MySQL安装:Rackspace提供了一种解决方案,可以帮助你在云中安装和管理MySQL,比如管理MySQL簇,当然,这需要额外的费用。

DBaaS:和Amazon EC2不同,Rackspace没有提供自己的DBaaS解决方案。Xeround云数据库,完全支持Rackspace,并且是Rackspace云中唯一一款基于MySQL的云数据库产品。

  • 和你的Heroku应用一起运行MySQL

DIY:就像Amazon EC2和Rackspace一样,你可以在Heroku平台上创建Ruby应用,然后,在Amazon EC2上安装和配置MySQL数据库(假设你的Heroku应用也是部署在Amazon EC2上),这样,就可以把你的数据库连接到Heroku应用了。

DBaaS:使用Heroku外挂,你可以把你的Heroku应用挂靠在Xeround云数据库中(Amazon RDS也存在类似外挂)。Xeround是Heroku平台上唯一可用的、水平可扩展的MySQL数据库。(厦门大学计算机系林子雨 翻译)