终于有人把云计算与数据库的关系讲明白了
导读:本文讨论云计算与数据库的关系,包括云数据库自身的技术和特征,也包括云数据库的使用方式和形态变迁。
12要素应用的任意部署,都应该可以在不进行任何代码改动的情况下完成,将本地MySQL数据库换成第三方服务(例如 Amazon RDS)。与此类似,本地SMTP服务应该也可以和第三方SMTP服务(例如Postmark)互换。这使得云应用研发不深度依赖于数据库系统,使得云数据库之间的功能差异化竞争被消灭。 12要素反对与会话具有高黏性。会话中的数据应该保存在诸如Memcached或Redis等带有过期时间的缓存中。这就要求云数据库服务要么有多种产品支持不同能力,要么在一个产品内提供带有过期时间的缓存。 12要素应用本身从不考虑存储自己的输出流,即不提倡提供日志功能(不写或者管理日志文件),而是把信息直接输出到标准输出(stdout)事件流。在开发环境中,开发人员可以通过这些数据流,在终端实时看到应用的活动。在应用端不能提供日志以供确认问题,这对服务端的数据库提出了更高的要求:第一数据绝对保持强一致而不存储,第二数据库自身有分析等位问题的能力。但是,不是所有类型的应用都适合进行这方面的设计和实现,大型复杂类应用和网站类应用的定位问题多依赖于日志。
交付方式从软件交付走向服务交付。用户看似在使用一个软件其实不再是一个软件,一系列软件组合成一个服务后提供给用户,对用户而言一项项具体的服务是可直接感受到的。 开发方式从底层(IaaS+PaaS)走向上层(SaaS)。云计算不仅提供CPU和机架,更多的是提供用户可感受的软件服务(SaaS),或者软件都感受不到,直接感受到的就是服务(Serverless)。
单一职责:该云数据库的业务是独立的,负责的团队是自主的。云数据库负责单一的服务且该服务处于核心领域。该云数据库具有高内聚、低耦合、与其他系统和领域有明确边界的特点。 轻量级通信:云数据间的通信应该简单、轻量,且与语言和平台无关。 独立性:该云数据库应是独立开发、独立测试和独立部署的。
评论