生而为云,看腾讯云原生中台如何超越“康威定律”

  • 来源: IT时报网   2019-11-18/11:04 访问量:
  • 1967年,一位名叫马尔文·康威的程序员在论文中写下这样一句话:“设计系统的组织,其产生的设计和架构等价于组织间的沟通结构。”

    半个多世纪以来,“康威定律”默默释放着它的魔力:当企业运转越来越依赖于信息技术时,组织架构与IT系统架构是否匹配,是企业能否转型成功的关键。

    “云原生中台面临的最大挑战就是康威定律。”11月5日,在上海世博中心召开的开源基础设施峰会(OPEN INFRASTRUCTURE SUMMIT)上,腾讯正式发布云原生中台TCNPlatform,TStack首席架构师贺阮认为,在资源上云后推动应用上云,实现用户整体架构云原生化,是TCNPlatform的终极目标。

    腾讯云TStack首席架构师贺阮发表演讲

    腾讯是TCNPlatform的第一个“用户”。2018年9月30日,腾讯宣布“全面拥抱产业互联网”,并成立技术委员会,下设“开源协同”和“自研上云”项目组,正式将业务在云上的全面整合提上日程。在腾讯内部业务自研上云的过程中,TCNPlatform助力了此前诸多在本地部署的传统应用完成云原生化改造,并沉淀了大量实践经验。

    经过不断打磨,腾讯也将此云原生化能力封装到TCNPlatform平台,全面对外开放。

    云原生时代已来

    自2006年8月9日,Google首席执行官埃里克·施密特首次提出“云计算”(Cloud Computing),已经过去13年。从初时的喧嚣到如今的沉寂,贺阮认为,这恰恰说明,云,真正成熟了。

    2019年9月16日,英国调研机构Canalys发布2019年第二季度中国公有云服务市场报告,腾讯云位居第二,从2014年腾讯正式对外宣布云服务开始计算,5年来腾讯云的收入增长超过20倍。除了公有云业务上的突飞猛进,从2015年底开始,腾讯还推出了基于OpenStack自研的企业级私有云平台腾讯云TStack,作为企业级私有云方案正式对外输出,如今已有辽宁省政务云、云南省警务云、厦门市政务云、北京市政务云、数字广东等诸多大型案例。

    然而,随着市场对云基础服务的逐渐接受,“康威定律”开始发问:云时代,企业应如何设计自己的IT架构?

    传统大型企业常常遇到的问题是,IT系统僵化,新业务上线慢,大量IT资源浪费,而随着业务拓展,系统拓扑图越来越复杂,软件工程经典著作《人月神话》对此类情况的后果有精辟的论述:在落后的项目中增加人手,只会使进度更加落后。

    即便上云,企业通常只是将原有本地的基础设施和系统架构“云化”,但设计思想依然是传统以数据中心为核心,但在互联网下半场,业务的敏捷性要求应用更迭必须更加快速和灵活。

    这意味着,在设计之初,企业的应用程序就必须为云而生,开发、架构、部署等等方式都要从云的特点出发,充分利用和发挥云平台的弹性+分布式优势,也即所谓的“云原生”(Cloud Native)。

    “从资源上云到应用上云,现有的单体应用架构已无法满足需求,企业更希望,云能够提供基本各种资源和能力,从而保证非业务需求。” 作为一名云计算“老兵”,贺阮参加了10届开源基础设施峰会(前身为OpenStack峰会),让他感触最深的是,随着产业对云的认识越来越深,加上相应技术业已成熟,云原生化已是大势所趋。

    然而,并不是所有企业都能马上投入云原生,至少,一开始他们并不具备足够多的技术人员,拥有可以在云端直接原生开发应用的能力。

    这在贺阮看来,是企业IT系统“生而为云”要跨过的第一个障碍。

    腾讯云副总裁吴凯华发表演讲

    双生花:阿米巴与微服务

    自提出以来,云原生的理念不断丰富,2018年后大致包括这样几个特征:容器化封装、自动化管理、面向微服务、服务网格(Service Mesh)和声明式API。

    在腾讯的定义中,云原生的概念更加细化:物理设备全部通过云计算管理,可以实现全自动化管理;容器化封装及编排,以容器为基础,提高整体开发水平,形成代码和组件重用,简化云原生应用程序的维护,在容器中运行应用程序和进程,并作为应用程序部署的独立单元,实现高水平资源隔离;面向微服务架构,通过松耦合方式,提升应用程序的整体敏捷性和可维护性;业务全域建模;自动化运营,统一调度和管理中心,从根本上提高系统和资源利用率,同时降低运维成本。

    此次发布的TCNPlatform,正是基于腾讯云容器服务TKEStack和微服务治理平台TCNMesh打造的云原生中台,通过实现应用的微服务改造,帮助用户降低成本,提高效率。

    事实上,如果你觉得以上文字过于复杂、拗口,不妨只看这两个关键词:容器和微服务,而这恰恰是“康威定律”在云原生时代最神奇的例证。

    “康威定律”被认为是微服务的理论基础,其背后所隐含的管理哲学是,如果系统和组织结构需要匹配,而沟通成本又会影响系统效率,那么最好的办法是,按照业务边界划分系统。每个子系统(也即微服务)之间有边界和接口,但每个系统内部是全栈且自治,这样沟通成本只在系统内部发生,效率更高,而每个子系统彼此解耦,依赖性不高,从而可以适应业务变化的快速迭代和灵活调整。但这也意味着,微服务必须匹配与之相适应的企业组织架构,这需要对企业做“伤筋动骨”的调整。

    某种程度上,“康威定律”的内在逻辑与前几年开始盛行的“阿米巴模式”颇为类似。

    “阿米巴”是日本经营之父稻盛和夫独创的经营管理手法,他把公司组织划分为称作“阿米巴”的小集体,每个阿米巴自行制定自己的计划,在将日本航空根据部门、航线、航班分割成一个个“阿米巴”之后,稻盛和夫看清了每条航线的收支情况,仅用了400多天便让日航扭亏为盈。

    在贺阮看来,大型企业的“阿米巴化”与云原生应用的微服务架构是一对“双生花”,“大型企业转型势必是向更小更灵活化发展,但如何能使每条小航线既能有自己独立的结算,又能共享所有数据?这其实对企业IT系统而言,是巨大的挑战。所谓中台,就是要解决这个问题,要让企业能够随时根据业务的变化,灵活地改变你的系统,所有的云原生应用打包成一个个容器封装在中台,而对于企业用户和开发者而言,只需要在前台发出调用API(应用程序编程接口)的请求即可。”

    容器:组成大中台的粒子

    早在2015年,便有人尝试在传统的云端虚拟机上实现微服务,然而,这样的尝试很快失败了。

    据介绍,虚拟机的原理是,在云端虚拟一套硬件,并在其上运行一套完整系统,包括操作系统、数据库、应用等等,每个指令发出,通常都会有数十秒到一分钟的延迟,如果微服务跑在虚拟机上,这样的延迟是用户无法接受的,曾有人试过将用户登录作为微服务跑在虚拟机上,但用户体验并不理想。

    容器改变了一切。

    腾讯云社区里的一篇科普文中,“容器”的英文Linux Container,被翻译为集装箱,在作者看来,格式划一,并可层层堆叠的集装箱,更贴近Linux Container的技术特性。每个云原生应用服务就像货物,彼此隔离后,被打包成一个个“集装箱”,以API形式叠放到中台里,用户只需从客户端发起调用需求即可,这样一来大大提升了新应用部署的速度,而且pay as you go(随收随付),真正从云端节省了成本。

    “最小的容器有多小?”“一个进程。”“类似打开文件这个动作吗?”“不,那是很多个进程。”

    容器之于平台,有如粒子之于宇宙。

    Gartner报告指出,到2022年,将有75%的全球化企业在生产中使用云原生的容器化应用。

    如今,腾讯已经构建了一系列云原生化支持平台:云原生中台集容器服务、微服务框架、发布系统、容器化中间件和应用支持平台等等,为资源、应用全面上云提供了坚实支撑。

    开源:云原生的“生命之源”

    短短数年内,容器引擎Docker、容器编排系统Kubernetes等容器技术成为中台理念落地的基石,开源,是它们共同的特征,而腾讯对开源的拥抱,大大加快了容器技术体系进入成熟期的速度。

    不久前,腾讯在2019Techo 开发者大会现场放了一个“大招”,发布四大重点开源项目:分布式消息中间件TubeMQ、基于最主流 OpenJDK8开发的Tencent Kona JDK、分布式HTAP数据库 TBase以及企业级容器平台TKEStack(Tencent Kubernetes Engine)。其中,TKEStack便是TCNPlatform最重要的底层容器平台。

    Docker是目前最为流行和使用广泛的开源容器引擎,从2013年推出到现在,腾讯开源技术专家马全一便是Docker坚定的信仰者,更是Docker中文社区的创始人。他告诉《IT时报》记者,腾讯是国内最早使用容器技术的大型互联网公司之一,2009 年,腾讯开始开发自己的容器编排平台, 2013 年,当 Docker 和 Kubernetes 开源并成为事实标准后,腾讯第一时间把内部平台切换到开源方案中。

    “来自中国程序员的开源贡献率仅排名在美国硅谷之后,BAT等中国大型互联网公司在其中功不可没。”中国在全球开源社区中的地位正不断提升,此次,由OpenStack基金会(OSF)主办的开源基础设施峰会,便是OpenStack峰会改名以来首次登陆中国,一位云计算行业人士指出,近几年来,中国公司逐渐加快了开源投入,由于应用场景丰富,加上开源组件特有的高通用性,一些开源项目在中国发展得甚至好于国外,以OpenStack为例,中国已经是第二大贡献国。

    马全一告诉《IT时报》记者,TKEStack是离线计算业务和在线服务业务混合部署的一站式通用基础架构平台,能够稳定管理万级别 Kubernetes 集群,并提供全方位资源管控,解决网络带宽控制、磁盘 IO 等难题,而开源之后,会推出社区发行版 TKEStack,“这是一个正向循环,企业以开源技术为依托,将技术创新转化为产品创新,然后将企业内部一些好的实践和技术反哺社区,从而给更多人带来价值。”

    以腾讯云为例,目前有超过200种IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)产品,其中大部分产品都源于开源,比如基于OpenStack进行二次开发的腾讯云TStack已应用于工业、医疗、零售、教育、政务等各个领域,基于该产品形成超过90种行业解决方案,为OpenStack在中国的应用做出巨大贡献。

    开源对腾讯带来的优势还在于,客户无需担心自己“被绑架”,云原生平台的接口完全开放,哪天用户不想用了,可以直接换到其他平台。这被认为是腾讯“科技向善”的表现之一。

    某种意义上,开源项目之间的松耦合及其倡导的共享自由精神,也是更大范围内“康威定律”的印证。

    数据显示,腾讯在Github上发布的总项目数已达89个,Star数破26万,在Github全球公司贡献榜上位居前列。

    IT时报记者 郝俊慧

    ---------------------------------------------------------

    免责声明:

    1.本文援引自互联网,旨在传递更多网络信息,仅代表作者本人观点,与本网站无关。

    2.本文仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。


    赞(0)

    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多