第一章,介绍云上数据库
- What Is Database as a Service?
- 所谓的DBasS其实就是SaaS的一个子集,只不过第一个S变成了DB,DB毕竟是Software的一种,相比于IaaS,由于不需要用户再去手动的去部署,管理硬件,所以极大的降低了运营的成本.
- DBaaS简化了部署和测试环节,并且提供了企业级别的故障转移机制和均衡负载,并提供弹性的扩缩容
企业需要什么样的数据库
- 安全,不能别随便访问
- 够快的性能
- 可靠,冗余,持久的数据存储,也就是不能够丢数据
- 可能在地理上是分布的
- 没有单点失效,也就是不能某个节点挂了,整个服务也跟着挂了
- 能够被整合进现有的系统,那不然我搞这个干啥?
- 有个良好的社区文化,遇到问题有人求助
接下来分别讲一讲以上要求:
安全
- 通过严格的用户权限来显示访问权限,保证数据不会被误删
- 数据的传输必须使用SSL来保证加密
- 加密的存储卷
高性能
- Postgresql通过设置
shared_buffers
,work_mem
,autovacuum
来调节数据库的性能 - 但是是DBaaS中,可以通过算法和性能监控,自动设置相关参数
- 而且可以使用SSD来提升性能
可靠性
- 传统部署到裸机上的数据库可能在硬件出问题的时候挂掉
- 部署到IaaS上的时候,虽然硬件不会出现问题,但是不如DBaaS便捷
- 生产环境下,DBaaS只需要点击几下即可以回到之间的时间点,省时省力
异地分布
- 由于云供应商在全世界都由机房,所以要在异地建立一个新的数据库和在本地没有区别
没有单点故障
- 路由器,交换机,磁盘,内存,甚至是代码本身都有可能造成单点故障的发生
- DBaaS则可以提供充分的冗余来保证服务
整合,集成
- 不需要修改或者少量修改之前的代码,就能够把以前的数据迁移到DBaaS
DBaaS的特点
自动供给
- 传统方式中,安装操作系统,磁盘分区,安装,配置数据库,访问控制,建立用户等等,需要耗费好几天的时间
- 在DBaaS中,这些都是自动执行的!!!
管理
- DBaaS还能提供数据库的监控信息,而且通过API,你可以将数据库的监控信息轻松的集成到其他应用中
高可用
- 由于云的存在,通过配置均衡负载和冗余节点,使得高可用相对简单许多
伸缩
- 同上,轻松实现伸缩
Google cloud, AWS,AZURE都提供DBaaS,选一个你觉得合适的就好.