公司一直在利用 Kubernetes 和其他技术将工作负载转移到云端。但仍然存在一些棘手的挑战:如何处理数据层、您应该使用哪些技术、组织应该在哪里保存数据以及您应该如何移动数据?这些问题的中心是数据库。
许多支持我们应用程序的数据库已经存在了很长时间——远在“云原生”的概念出现之前。今天,有一长串特性使数据库成为适合现代、可扩展应用程序的数据存储选项,包括可扩展性、弹性、弹性、可观察性和自动化(我们在最近的一篇文章“搜索云原生数据库”中对此进行了探讨”)。
但是现代的云原生数据架构到底是什么样的呢?在本文中,我们将向您介绍云原生数据库的成熟度模型,以评估作为整体云架构一部分的数据层技术,并确保在整个堆栈中应用一致的成熟度级别。
让我们首先考虑一些描述云服务及其使用的传统模式。云服务的提供者和消费者都发现,通过 APIs 提供“即服务”的各种级别的能力是有用的。最初的模式集包括基础设施即服务 (IaaS)、平台即服务 (PaaS) 和软件即服务 (SaaS)。
最近,出现了 PaaS 模式的其他变体,包括容器即服务 (CaaS) 和功能即服务 (FaaS)。让我们试着理解这些模式以及它们可以应用于我们的云架构的哪些地方。
从网络到应用程序层,并行对比这些模式,用这种方法检查这些模式更好,更详细。金色项目是云提供商的责任,而蓝色项目是消费者的责任:
这张图中展示了很多内容,所以让我们解开一些细节:
PaaS 模式的两种变体已经出现,它们对于云原生应用程序开发的情景很重要:
请注意,这些模式可以组合。您的云生态系统可能包括部署在 IaaS 上的虚拟机 (VM)、部署在 CaaS 上的容器中的多个微服务、用于您不想自己实现的商品功能的第三方 SaaS、部署到 FaaS 以提供帮助的功能协调其他服务之间的工作流和数据流,等等。
本文介绍MySQL和PostgreSQL的一些特性对比,让大家了解二者的优劣,更好的做出选择。当前国内的现状,互联网公司使用MySQL的较多,PostgreSQL的使用比例反而不高,相信看到PG的新特性后,你会爱上她。当然MySQL作为最流行的数据库,依然会吸引大部分人的眼球。
PostgreSQL标榜自己是世界上最先进的开源数据库,甚至PG粉丝或者一些PGER宣称,她可以和Oracle相媲美(虽然PG很强大,但是和Oracle还是有差距的,当然PG优势也是显而易见的),而且没有那么昂贵的价格和傲慢的客服。当然PG功能完善和强大,最早始于9版本,在10版本快速发展,增加很多功能和特性。PostgreSQL是完全由社区驱动的开源项目,他的核心代码,都是由社区维护,商用版本都是基于PG做的二次开发,像国内的瀚高公司,乘数科技,国外的第二象限,EDB。
MySQL 声称自己是最流行的开源数据。看现在国内的现状,称得上名副其实。MySQL被卖几次后,最终落到Oracle公司的囊中。正是因此,MySQL之父Monty,修改了MySQL的源代码,创立了MariaDB分支。当然不得不提另一个重要的分支,percana公司的Percona Server。Percona公司更擅长MySQL运维,开发了很多非常实用运维工具,而且都已经开源,并回馈给社区,像XtraBackup和pt-Toolkits工具。
简单对比MySQL和PostgreSQL发现,MySQL背后是成熟的商业公司(Oracle有自己的MySQL企业版,收费,有许多社区版没有的 特性),而PostgreSQL背后是一个庞大的志愿开发组,相比而言,PostgreSQL的商业性质更少一些,他没有所谓的PostgreSQL企业版,但是存在基于PG开发的一些企业级的PG数据库,比如EDB,Highgo DB。
下面我将从以下几个方面阐述MySQL和PostgreSQL的异同和优劣,由于笔者水平的限制,不当之处,还请大家多提意见。
PMM是一款开源的用于管理和监控MySQL、PostgreSQL和MongoDB性能的开源平台,通过docker部署,但是本文没有介绍docker。有兴趣的同学可以了解下服务部署容器化的概念,据说阿里的RDS(MySQL)使用DOCKER部署的。