IT 基础设施(Infrastructure)的变迁总会推动架构演进,使得架构能够充分发挥基础设施的特点,这对架构师也提出了新的挑战。作为拥有超过 15 年软件开发经验,并有 9 年担任世界级 IT 公司软件架构师/首席软件架构师的蔡超,亲身经历了数十年来的企业架构演进历程。在ArchSummit 全球架构师峰会(北京站)2019 大会召开之际,InfoQ 有幸对蔡超进行了独家采访,了解云原生趋势下的技术架构特点。
云计算时代的架构师
当整个云计算行业一定程度走过蹒跚探索时期之后,开创者们积累了越来越多的经验,对市场反馈和客户需求有了更清晰的了解与洞察,业务模式与商业运营也驾轻就熟起来——云计算行业终于进入高速发展时代,技术架构也随着云计算基础设施的演进而出现了变化,这对架构师也提出了新的要求。
云计算基础设施的优势包括按需获取,按使用付费,快速弹性伸缩,资源的维护托管等。架构师只有充分关注和发挥这些优势,才能构建适合于云时代的好架构。
在过去 15 余年的软件开发生涯中,蔡超认为对他个人影响最为深远的就是面向对象的思想以及云计算技术,这些技术深刻改变了开发者软件设计和构建的方法,推动了更大规模软件的出现。蔡超表示,合格的架构师首先应该是优秀的程序员,最重要的技能当然是具备良好的编程基本功及程序设计基础知识。
在云计算时代,蔡超认为,架构师必须深入了解云计算平台的特点,不仅仅是技术特点,甚至还要包括收费模式,这些都会影响架构设计。但是,多数架构师都是从非云时代成长起来的,甚至今天那些经典的架构设计相关的书籍都编写于云时代之前。所以,很多设计理念需要持续更新,云原生的理念就给了架构师很多启迪和指导。
架构演进历程
回顾软件架构的发展历程,IT 基础设施(Infrastructure)的变迁总是会推动架构演进。在大型机时代,架构就是与之匹配的单体架构,随着 PC 及局域网时代的到来,客户服务器架构成为主流。后来,Internet 的发展推动了 WEB Service 架构的发展,也带动了 SOA/EDI 等基于 WEB Service/SOAP 的架构思想。现今,伴随互联网应用的规模日益庞大及云计算平台的广泛应用,能够适应大规模系统快速演化及发挥云计算优势的微服务架构日益流行。
到了 2018 年,云原生技术理念开始逐渐萌芽,这是因为此时 Kubernetes 以及容器都成为了云厂商的既定标准,以“云”为核心的软件研发思想逐步形成。云原生其实是一套指导进行软件架构设计的思想,按照这种思想设计出来的软件天然就“生在云上,长在云上”,能够最大化发挥云的能力,使得开发的软件和“云”能够天然集成在一起,发挥“云”的最大价值。
在蔡超看来,云计算与云原生看起来很相似,而实际上有很大的不同。
云计算通常情况下就是大家所指的“云”,是一种按需获取的基础设施,比如虚机、存储、数据库等。大家非常熟悉的云计算平台提供者包括亚马逊 AWS、Google Cloud、阿里云、微软 AZure 等,开发者可以按需获取基础设施,并按实际使用量付费。
然而,云原生是一种充分利用云计算模式的优点来构建和运行应用的理念和方法。2018 年,CNCF 对云原生技术的定义是“云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式 API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松对系统作出频繁和可预测的重大变更。”
由此可见,云原生与云计算技术不同的不是基础设施,而是理念和方法。云原生的理念和方法重点在于指导开发团队在云计算环境中高效构建大规模软件。蔡超表示,在这种理念的冲击下,与架构设计最为相关的当然是微服务。正如前面所提到的“云原生”的一个核心目的就是要让大规模系统的构建更加高效,而通过微服务架构可以有效解决大团队开发大规模软件开发中的多种效率问题,并且微服务架构也可以充分发挥云平台的优势。
至于哪种架构模型是目前的主流,蔡超没有做过精确的统计和分析。不过,目前不少系统,尤其是云下系统仍然采用的是多层单体架构,这种架构如果迁移到云端是很难发挥云计算的基础设施优势。
Mobvista 的架构实践
如今,蔡超所在的 Mobvista 公司完全基于云计算技术构建了数字移动营销平台,日均广告请求次数超过 600 亿次,峰值时接近 1000 亿次,整个开发团队大约 140 人,目前主要的程序化业务平台始于 2015 年,其间业务范围不断拓展和完善,平台也经历了多次演化。
对于从开始就选择完全基于云技术构建,蔡超表示这是考虑到公司自创始起就定位于全球市场,追求快速创新,同时考虑到移动广告业务流量的快速增长,所以一开始就选择将系统完全构建在云端。
要不要选多云架构?
关于是否要选择基于多云构建架构,蔡超也有过自己的思考。他认为,对于可移植性较强的架构,多云模式对系统的可用性提高是有帮助,也可以避免 vendor king,可以利用不同云在不同区域的价格及网络通信服务上的优势。
当然,从另一方面讲,多云也会引入架构,运维等的复杂性。这些也是 Mobvista 正在构建的中台技术的重点,屏蔽多云的复杂性,简化可移植性系统的开发,并且提供一致的运维和持续集成及发布平台,而容器化就可以大大提高系统在多云间的便携性。
云计算成本问题突出
随着业务的不断拓展和流量的飞速增长,云计算的成本问题日益突出,Mobvista 开始对系统架构进行全面重构。重构的目标,一是为了更高效的利用云基础设施,从而降低成本;二是提高团队的开发效率。其中,架构重构非常重要的一部分就是微服务化。当时,公司的应用由一个个大型的单体系统构成,当需要进行扩展时,就是不断克隆整个单体系统,比较粗放。通过微服务改造,可以定位瓶颈所涉及的微服务,对相关微服务进行扩展,从而实现更细粒度的伸缩,有效发挥了云计算的按需获取,按使用付费的特点。
中台战略
对于大规模软件架构设计的其中一个常见难点就是:如何确保系统在未来能够持续快速,敏捷的支持业务的变化。在蔡超看来,云原生最佳实践中的微服务、容器化、DevOps、持续发布等不仅对架构设计有帮助,甚至对开发过程及团队组织都有很大的指导作用。
为了更好支持公司创新业务的发展,Mobvista 已经开始实施中台战略。其实这也是和云原生理念中提到的 self-service agile infrastructure 相关。蔡超提到,通过公共平台简化微服务的开发,提高开发效率,资源使用率及加快持续发布的速度。同时,通过与云厂商合作输出云端中台技术解决方案,SpotMax 就是在 Mobvista 利用弹性资源实现成本节省的成功经验的基础上推出的解决方案。
One More Things…
在过去多年的从业生涯中,蔡超先后感受了国内外多家公司不同的企业文化,这其中对他影响最为深远的就是亚马逊。亚马逊的领导力准则已经成为蔡超行事的准则之一。他认为,亚马逊的 DayOne 精神对创业者而言是要把每一天当作事业开始的第一天,充满迷茫和压力,但是充满创造力和颠覆思想。对于我而言,DayOne 就是要把每一天都看做加入公司的第一天,充满好奇,充满激情,保持谦虚和敬畏,努力探索和学习。同时,亚马逊的软件开发模式及思想已经成为业界广泛认可的最佳实践,比如 two pizza team,DevOPS, Microservice 等。
嘉宾介绍:
蔡超 ,Mobvista 技术 VP 兼首席架构师。拥有超过 15 年的软件开发经验,其中 9 年任世界级 IT 公司软件架构师/首席软件架构师。2017 年加入 Mobvista,任公司技术副总裁及首席架构师,领导公司的数字移动营销平台的开发,该平台完全建立于云计算技术之上每天处理来自全球不同 region 的超过 600 亿次的请求。
在 12 月 6-7 日北京 ArchSummit 全球架构师峰会上,蔡老师会分享《“云原生”趋势下的架构演进》话题,具体分享大规模软件开发的挑战、适合云计算的架构及架构模式、架构演进的趋势与架构师的新思考内容。点击ArchSummit 全球架构师峰会(北京站)2019 大会官网查看会议日程。感兴趣来参会的可以联系票务经理 灰灰 15600537884
评论