IBM云端平台不惜砍掉重练改用K8s打造现代化新架构
IBM Watson和云端平台首席架构师Andrew Hately
2年前,IBM展开了旗下云端平台产品的大整顿,不光只是重整品牌,还找来了20年前开发出IBM第一代SOA和Web产品的IBM Watson和云端平台首席架构师Andrew Hately,大力採用Docker、Kubernetes、Linux和Cloud Foundry,设计出全新的现代化IT架构,甚至将IBM自家所有云端产品都搬上了Kubernetes(简称K8s)环境。
「Kubernetes的出现,云端思维才能真正落实到既有应用程式。」Andrew Hately强调,IBM自己就是最好的实例之一,连每天在全球各地提供240亿次天气预报的Weather.com网站,都已经搬上了云端Kubernetes环境中运作。
5年前,IBM开发团队主要开发两类应用,一种是部署在虚拟化环境上的应用程式,另一种则是Web应用。即使后来IBM大力发展云端服务,将自家服务部署到公有云,但Andrew Hately指出,Cloud的3个基础是虚拟运算、虚拟储存和虚拟网路,随着越来越多应用上云端后,对开发者而言,只靠这三项来执行和开发现代化应用,太没有效率了。
从IBM自家开发经验来看,开发者需要更多云端管理机制,如自动修复(Self-Healing),新的维运方法来管理元件,需要简化云端概念(如区域、失效区域),需要能自动扩大部署(rollout),自动化还原旧版本(rollback),甚至需要有能力一天发布上百次,才能快速回应顾客的需求。
「大量上云端后的应用程式开发和维运需求,需要一个与过去截然不同的新架构。」所以,3年前,IBM开始研究跨云管理架构,决定大力投入Kubernetes开源专案,2年前,IBM悄悄地展开了自家内部平台的架构改造任务,甚至不惜重构自家云端平台,要将大部分的IBM软体和云端平台,都搬上Kubernetes。
IBM先从资料库平台开始着手改造,例如将天气预测应用改部署到IBM云上的Kubernetes环境中,后来更进一步扩大到所有的分析和AI产品,都转而部署到Kubernetes环境上。
Andrew Hately表示,去年终于完成了这个庞大的平台重构计画,除了用来管理基础架构上运算、储存和网路的控制台程式,以及基础架构的虚拟机器(VM)不是採用K8s,IBM其余的云端服务,甚至内部所用的上万支应用程式,几乎全都搬上了K8s。「我们真的将云端原生服务产品,建置在云端原生平台环境中。」他自豪的说。
如何用K8s来设计现代化IT架构?Andrew Hately用一张图来解释。他从一个基本问题出发,如何在作业系统上运用各种功能或元件,有没有更好的开发方法?
现代化IT技术架构图
IBM Watson和云端平台首席架构师Andrew Hately揭露了一个现代化(Modern)IT技术架构图,他认为,这也是企业跨多云打造云端原生应用需要的技术架构。(资料来源:Andrew Hately,2019年5月)
Andrew Hately指出,这个问题一直没有定论,过去几年的主流运算模式是直接在VM上开发应用,但是,VM最大的问题是档案太大,因此而很不好用。
他观察,对一般开发人员来说,开发应用程式有3件事非常困难,一是要扩充规模时,据太多储存空间,不仅费时又没有效率。第二个是「副作用的複杂度。」开发人员得考虑,一个程式或一个微服务,可能有哪些潜在的影响,使用越多微服务,连带要考虑的副作用就越多。第三个开发上的挑战是资安。
为了解决上述三个问题,儘管容器可以比VM得到更轻薄短小的执行环境,Andrew Hately认为,採用像是Docker这样整套的容器引擎,还不够小,因为越多元件放进容器,就需要考虑更多升级、更新、修补等维护工作等。「要将应用程式的相依性降到最低,只有尽可能缩小应用程式的大小,才有办法,安全地扩充和升级。
因此,在Andrew Hately的架构中,最底层的技术,採用了Docker的一项容器引擎专案ContainerD,这是IBM过去大力参与的专案之一。「目标是尽可能地将容器引擎缩小到只需占用电脑一个程序(Process)就能执行。」所以,ContainerD的档案非常小,程式码也非常精简,只负责几件事,就是启用一个执行程序(Process),绑定档案系统和所需的函式库。
不过,如此微小的容器引擎,就缺少了很多工具,如管理、调度、政策发布等複杂功能。所以,Andrew Hately在容器层之上建置了Kubernetes层。
他指出,Kubernetes是一个可以让你同时管理「一群」(set)容器或者说一群工作的平台。在这一层中,可以将一群任务放入一群容器中同时执行和管理,也可以具有基本的政策管理功能(policy),例如设定这支程式最少要启用几个程序来执行,而最多容许几个,或设定记忆体可用量,也可以提供简单的限制,如是否可存取,另外新版Kubernetes也开始可以支援到群组角色的政策管理。
IBM改用Kubernetes后,「新架构变得简单但很有威力,」他解释,K8s强迫所有应用程式的相依性和执行程序都得非常乾净,例如要将应用程式放上容器执行,得重新梳理如何存取网路的规则,让控管政策更简洁清楚。
拥抱K8s设计新架构的3大优点

拿掉传统防火墙的保护,人们常用云端原生应用,不安全地处理资料,这将是新的安全考验。─── IBM Watson和云端平台首席架构师 Andrew Hately 摄影/洪政伟
简洁的架构也大幅提高了IBM云端服务的发布速度,例如扩充和部署程式码的週期可以更快。像天气预测引擎使用了数千台VM,在VM环境中,每一次更新,要花3~5分钟派送映像档。虽然可以并行部署新版VM映像档,但还要重新启动VM,检查和确保每一个元件都顺利运作,一天顶多只能发布20次程式异动,但改用K8s上的容器来部署,重新开机时间只要3秒,发布速度可以快数十倍。
另一个好处是,Andrew Hately指出,大多数放上K8s的应用服务,可达到4个9(99.99%)的可用性。部分原因是产品所用的技术更成熟了,另一方面,因为K8s,可以自动将这些应用系统分摊到多个分散式软体定义储存环境中中,因而提高了可用性。
「K8s让我们可以用非常简单的方法,将Resilience(快速恢复能力)套用到各种服务,让每一个服务都能更快速地启动,也能在应用程式安装包中描述控管政策。」他表示,IBM採用了这样的开发模式,重新改造了大多数IBM软体产品的组成。
不过,挑战是,K8s应用层是一个附加在原有基础架构上的新模式,并非是将软体定义储存、软体定义运算、软体定义网路再一次的抽象化,而是一种更高层次的开发模式(Programing model), 「不是每一个开发人员都知道这种新模式,但他们必须知道。」
更进一步,「当需要考虑大量服务或微服务间的沟通时,就需要再往上一层的抽象化,这就是Istio层的用途和目的。」Andrew Hately说。
例如,多个服务组合成一个商业流程,彼此必须在安全通道中沟通时,就可以使用Istio来管理。Istio可以将这群服务集结成一群,称为一个服务网格(Service Mesh),再套用到同一个管理政策。「服务网格可以从商业流程角度,用Policy Language(政策脚本语言)来建立一个可管理一整群服务的政策。」他举例,如这些服务之间的网路路由如何进行,哪些应用程式要必须同时启用等。
这种政策脚本语言,类似更高阶的程式开发语言,但可以将複杂的服务间的沟通规则,用简洁的描述记录下来档案。尤其是需要複杂的资安控管时,例如哪些服务可以共用验证,哪些服务间通讯的TLS设定等,「这些过去难以自动化的工作,Istio搭配Kubernetes,可以使用多种语言来控管这些应用服务间的政策。」
不过,Istio不一定只能部署在K8s上,这是一个可以用来连结许多不同丛集的工具,「可用来管理大量服务(services),而非大量程序(processes)」
例如用手机查验文件有三个动作,上传文件图档、图片转文字、比对文字。若开发成3支微服务,每一支各自由不同的丛集来负责,以因应各自不同的运算量,对K8s而言,每一支服务都是等价,也会套用同一套政策。但Istio可以让开发者考虑业务流程的差异,更细緻地控管上下游服务间,或者同一类服务间的通讯和连结,「这种跨多个丛集多种微服务的组合式管理需求,就需要再抽象一层。」他建议。
再往上一层,若开发者只需要考虑资料集和功能(特定或单一功能),Andrew Hately称呼这种开发者为功能开发者(Function Developer),而非应用程式开发者(Ap Developer),他建议,可以使用OpenWhisk专案,这是一个用来开发单一服务、单一功能的开发框架。
如果不需要考虑容器生命週期管理,Andrew Hately建议,就可以考虑用Function环境来执行服务,也可说是一种一次性週期(a life cycle)。有需要就呼叫一次,非常简单的开发模式。「用于资料集分析时,Function环境非常好用。而且可以让所有语言各自独立运作,只需要考虑如何在云端执行多个程序。」
不过,採用Kubernetes设计的新架构仍有一大挑战,Andrew Hately指出,要重新思考资安。「拿掉了传统防火墙的保护后,人们常用云端原生应用,不安全地处理资料,这是新的安全考验,这是多数应用程式开发者还没深思的问题。」
CTO小档案
IBM Watson和云端平台首席架构师Andrew Hately
学经历:加拿大滑铁卢大学环工系毕业。1996年进入Corel公司负责软体开发。3年后进入IBM,开发出IBM第一代SOA和Web服务产品,2013年成为杰出工程师兼云端实验室CTO,协助顾客导入PaaS。2017年负责主导IBM开放云端新架构设计,担任IBM云端平台副总裁与首席架构师,负责定义IBM One Cloud架构
公司档案
IBM
● 成立时间:1911年
● 网址:www.ibm.com
● 执行长:Virginia Rometty
● 年营收:2017年791亿美元
● 总部地址:总部位于美国纽约市,全球177国皆有据点。
● 全球员工人数:约36.6万人(2017年)
公司大事记
● 2004年:出售个人电脑事业部门,更聚焦企业市场
● 2009年:买下统计软体SPSS,强化资料分析技术
● 2011年:IBM 新一代超级电脑 Watson20诞生,也展开了Watson认知服务的品牌和产品线
● 2012年:买下SoftLayer展开云端布局
● 2014年:出售x86伺服器业务,更聚焦AI和云端业务
● 2015年:併购两大产业数据巨头Merge Healthcare和The WeatherCompany
● 2016年:併购网路影平台Ustream和健康分析公司Truven
● 2017年:整併旗下所有IBM云端服务为单一品牌「IBM Cloud」
● 2018年10月:宣布以340亿美元买下红帽
● 2018年12月:出售Notes/Domino等产品,更专注进军AI及混合云
免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
最新文章
- DNF搬砖最佳宠物搭配指南
- DNF白金徽章变现攻略:如何巧妙出售白金徽章
- 寒潮蓝色预警:近两日最低气温 0℃线南压至江南南部至贵州南部和云南北部一带
- DNA 纳米机器人:可改造人造细胞,推动合成生物学发展
- 新型巨型里德伯原子成为精准量子温度计
- 《生化危机9》重大爆料:里昂确定回归主角,吉尔缺席引热议
- 广东:到 2027 年 绿色低碳循环经济体系基本建成
- 2024 财年美国对外军售额创历史新高:背后的战略与影响
- 离子阱量子计算在近年实现双码纠错
- 这次与肯德基的全新联动,星铁再次硬控玩家热情?
- 新年多城土地市场回温:杭州单价地王纪录 3 个月内两度被打破,民企恢复拿地
- 扎克·克雷格执导新版《生化危机》电影,发行权引多家大公司激烈争夺
- 广东:积极推进煤炭消费控制,全力构建以新能源为主体的新型电力系统
- 广东:到 2027 年,全力构建绿色低碳循环经济体系
- 长三角铁路春运再创佳绩:昨日发送旅客 310.2 万人次
- 海通策略:2025 年政策见效下市场望步入基本面驱动新阶段,结构上科技制造确定性更强
- 《最终幻想14》水晶世界青魔法师职业任务全攻略
- 上海:推出乡村振兴领域优秀博士后创新计划,打造高潜力创新人才‘储备库’
- 春节机票价格跳水至百元,航司退差价政策各异引关注
- 浙江:到 2030 年,LNG 年接收能力达 4250 万吨
- 上海:启动乡村振兴博士后创新计划,打造高潜力人才‘蓄水池’
- 币界网晚讯速递:SHIB币价攀升至0.00002044美元,日内涨幅达2.10%
- 不知火舞《街霸6》惊艳换衣秀,细节之处尽显匠心,玩家为之痴狂
- 中国汽车:奋力争夺超豪华市场入场券