开源云杂谈

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: DBaaS是目前云计算服务的重要部分,数据库作为一种特殊的应用程序,在应用中普遍存在。而其独特性不仅在于普遍性,而且其性能对应用的表现是至关重要 的。数据库的通用性和重要性使得维护一个健壮的数据库实例变得极为复杂和繁琐,DBaaS服务旨在解决让用户能够在云中轻松设置、操作和扩展关系数据库。

DBaaS是目前云计算服务的重要部分,数据库作为一种特殊的应用程序,在应用中普遍存在。而其独特性不仅在于普遍性,而且其性能对应用的表现是至关重要 的。数据库的通用性和重要性使得维护一个健壮的数据库实例变得极为复杂和繁琐,DBaaS服务旨在解决让用户能够在云中轻松设置、操作和扩展关系数据库。 在承担耗时的数据库管理任务的同时,又可提供经济高效的可调容量,使您能够腾出时间专注于应用程序和业务。


通过AWS的数据库服务可以快速了解云服务中的DBaaS的轮廓。

Amazon Web Services提供了多种不同数据库服务,如RDS(关系型数据库服务),DynamoDB(键值数据库),Redshift(数据仓库服务)等。其中RDS作为目前数据库主流得到最广泛的关注。

 

Amazon RDS

Amazon RDS的目标用户是需要关系数据库的完整功能的开发人员或企业,或是希望对使用关系数据库的现有应用程序和工具进行迁移的用户。它能够使客户访问自己的 Amazon RDS数据库实例上运行的 MySQL、Oracle 或 SQL Server 数据库引擎的功能。

Amazon RDS的特点是使用简单,帮助客户处理复杂的数据库任务如备份、复制和扩展等。还能够与其他服务配合使用如EC2在同一个AZ区内减少延迟。通过预配置的 IOPS可以使客户自由选择选择的数据库服务并且能够轻松升级。除此之外,RDS还具备自动软件修补的能力,确保软件升级的性能提升和安全修复能得到利 用。

 

Amazon DynamoDB

DynamoDB是Amazon的NOSQL数据库服务,是一种快速、全面受管的NoSQL数据库服务,它能让用户以简单并且经济有效地方式存储和检索任何数据量,同时服务于任何程度的请求流量。

DynamoDB所有的数据项都存储在固态驱动器(SSD)中,同时在 3 个可用区域间进行复制,确保达到较高的可用性和持久性。DynamoDB 表没有固定的结构,每一个项目可以拥有不同数量的属性。多种数据类型增加了数据模型的丰富性而本地二级索引可以增加在执行查询时的灵活性,且不会影响性 能。

 

Trove是OpenStack实现Database as a Service(DBaaS)的项目,为要能过户提供可扩展和高可靠性的云数据库,并作为一个基本服务可以同时支持关系和非关系型数据库。

Trove在设计之初就计划在OpenStack上运行,目标是能够允许用户快速、简易的使用关系型数据库而不需要处理复杂的 数据库管理任务,用户和数据库管理员都可以管理多个数据库实例。Trove与OpenStack其他项目如Nova、Swift和Cinder交互完全通 过API来实现,因此对Nova等的配置没有任何要求。

Trove目前是一个 OpenStack 孵化器项目,现在致力于提供高性能前提下的资源隔离,并且提供自动化的复杂管理任务包括部署、配置、打补丁、备份、恢复和监控。

 

Trove 主要组件

Trove分为三个组件: trove-api, trove-taskmanager, trove-guestagent。

* task-api: 主要提供RESTful API并且支持JSON和XML,用来管理和掌控Trove实例。它是一个WSGI组件负责监听服务外部的请求。

* task-taskmanager: 主要完成具体的管理命令,如创建实例,管理实例的生命周期,完成对数据库的操作等等。它主要监听RabbitMQ topic来得到请求。

* task-guestagent: 主要提供具体数据库的运行和管理,并且对数据库本身进行操作。guestagent同样监听RabbitMQ topic来得到请求,并且运行在每一个数据库实例上。每一种数据库都需要一个自己的guestagent实现,目前只有MySQL agent。

 

Trove 主要逻辑

目前Trove支持用户创建一个数据库服务实例,在实例里可以创建多个数据库并进行管理。数据库服务实例目前通过Nova API来创建,然后同样通过Nova API创建一个Volume(未来通过Cinder API)作为存储,然后在Nova Instance里加载预定义的带有MySQL的Image来启动MySQL。此时用户在得到一个创建好的数据库服务实例以后可以通过API创建数据库并 且指定参数,Trove通过在数据库服务实例里的guest agent来完成相应的命令。下图是Trove处理请求的最主要流程。

 

Trove 的进展与未来

Trove是Rackspace开源出来放到OpenStack项目,作为一个孵化器项目,其本身不太成熟并且缺少更多的数据 库类型支持。Trove目前有三个子项目: Trove本身,Trove-Client, Trove-integration(Trove与OpenStack整合的部署项目)。目前MySQL和percona(MySQL的衍生版本)是 Trove支持的数据库类型,不过Redis的支持已经在社区的实现进程之中。Trove本身代码并不是特别复杂,但由于本来是Rackspace内部项 目,在测试代码实现上非常Magic,目前Trove的实际维护者(实际上是后来接手的)也无法完全掌控项目。

Trove在未来进入OpenStack Core项目应该不是特别困难,但根据我对项目本身的理解和代码阅读,在短期内应该无法进入。在OpenStack I版本成为Core Project是一个不小的目标。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
5月前
|
人工智能 算法 数据处理
零一万物发布首款大模型,阿里云魔搭社区开源首发
零一万物发布首款大模型,阿里云魔搭社区开源首发
188 0
|
9月前
|
消息中间件 安全 Java
全网首发!消息中间件神仙笔记,涵盖阿里十年技术精髓
消息中间件是分布式系统中的重要组件,在实际工作中常用消息中间件进行系统间数据交换,从而解决应用解耦、异步消息、流量削峰等问题,实现高性能、高可用、可伸缩和最终一致性架构。
|
9月前
|
分布式计算 安全 算法
「隐语开源社区开放日」全场精华合集(附视频+原文稿件)
「隐语开源社区开放日」全场精华合集(附视频+原文稿件)
118 0
「隐语开源社区开放日」全场精华合集(附视频+原文稿件)
|
运维 Kubernetes 负载均衡
使用K8s之我见
作为开发者,想必都对docker并不陌生,尤其是做后端开发的开发者更为熟悉。但是前段时间有个新闻关于docker马上要停止开源,这对于应用容器领域来说是一个晴天霹雳。但是docker停止开源,想必会让其他应用容器引擎能够有更好的发展。随着容器化的快速发展,关于集群管理、资源整合调度等相关领域的历史问题都得到了很好的解决,而且最为耀眼的就是谷歌开源的Kubernetes,那么接下来就来谈谈关于K8s相关的内容。
147 0
使用K8s之我见
|
XML Rust Java
C++之我见:重剑无锋,大巧不工
首先声明,编程语言没有银弹,要懂得因地制宜,随机应变。陷入语言之争是无意义的。但我也认为对于程序员而言,学习和使用哪门语言是有个人偏好的,偏爱哪个自然也无关乎对错。
235 0
C++之我见:重剑无锋,大巧不工
|
人工智能 自然语言处理 供应链
微软启动“解决方案优选计划”,演绎云时代“平台+生态”新境界
微软启动“解决方案优选计划”,演绎云时代“平台+生态”新境界
361 0
微软启动“解决方案优选计划”,演绎云时代“平台+生态”新境界
|
域名解析 开发框架 安全
网安自学笔记——搭建安全拓展
一、常见的搭建平台脚本启用 二、域名和ip目录解析安全问题(难点) 三、常见的文件后缀解析和对应安全 四、常见的安全防护 五、web后门与用户以及文件权限
|
云栖大会 虚拟化 云计算
云计算技术资源汇总-持续更新
云计算技术如何关注,有哪些主流的信息可以查看,本文进行了初步梳理。
308 0
|
Kubernetes 安全 搜索推荐
“网红” WebAssembly 与 K8s 如何实现双剑合璧?
WebAssembly 技术已经走出浏览器,让计算无处不在。本文利用 containerd 的扩展机制,可以为 WebAssembly 应用提供与其他容器应用一致的、抽象的、应用分发、交付和运维模型,可以在 Kubernetes 集群中进行统一调度和管理。
“网红” WebAssembly 与 K8s 如何实现双剑合璧?