德国铁路集团(Deutsche Bahn)是欧洲最大、全球第二大铁路运输集团,也是高度云化企业。德铁从2020年展开数字转型计划,不只推动铁路基础设施现代化、数字化,也大量运用各种数字手段和IT,创建可持续发展行动力(Sustainable Mobility),来实现绿色数字转型,完成2045年气候中和目标。

在集团CEO及旗下子公司16位CIO的支持下,德铁2021~2022年这项绿色数字转型计划,以“绿色IT”作为最终目标。不只是由上而下的转型计划,德铁更掀起了一场由开发同仁和各部门员工共同参与的强烈草根运动,催生了许多底层绿色倡议行动。开发人员利用工作之余发起许多小型项目,例如测量网站的碳排放量,或撰写降低在家办公对环境影响的指导手册。

德国铁路集团由旗下资讯公司DB Systel,负责全集团数字转型和IT战略。今年3月KubeCon欧洲场研讨会中,DB Systel平台策略和赋能首席技术顾问Gualter Barbas Baptista,首度公开了德铁绿色IT转型旅程的经验。

云计算厂商工具存有诸多限制,不利碳排资讯获取

为了顺利展开绿色数字转型,德铁集团IT部门的第一步,要找方法来测量出工作负载的碳排放影响。“没有好的数据提供资讯,就没办法思考替代方案,”Gualter Barbas Baptista也以火车延误来比喻,乘客若没有及时获得通知,就无法知道该如何应对和选择替代方案,“这正是为何必须创建资讯曝光率。”

他们一开始希望借助云计算供应商的工具,来获取这些数据,不过,这些工具有诸多限制,无法取得德铁想要的数据。Gualter Barbas Baptista举例,公有云碳排侦测工具无法分辨单一应用程序的碳排放,因为缺乏标签(Tag)机制,若云计算账户中有多个应用程序,没有Tag功能便无法区分哪一支AP产生多少碳排。

限制不只如此,可取得的数据颗粒度过粗,碳排仪表板的分析只能呈现大致比例,如50%来自EC2,20%来自其他资源,无法提供更细节资讯,且更新也不够即时,有时,产生数据后3个月才能查看。

更重要的是,他强调,公有云企业的数据缺少了能源使用资讯,因为碳排放量是根据碳补偿公式来估算,没有实际的能源用量,也就无法找出日常活动和排放影响之间的因果关系,更难判断哪一个行为造成碳排放的增加。

创建开发者绿色IT仪表板

德铁在其云计算架构中导入云原生可持续发展监控工具Kepler,用来搜集云计算IT系统能源使用指标,将其转换为KW功耗,以提供相关IT能源消耗和CO2排放资讯。他指出,Kepler的优点是,可以取得从高层次,到容器层次的资讯,以接近即时的资讯,了解单一组件中能源使用状况。此外,还可以在Grafana仪表板中注明,将开发流程的程序代码变更,串联到与这次更改对相关能耗的影响。

德铁IT团队创建了绿色IT仪表板,将使用Kepler搜集到的K8s集群的功耗资讯,通过Grafana仪表板进行呈现,可提供每支容器化应用程序即时的能耗数据。这是德铁交给内部开发人员的第一个工具,协助集团完成绿色IT的目标。

德铁IT团队创建了绿色IT仪表板,将使用Kepler搜集到的K8s集群的功耗资讯,通过Grafana仪表板进行呈现,可提供每支容器化应用程序即时的能耗数据,并用于碳排计算。德铁还通过数据湖打造了一个中间层,用来存储整个云计算碳足迹数据,也方便进行数据治理和数据集集成。图片来源/德国铁路

随着越来越多部门的参与,德铁IT部门通过数据湖打造了一个中间层,用来存储整个云计算碳足迹数据,也方便进行数据治理和数据集集成,他表示,通过这个中间层,也可以提供其他系统使用,进而集成更多的资讯,例如,企业架构管理系统上加入绿色IT的仪表板,就能提供给架构管理人员参考。

在绿色IT的实践上,德铁开始思考哪些工具和方法能够赋能开发者,尤其,开发者是每天决定软件功能的人,Gualter Barbas Baptista认为,不应仅仅依赖管理文件来告诉开发者该如何操作以及完成哪些目标。如果没有让开发者真正参与其中,并且提供合适的工具和资源,无论是在程序代码的撰写方式或是基础设施管理方面,都无法真正实现改变,达到更绿色IT的目标。

导入Kepler工具并非易事。他提到,尽管Kepler是开源且非常好用,但企业使用时仍需特别留意。首先在安全方面,为了应对安全挑战,德铁移除了177个非必要的依赖性组件,并将这些问题反馈至Kepler项目。其次,监控系统搜集的指标太多,可能产生过于频繁的通知和告警,反而造成干扰。所以,他们将默认3秒的数据搜集间隔延长至10秒,甚至是20秒一次,以减少不必要的干扰,也大幅减少了需要搜集的数据量。

德铁绿色IT发展有三大策略考量

德铁在绿色IT发展上采用不同策略,来满足够用、效率和一致性的需求。 Gualter Barbas Baptista解释,所谓的“够用”指的是必须考虑到真正的需要及背后的原因;而“效率”则是指生产和利用过程中,尽可能减少资源的消耗,最后,“一致性”则是设计一个符合自身需求的可持续发展性方案。

过去,德铁集团有一套平台化的战略,去年集成所有子公司全面执行同一套标准化的技术平台。他指出,平台化的重要性,在于可以利用平台,来创建高水准的标准化,通过持续改进,提供安全设计,让每一个人不用想,也能实现默认IT绿化(Green by default)。

德铁采用K8s构建云原生物科技术平台架构,涵盖企业集成平台、AI平台、数据管理平台、物联网平台、开发者体验平台以及No-Code和Low-Code平台等。他认为,K8s不只是一个高效的云计算运维工具,也是一个减少碳足迹的工具,甚至不仅仅是一个容器调度工具,更是一个平台构建工具,也是绿色IT工具。

举例来说,德铁IT团队有一套共享K8s集群,容器密度非常高,也设置了节点自动扩展,实现了平均约70%的CPU利用率。这是相当高的CPU利用率,可是,后来发现,实际上只有15%的CPU利用率被应用程序真正使用。

进一步分析后发现,这些应用程序一旦开始执行,通常就不再关注其资源使用情况,这是因为开发者为了应对可能出现的高流量,往往会在API请求配置上额外设置高一点,避免塞爆,例如API请求限制设置在512 MB,但这会让应用程序长时间占用了CPU和节点资源,造成资源浪费。

K8s项目不只提供了垂直Pod自动扩展机制,也有水平自动调整器,这让开发人员不再需要思考要用多少资源,甚至可以根据建议自动调整容器工作负载来优化,以满足其需求。因此,德铁后来改用垂直Pod自动扩展机制,确保应用程序资源最佳配置,来摆脱昂贵的猜猜看的做法。