气象大数据云平台培训感想
本文仅代表作者在文章发布时的个人观点,不排除未来会有所改变
今天在领导的要求下几乎全程参加了信息中心关于气象大数据云平台的在线培训。
即使领导没有明确要求,我也还是想听听与气象大数据云平台相关的培训。 毕竟气象大数据云平台即将于今年业务化,作为近几年气象局在气象信息化领域最重要的布局,所有业务系统都不免要与其打交道。
现行计划
按照目前的规划,数值预报业务系统将在明年开始启动融入气象大数据云平台的进程。 最终的融入方案尚未确定,但已确定实施的路线。 计划从产品后处理入手,并过渡到资料前处理等步骤。 最终将所有非并行计算的任务都迁移到云平台中,而高性能计算机上仅保留并行计算任务。
下图是我个人对现行融入计划的理解:今年(2020年)保持现有业务系统不变;明年(即2021年)将图片产品制作迁移到云平台上;未来(2022年以后)逐步将资料前处理和所有的产品制作都迁移到气象大数据云平台上。
虽然业务系统融入气象大数据云平台是大势所趋,但对于上述方案,我仍持保留意见。 NWPC 的数值预报业务系统及数值模式研发工作,至少在我入职的 7 年以来,都只专注在 HPC 上。 短期内进行架构上的改变必然会遇到重重困难。
无论从整个业务系统构建和维护角度,还是从我个人职业发展的角度来看,大数据云平台都会带来严峻的挑战。 在之前翻译的 ECMWF 两篇通讯文章中也有探讨。
通常情况下,挑战总会伴随着机遇,尤其在大变革的时代。 今天参加培训的主要目的之一,也是想看看是否能从各位专家的介绍中获得一丝关于机遇的灵感。 可惜,我还是没有把握住机会。
感想
我的个人账户没有气象大数据云平台任何资源的使用权限,所以只能从培训和文章资料中获取云平台的相关信息。
在没有具体项目需求并实际使用的情况下,参加类似的培训似乎没有多大的帮助。 本次培训介绍的非常全面,但我依然感觉自己没有听到新的内容,与之前的介绍和小规模培训没有太大的差别。这可能是因为我确实能力有限,理解不到位,也可能是因为没有实际使用过,没有带着问题参加培训。
有了解才有发言权,我了解得不够充分,想法就会比较片面,所以本文看看就好。
当我们面临多种工作方向时,就需要进行选择。 向气象大数据云平台迁移虽然是数值预报业务系统重要的发展方向,但这仅仅是我工作任务的一部分,还有其他的任务方向可以选择。
新建立的系统总要经过一段时间的发展,才能变得稳定和易用。 虽然早期参与者会获得先行优势,可能会在某种程度上影响系统的演变。 但我觉得我显然还达不到这么高的层次,不认为自己能在气象大数据云平台建设方面起到任何作用。 所以还不如等待先行者将各种未知的坑填平后,再进入到该领域。
后入场的劣势在于,在系统已经定型的情况下,就只能按照给定的路线对现有业务系统进行改造,无法再提出自己的需求。 我并不在意这一点,因为我一直对气象大数据云平台的部分思路持保留意见。 直到现在,我依然觉得想要将整个气象局的所有算法都统一管理在一个平台下,是一个非常艰巨而庞大的目标。
我认为对算法的统一管理,才是气象大数据云平台最核心的建设思路。
这意味着气象大数据云平台运行单位会深度介入到气象局所有的业务系统中,各项业务系统必须按照运行单位制定的各种规范构建。 打破烟囱和孤岛是一件好事情,但进展太快往往不会带来想要的结果。
从个人角度来看,既然迁移工作可以通过工程项目来实现,还需要去详细了解气象大数据云平台的技术细节和融入规范么? 反正工程项目使用到的技术往往都不在我的技能范畴内。 而摆在面前可以选择的方向还有很多,比如研发数据工具,参与诊断工具开发,寻找统计指标的快速计算方法,尝试机器学习算法等等。 每一个方向都与 NWPC 的核心任务,即数值预报模式研发,有着密切的关系。 而融入气象大数据云平台仅能作为一个工程类的项目,与 NWPC 的核心任务没有直接关系。
题外话
我更倾向于使用以开源软件为代表的通用技术,而不是仅在特定单位使用的特有技术。 在我看来,气象大数据云平台虽然提供诸如数据库、消息中间件等通用技术,但整体思路还属于专有技术。
云平台去年就发布了 MUSIC 2.0 版本的数据接口。 我在去年 9 月份写了一篇文章,介绍如何将其中的 Python 接口改造为支持 Python 3。 详情参见 《改造CIMISS MUSIC接口的Python SDK》。
今天培训时候再次查看最新的接口 SDK,发现一年过去,云平台官方依然没有更新数据接口的 Python SDK 包。 在 Python 2 已停止更新的今天,依然没有提供面向 Python 3 的开发包。 这点我确实没有想到,按理说没有业务化的平台应该可以更频繁地升级 SDK 开发包。
注:目前云平台已提供官方 Python 3 的 MUSIC 接口
如果想要 Python 3 的开发包,可以参考 NMC 开源的 nmcdev/nmc_met_io 库。 nme_met_io 封装了 MUSIC 的 HTTP 接口,提供对 Python 3 的支持。
因为没有资源访问权限,我没有使用过气象大数据云平台提供的其他 Python SDK 包。
总结
本以为这篇文章很快就能写完,但因为效率太低,一直写到第二天凌晨。
正如开头说的:
本文仅代表作者在文章发布时的个人观点,不排除未来会有所改变。
我还是希望未来会被打脸,这样如果明年确实要承担融入切换的任务,也能提高一些效率。