Web开发

首页 » 常识 » 问答 » 台积全球数据中心运维高度自动化的关键
TUhjnbcbe - 2023/1/15 23:09:00
泉州白癜风医院 http://baijiahao.baidu.com/s?id=1680155302651531321&wfr=spider&for=pc

“每座芯片厂背后都有一座大型数据中心,要管理全球数十座数据中心,超过数万台实体服务器、数十万台VM,只靠传统IT技术,没有办法有效运维。”台积电资讯构建暨通信服务处副处长刘培欣特别强调。

这位数据中心运维高手,曾在亿级用户浏览器创业公司中,打造出1人能管上万台服务器的工具,今年初加入台积电后,看到芯片厂24小时运转背后需要的数据中心规模,大吃一惊。

台积电面对的数据中心运维挑战,不只是数据中心和硬件的数量,还需要高容错和高可用设计,一般网络服务能接受2~3秒中断,来切换到备援服务,但这个做法在台积电,却是不及格的设计。因为台积电的问题规模,比常见网站服务,多了好几个等级,原本平淡无奇的架构设计问题,到了台积电往往超乎想象,连刘培欣都倍感挑战。

台积早在十多年前,就开始用拥抱虚拟化技术,来提高数据中心实体服务器的运维效率,也以VM打造出IaaS,甚至是PaaS服务。可是,到了年时,台积开始看到VM的瓶颈,大量采取单体式架构的老旧应用,只靠不断提高服务器硬件规格来扩展的垂直扩展(ScaleUp)做法,恐怕无法支持台积未来运营增长的需求。甚至,后来随着台积持续全球扩张,IT技术不断面临的新挑战是,如何能够不断快速延伸到全球。

从VM转为拥抱K8s和容器,更大力发展IaC

早在年时,台积就开始在内部数据中心导入Kubernetes(简称K8s)来尝试容器技术。到了年时,台积决定进一步开始推广容器化技术,采用商用软件来构建私有K8s环境,并开始将VM搬迁到K8s环境中。

到了年,疫情大大冲击了全世界,也让台积加快数字转型的脚步,一方面大举招募IT人力储备新战力,另一方面也加速推动IT现代化。

台积基础架构团队当年三大工作重点,一是要善用各种基础架构新技术,来协助台积数字转型,另外也开始要将数据中心通过软件定义转型成真正的私有云,最后一项是要持续进行基础架构的创新,例如导入新时代5G、IoT制造、AIOps技术等。台积也开始尝试混合云做法,将适合业务上云,如云计算CRM和云计算HCM。

年时,台积决定改用开源技术架构,打造自己的K8s平台。台积电企业系统集成处部经理胡君怡表示,为何台积要用开源技术,自己构建K8s,好处是自己开发、自己运维,敏捷程度更好,IT的开发速度弹性要能追上我们企业流程的转型需求。

到了年底时,已经将多座芯片厂的应用系统,搬迁到这个自建K8s环境中。年8月时,也上线了电子商务服务使用的自建K8s平台。台积计划在~年期间,将所有服务都搬迁到自建K8s上。

年,台积开始招募SRE团队,大力发展基础架构程序代码化(InfrastructureasCode),要使用软件方法,来管理台积全球数据中心,以及基础架构的硬件设计、建设和运维。

台积IT从年开始摸索现代化IT架构,年展开基础架构转型,到了年,台积资讯基础架构逐渐完成了现代化架构的转型,也大幅运用IaC来提高自动化运维能力。进一步,台积IT也成立了SRE(SiteReliabilityEngineering)团队,来负责平台服务的各项运维。台积分别在智能制造团队、数字商务团队和基础架构团队中,各自设置了一组SRE团队。图片来源/台湾集成电路制造股份有限公司

台积基础架构分四层,从MaaS、IaaS、PaaS到SaaS

从年开始模索,年展开基础架构转型,到了年,台积资讯基础架构逐渐完成了现代化架构的转型,也大幅运用IaC来提高自动化运维能力。

刘培欣指出,运维要高度自动化的关键是,让基础架构可程序化,包括看得到的硬件服务器、网络设备,到看不到的OS、上层服务,全部都要可程序化。

台积技术架构可以分为四层,底层MaaS、IaaS通过数据中心自动化机制来强化,上层PaaS和SaaS则通过K8s搭配内部的WebService,达到公有云企业的灵活度和弹性。

更进一步细分这个架构,可以分为8个子层。最底2个子层是实体网络层和存储设备层,再上一层是BareMetalServer层和OS层,这两个子层通称为MetalasaService层,简称MaaS,可以做到靠软件动态调度硬件资源的配置。

再往上是中间件和K8s基础架构子层,台积将这两个子层视为IaaS层。在K8s基础架构上有一层标准服务子层,这一层提供不同应用系统常用的基本共享服务,台积将标准服务与K8s平台的部分功能整合成了PaaS层。

在标准服务之上,台积还打造了一套WebService,类似一套公有云服务解决方案的做法,这就是台积技术架构中的SaaS层。台积利用K8s平台服务,来管理PaaS和SaaS层,来实现运维高度自动化的IaC做法。

“IaC对台积而言,不是选项,而是一定要做的事,运维自动化是一定要走的路,否则无法达到这么庞大的规模。”刘培欣强调。

台积如何用开源技术自建K8s架构

在台积用开源技术自建的K8s架构中,包括了多个功能区块,IaC区块可以支持常见IaC语言工具如Ansible、Terraform、golang和python等,再通过一套CI/CD工具链,来贯穿K8s架构从底层到最上面的部署。台积在K8s架构底层网络上,采用了L3BGPIPFabric设计,而不是一般部署K8s平台时常见的L2网络设计,采用L3网络架构是台积可以快速部署大量集群的关键。例如台积可以做到,开发团队只要通过一个声明式YAML文件,就可以快速取得所需要的负载均衡IP,完全不用填单申请,也就不需要等待核准。

在网络区块之上是OS区块,每一台x86服务器只要接上网络,通过网络开机就能开始自动安装,来实现MaaS。完成OS自动安装后,接着安装软件FRR组件,让服务器具备路由器功能,再自动安装ceph来提供软件定义存储功能。有了SAN和路由功能,就可以部署K8s调度平台软件,上面又会统一安装CRI、CNI、CSI指定组件,来统一K8s的runtime、网络和存储接口。而在最上层,再安装服务网格组件Istio和服务探索工具CoreDNS。另外还有搭配一套机密和身份验证系统,以及一套可观察性和治理系统。

但是,一家企业不是第一天成立就拥有十几座数据中心,而是数年,甚至十多年持续发展IT的结果,这往往也让企业内部基础架构所用的IT技术,包括硬件、软件和所用软件产品,跨越了好几个时代。这些系统各自有各自的修补、升级,都会影响运维自动化的程度,甚至成为包袱。

台积决定用系统性思维来解决应用系统横跨多时代技术的问题,在现代化开发模式DevOps的CI/CD流程中,找到了可以强化运维自动化的关键。

刘培欣透露关键秘诀是:“台积CI/CD独到之处,是在CD循环外层套上一个辅助系统作为加速线圈,来加速CD的运转。”

简单来说,台积在CI/CD执行过程搜集大量Log,创建可观察性机制,搜集到更多运维知识或运维洞察,找出可重复的模式,写成程序代码或转换成*策,再部署到CD辅助系统,来加速运维。“这个CD辅助系统,不只可以加速CD流程,甚至可以将成果套用到CI流程,融入基础架构中。”刘培欣补充。

台积电资讯构建暨通信服务处副处长刘培欣特别强调,IaC对台积而言,不是选项,而是一定要做的事,运维自动化是一定要走的路,否则无法达到这么庞大的规模。图片来源/台湾集成电路制造股份有限公司

台积加速CD循环的5大步骤

如何实现这样一套的CD加速线圈,台积分5个步骤来实现。第一个步骤是先将数据中心基础架构的部署,变成是可延伸的部署方式(Extensibledeployment)

利用数据中心DCIM监看每一个单点的状态,创建了一套DCLibrarian系统来集中每个单点的运行资讯,再提供给MaaS系统(包括部署在各地数据中心的本地端MaaS),来调度服务器和网络设备,再搭配了一套LogicalClusterBuilder系统,负责管理硬件设备调度之间的依赖性。

可以指定调度范围,从整个机柜,到整座数据中心都能调度,甚至可以指定跨数据中心的范围,来调度没有实体相连的服务器资源。

通过这三个机制,就可以实现部署可延伸性,可以大幅提高数据中心的构建效率,不需太多人力,就能够快速激活远在海外的数据中心,用来支持海外扩点所需。

下一步,就是将运维资料标准化,来强化可观察性。通过在服务器端的代理程序或设备资料搜集机制,持续搜集各种数据中心的运维Log,进行资料标准化。因为台积的数据中心很多,搜集来的Log数据非常庞大,无法存储所有的原始资料,因此也会进行资料萃取后,保留有价值的元数据以便进一步的处理。

台积电也会在各地数据中心,设置本地端NOC机制,善加利用所搜集到的这些Log数据,来监看当地数据中心的运行情况。

庞大Log数据经过萃取后,就可以进行高端分析,这就是第三个步骤,创建可以统一进行事件侦测、调度和解读的集中式机制,包括了EventCenter和GlobalAnalyzer两个机制。EventCenter可以分析Log萃取出来的元数据,找出模式,来分析这些模式所代表的高端意义。

GlobalAnalyzer不只可以对单一地区数据中心的Log元数据进行高端分析,还可以跨多地区数据中心来分析。

通过高端分析可以找出原本不知道的运维洞察后,就进入第四个步骤,创建一套杠杆系统来提高运维自动化程度。将新发现的分析结果,转换成新的管理*策,提供到GlobalNOC来执行,从GlobalNOC的高度,统一来管理所有地区数据中心的运行。

但,做到数据中心全球统一管理不是终点,而是新的起点,台积电的运维自动化还有第五步骤,要进一步将重复性运维任务转换成程序代码,来实现快速恢复和自动修复。

每次只要导入新的解决方案,或是新建数据中心等,就会增加新的事件,也会不断找到新的数据中心运维模式,都能持续用来提高运维的自动化。

刘培欣解释:“在CD循环中套上加速线圈,永远可以找到新的模式来修正问题,将重复的工作自动化。”

台积导入到这云原生物科技术的K8s架构时,为了加快容器化的普及,先提供了一个图形化接口,让开发者将原有VM架构,转换成容器镜像文件来部署,也能自动产生YAML来进行部署。

后来,越来越多服务转移到K8s,也开发了不少微服务,只靠GUI接口设置无法满足DevOps开发的各种弹性需求,后来进一步导入了GitOps做法,将YAML档的撰写比较程序代码开发的流程,不只大幅提高了发布速度,也提高了K8s部署资讯的透明度。

台积完成这套自建K8s平台之后,再结合GitOps做法,现在已经可以做到,DevOps工程师只要通过git,送出一只YAML档后,约十多分钟就能完成部署,开通服务。

拥抱GitOps提高效率,更要发展内部WebService平台

甚至,台积进一步打造出了一套内部WebService平台,让DevOps可以更弹性取得需要的基础架构资源和常用基础服务。台积首度披露了这套WebService平台的三阶段发展过程。

首先,台积先选出内部开发常用的一批标准服务,提供了一套自助式的标准服务目录,可以提供一套常用服务的部署文件,让DevOps工程师可以套用到自己的CI/CD流程,快速部署到想要的K8s环境上。

接着,台积IT将这些标准服务,发展成一套管理式的多租户服务平台,提供一个网页接口,方便开发者注册所用的服务,也能管理所用服务的异动。

第三阶段是打造出一套WebService平台,不只可以提供更多样化的服务项目,也开始提供可观察性的组件,采取插件扩展的方式,来提供像是性能监控,账单与报表功能,警告通报自动化、Log和事件机制等,开发团队的用户,甚至可以自订通知,事件触发后自动串联到指定自动化流程来展开后续作业。

台积通过这些彻底拥抱IaC的做法,刘培欣指出,我们的目标是,数据中心自动化性能能达到搜索龙头的等级,而PaaS和IaaS层的自有WebService服务能够达到如云计算龙头的弹性。

1
查看完整版本: 台积全球数据中心运维高度自动化的关键