近期自己写了一篇稿子,内容是关于使用云RDS服务与自建数据库方式的对比。文章刊载出来后,有些朋友问到我关于企业数据库是否上云?上云后使用自建还是云服务等问题。其实我本人对云数据库的经验并不丰富,也是刚刚转型投入。下面结合一段时间的观察,谈谈自己对这个问题的几点粗浅认识。
下面我尝试从几个角度,去分析云数据库与传统数据库之间的差异。这也是为后面如何做选择,做一个铺垫。对于托管类数据库产品而言,其核心功能还是要跟官方产品走。当然,各个大厂都有着自己多年丰富的实践经验,并具备一定的内核研发能力。于是,往往针对原生产品做一些定制化的改造,进而提供与原生产品差异化的能力。改造方向上,往往倾向于下面几类性能。深度优化后的产品,往往较原生性能有较大的提升。这也变相为用户提高了综合性价比。
功能。针对原生产品功能不足,增强其功能。特别是对于有些企业级功能,更为需要优先满足。这也成为很多线下客户,选择云数据库产品的重要考量因素。
业务。有些大厂根据自己在某业务领域的积累,有针对性地增加了特定场景下的数据库端解决方案。这对于同行业客户来说,非常具有吸引。
针对上述定制化后产品,有时就成为某种“银弹”,对于企业客户很具吸引力;但事情也具有两面性,对于这些特殊之处的依赖,也会导致客户对产品的依赖。这也是某些客户犹豫之处。在我看来,这个问题的要点在于企业处于的发展阶段。不同阶段的企业,核心诉求不同,在此处的考虑角度也会不同。
与托管类产品不同,各大厂商也在不遗余力的发展自研产品。如果说前者是为了享受生态红利,尽快扩张;那么后者就是云厂商未来的立身之本。这类产品在选择上,则需要注意考量其“底蕴”,即是否经过了长期的考验,是否有完备的企业级服务能力。毕竟作为数据库作为基础类软件,不是短期一蹴而就而成的,是需要企业长期投入并不断锤炼。此外,还需要注重其兼容性,尽量减少对企业现状的冲击;并为可能的其他选择,做必要的铺垫。除了核心功能外,还有些非数据库核心能力,但对于企业使用必不可少的功能。例如:监控、备份恢复、优化、容灾等等。如果没有云的话,这些能力往往是需要企业花费精力去自建的。哪怕企业数据库规模不大、使用复杂度不高,使用开源数据库也能满足需求,但上述需求还是要满足的。于是,前两年平台热很火,很多企业都自建了自己的内部运维平台,构建上述能力。当然这种方式有利有弊。利之处在于,企业可以根据自身需求度身定制,满足个性化需求;弊之处在于,构建能力及花费资源长期维护。如果说,上述功能企业还是可以较容易具备的,那么云功能则相对门槛有些高了。这里所说的”云功能”,是指例如弹性扩缩容等类。这类能力,往往需要依托于强大的底座能力,是需要较大的研发投入和长期积累才能具备。在某些特定的场合下,这一能力对企业很具吸引力,例如业务形态、幅度变化很大的企业客户。企业选择上云,往往不是仅依靠一两款产品,而更多是看中云端生态功能。对于企业来讲,如何通过云端打通技术瓶颈,快速具备业务能力成为核心。例如从数据埋点、数据捕捉、数据存储、数据计算到分析展示,如果全流程都可以在云端无缝集成,对于企业来说,是很具有吸引力的。我想这是很多企业考虑上云,比较纠结的问题;然而从我的角度来看,这是最不成问题的问题。我们分析成本,可以从人力、财力、时间、风险四个维度分析其成本问题。 无疑,这是云数据库颇具优势的方案。企业如果想通过自建方式解决类似问题,没有高素质的人才是不行的。然而,一方面此类人才稀缺且价格不菲;另一方面即使已有人才,也要面临如何留住等问题。毕竟对于大多数企业来说,专业技术人员更多是辅助性岗位,对高级专业人员来说也面临长期发展等问题。而云数据库方案,则不存在此问题,你大可以在很短时间内享受到大厂的“脑力”资源,而且不必担心出现断档等问题。 针对这点,是需要企业充分衡量的。如果通过自建方式,是初期投入大,中长期投入较少,存在一个明显的波动性。如果通过外购云服务方式,则相对较为平均。两者的财力分配方式不同。当然,云有一个明显的优势,就是弹性。企业可根据自身情况,灵活选择,随时调整。 这是企业往往容易忽略的问题,时间投入也是一种成本。当你的企业快速发展,需要短时间具备某种能力;当你面临新业务上线,而后台IT就迟迟跟不上节奏。隐形的时间成本,有时对企业颇为重要;对稍纵即逝的业务机会来说,稳健、敏捷的IT支撑能力很重要。 很多企业是需要一个”兜底”的服务,即尽量降低企业的IT风险,保证企业的正常运营。自建的方式可以解决,但需要构建起整套的能力,投入不小;也可以通过购买外部服务的方式,这种就需要考察对方的技术实力、并解决互相扯皮等问题。云厂商,则不存在此问题,基本可做到风险可控。 作为企业的管理者,使用自建与云的方式,其管理的思路是不同的。作为管理者来说,要明确知道云所带来的风险、问题;如何扬长辟短,发挥云的优势。此外,也要注意避免厂商绑定,自建与上云相结合等问题。 作为企业内的技术人员,常见的一种现象就是对云的天然排斥。这里更多的是一种忧虑,担心使用云后自己对企业的价值会降低。这种形态可以了解,但就如我之前写的《DBA的出路》一文做谈到的,当前技术发展正处于不断变革之中,如何快速适合多变的未来,积极做好技能转型是当下应该考虑的。借用最近很火的一句话,“这个时代淘汰你,连声招呼都不打”。前面谈了很多,那么企业究竟该如何选择呢?本文不会给你答案,但简单罗列了些问题。希望企业可以在选择之前,对自身做个问卷调查,做好理性分析并指导自己的决定。下面以数据库为例,给出若干示例问题。技术琐话
以分布式设计、架构、体系思想为基础,兼论研发相关的点点滴滴,不限于代码、质量体系和研发管理。本号由坐馆老司机技术团队维护。