登顶之路|数字海南架构师谈云原生编程挑战赛参赛心路历程
2022 年 11 月 3 日,第三届云原生编程挑战赛即将迎来终极答辩,18 支战队、32 位云原生开发者入围决赛,精彩即将开启。
云原生编程挑战赛项目组特别策划了《登顶之路》系列选手访谈,期待通过参赛选手的故事,看到更加生动鲜活的中国开发者。
2022 云原生编程挑战赛共吸引了 17900+ 支队伍,超过 18000+ 选手报名参赛,覆盖中国、美国、德国、加拿大、新加坡等 13 个国家和地区,汇聚 440+ 国内外顶尖高校和 240+ 领先企业,企业选手占比达 30%+,其中决赛企业选手占比达 75%,大赛规模再创新高!
第一期我们邀请了来自数字海南有限公司的曾辉林,针对参赛历程与感悟进行了一次深度采访。
深度采访
在什么背景下了解到阿里云云原生编程挑战赛,是什么吸引了你们参赛?
起因是我关注了【阿里云云原生】的公众号,偶然在一次推文中发现了 2022 云原生编程挑战赛的启动报名文章,查看后发现今年的赛题比较贴合我们公司开发的一个实际场景,很想去尝试挑战一下,通过参赛去解决一些未来可能会遇到的难题,提前做好准备。工作之后比较少机会参加大赛,我希望通过这个比赛过程能够收获和学习一些实战的技能。
怎么组队的?为何选择了赛道二作为参赛方向?
我们团队的队员都曾经任职在同一家公司,由于技术方向相同、对彼此的技术能力也都比较认可,所以我在看到这篇推文后便联系了另外两位小伙伴发出组团的邀请,大家看过大赛介绍后都觉得很有意思,因此立刻组团开始报名。
战队:浩瀚武林(居中是本次受访嘉宾)
我们同时报名了赛道一与赛道二,其中赛道一的服务网格技术与我们公司目前的业务较为贴近,而选择主攻赛道二的原因是公司内部 RPC 框架注册中心模块想以 Kubernetes 作为注册中心,就需要调用 kube-apiserver 来获取服务地址列表,刚好赛道二考察基于 list/watch 机制实现高效的边缘自治方案与公司调研的怎么保持服务地址信息的可靠性、实时性、顺序性、高性能也很贴近。也算是着眼于未来,我们最终选择了这个赛道,当然这也意味着我们要去挑战之前不太触及的新技术领域,有兴奋也有担忧。
之前对边缘云原生方向有接触吗?针对云原生边缘计算场景的 ACK@Edge的高效边缘自治方案,觉得这套方案和同类型方案比有何优势?
对边缘云原生在参赛之前接触比较少,因为它主要领域是在 IoT (物联网)和 CDN 等领域。而我所在的公司是比较偏政企化,所以接触的比较少。
在参赛过程中我们进一步了解了 ACK@Edge 高效边缘自治方案,我的理解是它在边缘节点和云端管控网络断连等异常情况下,业务重启还是节点重启后,节点内或者跨节点间的业务应用通信都将自动恢复,比较适用于边缘计算的弱网络连接状态下应用跨节点通信的场景。
而这套方案和同类型的方案,我觉得它的优点在于性能更高效,资源占用比较低。
这个赛道吸引您的原因是什么?
赛道二吸引我的原因主要有两点:第一点是对于边缘计算技术,是我作为系统架构师希望去主动学习的东西;第二点是因为目前赛道二的内容与公司项目中所调研的内容比较贴合,两者都需要去调用 kube-apiserver 去获取服务列表,有些相似且可以借鉴之处。
在参赛过程中有难忘的事情吗?
在比赛的最后一周,排行榜的第一和第二的分值与我们相差较大。我们团队连着几个晚上进行了语音讨论,并且尝试了多种方案。最后,在比赛截止的前三天,我们讨论出了一个可行性的方案,同时跟导师开展讨论后进行了验证。最终我们的比分跟第一、第二名的分值相差不大,期间也有一次反超了他们的分值。
您目前任职的公司岗位经验,在参赛过程中有带给您什么灵感吗?
目前,我在数字海南主要担任公司系统架构师一职,主要是系统架构设计,中间件选型和系统性能调优。这次参赛在性能调优上给了我很多灵感,比赛中采用 Golang 的临时对象池,增加临时对象重用率和减少 GC 负担和采用内存缓存策略提高程序的性能。
有没有什么感悟可以跟大家分享的?
这次参赛主要是提升了我的编程技能以及对云边端的更深层次的认知。随着近年来5G 网络、物联网的快速发展,云技术应用的边界也在不断拓展和深入,来应对爆炸式增长的数据量和终端侧“大连接、低时延、大带宽”的市场需求,这将是边缘云的趋势与机会
之前用过印象比较深的阿里云的产品是?
印象比较深的有两个,一个是应用实时监控服务 ARMS 可以基于前端应用、业务自定义等维度,迅速便捷地构建秒级响应的应用监控能力。另外一个是阿里云应用高可用服务 AHAS,它可以提高应用及业务的高可用能力,主要提供流量防护、故障演练、容灾等核心能力。
参赛过程中最难的是什么时候?
比如在开始的时候,我们团队参与了赛道一和赛道二,同时在两个赛道中都取得了较好的成绩。但后期由于工作以及一些其他原因,加上参赛节奏较紧张,所以那段时期稍微有些松懈,甚至产生了放弃的想法。
在比赛即将截止的时候,我们团队又沟通了几次,大家还是觉得咬咬牙要坚持下来。我们团队在赛道二的成绩与前面选手差距不大,还是非常有机会的,于是三个人熬夜写代码,在工作之余讨论优化方案,与导师沟通,不断解决技术问题,最终完成了这个赛季的冲刺。不论能不能拿到一个好名次,起码能够在这次比赛中学习到一些工作中未曾涉及的领域知识。
您是怎么理解云原生的?
我是近一两年了解到云原生技术,与云原生相关的产品、开源、演进历程等都吸引我去不断了解这个领域的发展。作为一名程序员,是需要不断的去学习一些新的知识,了解前沿的技术趋势。
我在云原生领域比较专注于容器和微服务,微服务解决“应用架构复杂度”问题,容器解决“应用部署问题”问题,Kubernetes 解决应用“编排和调度”问题。我认为容器算是云原生领域中的代表技术,容器提供了应用分发和交付标准,将应用与底层运行环境进行解耦。我在加入到数字海南后,2020 年末公司开展了所有的服务容器化上云计划,用 Kubernetes 解决容器的编排与调度。
选择容器化上云的技术规划时,会有一些顾虑吗?
一开始是有些顾虑的,因为我们的项目要求高可用、高性能、高并发和安全性,所以我们当时先将其他的一些项目进行落地,在逐渐平稳后才将主要项目迁移上容器。容器技术虽然比较繁琐,但是它可以在整个应用程序生命周期工作流中提供了隔离、可移植性、灵活性、可伸缩性和控制的好处,这是容器化可以给我们带来的便捷,所以我们的团队还是在努力的学习并克服容器技术上的一些难题。
对于即将展开的决赛答辩,选一句口号的话,你会怎么选?
我们团队的口号是:态度决定一切,细节决定成败。灵感来源于比赛结束前的一周,我们团队努力追逐赛道二中第一名和第二名的步伐时,在细节中捕捉到了这句口号的关键和灵感。