为研发效能而生|一场与 Serverless 的博弈

news2024/12/26 21:06:27

在这里插入图片描述

2022 年 11 月 3 日,第三届云原生编程挑战赛即将迎来终极答辩,18 支战队、32 位云原生开发者入围决赛,精彩即将开启。

云原生编程挑战赛项目组特别策划了《登顶之路》系列选手访谈,期待通过参赛选手的故事,看到更加生动鲜活的中国开发者。

2022 云原生编程挑战赛共吸引了 17900+ 支队伍,超过 18000+ 选手报名参赛,覆盖中国、美国、德国、加拿大、新加坡等 13 个国家和地区,汇聚 440+ 国内外顶尖高校和 240+ 领先企业,企业选手占比达 30%+,其中决赛企业选手占比达 75%,大赛规模再创新高!

本次我们邀请了来自中原银行股份有限公司的战队「为研发效能而生」—徐志亮、岳同书同学,针对参赛历程与感悟进行了一次深度采访。

深度采访

两位是在什么背景下了解到阿里云云原生编程挑战赛,是什么吸引了你们组团参赛?

徐志亮:我们是通过阿里云云原生公众号了解到,作为云原生顶级品牌赛事,已经举办到了第八届,它的比赛内容都是围绕热门技术领域,对于开发者来说非常有影响力和挑战性。同时,大赛的奖励也很有吸引力。

中原银行对云原生架构建设高度重视,已经制定了完善的云原生技术发展战略。我们所在中原银行的工程效能团队,致力于持续改进提升企业级研发效能水平。通过参加本次比赛有助于加深我们对于云原生架构的理解,进一步拓展我们的技术视野,为今后云原生架构相关应用研发实践提供更多的思路与启发。

本次为何选择了赛道三作为参赛方向?

徐志亮:Serverless、云端开发都是近些年的热门话题,之前对于 Serverless 的了解更多地处于技术原理认知层面,本次参赛能够给我们一个深入技术实践的机会。同时IDE 是我们开发者每天都在用的软件开发生产力工具,所以对于赛道三题目的理解上会更加深入一些,因此选择了赛道三作为我们的参赛方向。

对赛道三:之前对Serverless架构方向有接触吗?针对实现一个 Serverless 架构的 Web IDE 服务的理解如何?

岳同书:之前了解过 Serverless 架构的一些知识,但并没有深度进行过Serverless架构应用实践,所以本次参赛对于我们来说,挑战还是比较大的;

就赛道三的赛题来看,Serverless 架构的特点与 WebIDE 服务的业务场景是契合的,但美中不足的是 Serverless 架构要求的“无状态”与 WebIDE 服务的“有状态”之间存在矛盾,如何安全、高效的存储和恢复数据便是重中之重,参赛期间赛道三的导师也给了我们很多的帮助和启发,在这里要特别感谢他们;

Serverless 架构按量付费、灵活的弹性伸缩策略,以及更高的资源利用率,都是相较于其他方案的显著优势。

两位在参赛过程中有遇到什么挑战吗?你们是如何解决的?攻破后对您的技术方面有什么帮助吗?

岳同书:第一个挑战是我们对于函数计算平台并不熟悉,大概花了几天的时间通读了所有的技术文档,列出了一些我们可能会用得上的特性,逐步论证形成了最终的技术方案。高质量的技术文档对于提升开发质效至关重要,这点要给函数计算团队点赞,通过阅读文档,基本解决了绝大多数问题。

第二个挑战是技术方案的经济性,如何以最小的成本投入来完成参赛目标,这也很大程度上影响了我们技术方案的制定和优化调整。举个印象最深刻的例子:最初我们计划通过泛域名解析来实现不同租户的 WebIDE 服务访问,但后来动辄几千块的泛域名 HTTPS 证书使得我们最终放弃原先方案,促使我们进行了第一次技术方案的优化调整。

第三个挑战是开发过程中不断出现的技术难题,如:如何中断 Open VSCode 的长链接实现资源利用率的优化、如何解决多个 WebIDE 实例在同一域名下访问时出现的静态资源文件丢失、IndexedDB 错乱等问题。面对这些长时间困扰的阻碍问题,我们耐心深入钻研源码,最终圆满解决上述问题,进一步提升了我们研究解决技术难题的实践能力。

两位目前任职的公司岗位经验,在参赛过程中有带来什么灵感吗?

岳同书:为了给开发者提供开箱即用的体验,我们决定给 WebIDE 增加“环境模版”这个特性,因此需要基于不同编程语言来定制基础环境、编译工具、构建工具与依赖源配置等。这里结合了函数计算平台的 Custom Container 功能,本质上不同的“环境模版”就是一个个不同的容器镜像。这个功能的实现借鉴了实际工作中的业务场景,即在持续集成流水线运行环境中也面临同样的问题,不同的工程使用不同的开发语言与不同的编译工具,解决构建环境的可复制性与 WebIDE 的“环境模版”特性不谋而合,这给我们带来了很大的灵感助力。

作为赛道三中的一支优秀团队,两位认为在这次参赛过程中,都收获了什么?有没有什么感悟可以跟大家分享的~

徐志亮:首先,通过此次参赛进一步加深了对于云原生架构的理解,比赛的过程也是我们对于云原生、函数计算等技术深入学习和应用的过程。其次是角色的转换,从IDE的使用者转换为了WebIDE的设计者和开发者,新的视角带来了全方位新的思考。另外,我们也是站在巨人的肩膀上进行具体实践,本次作品借助了开源 Open VSCode Server和阿里云一系列产品的能力,体验到了开源技术的力量和阿里云基础设施的强大。最后,团队合作的力量非常重要,在参赛过程中我们不断遇到问题、解决问题,最终达成了预期目标。

目前阿里云云原生编程挑战赛已经连续举办了很多年,近几年企业选手的参赛比例越来越高。其中,很多选手前期参与较多,但最后因为跟工作时间的冲突导致放弃或者需要熬夜去完成这个比赛,两位有这样的情况吗?

我们主要利用工作之余的时间,坚持完成了此次比赛,可以说是身体和心理的双重考验。在这个过程中经历了前期没有头绪和把握,中期不断遇到困难与挑战,几次调整甚至推翻已实现的功能,到后期争分夺秒地进行优化完善,最终尽我们最大努力完成了预期目标。

这次参赛经历会在两位自身的技术方面带来什么帮助吗?

徐志亮:一是加深了对于云原生架构的认识与理解,积累了相关实践经验,拓展了我们的技术视野,对今后工作也会有更多的思路启发。二是锻炼了我们学习新技术与钻研解决问题的能力,赛道三主要涉及Serverless、云端开发与IDE等多个技术领域,通过参赛进一步促进提升了我们的综合技术能力。三是促进提升了编码能力,巩固了我们对于前后端技术的综合应用能力。

之前有过使用阿里云的产品或参与过阿里云的一些开源项目吗?

岳同书:本次参赛过程中我们团队就深度使用了阿里云“云效”产品的需求管理、持续集成等功能,解决了我们团队内部的需求协作、进度协同等问题,提升了我们研发协同的工作效率。尤其是“云效”的持续集成能力,有效解放了我们的生产力,让我们有更多的时间去思考设计与解决问题。

两位对 Serverless 和开源社区的看法,未来是否愿意投入到社区的建设中?

岳同书:参赛过程中,其实我们一直有用到 “Serverless Devs” 这个工具来做调试发布,经过我们深入了解,它是一个以开源形式建设,无厂商锁定的 Serverless 开发者平台。目前,国内越来越多的企业和开发者都积极参与开源社区,拥抱开源技术,为开源技术贡献自己的一份力量。一直以来,我们也在利用业余时间为开源社区贡献自己的力量,主要包括翻译文档、功能特性开发等。

徐志亮:我们也是抱着学习的态度来了解和尝试云原生架构应用建设的。云原生是以容器化为基石,以容器调度与编排作为基础能力,以 DevOps 和 CI/CD 为应用场景,帮助开发人员在云上构建和运行可扩展的应用程序。基于云原生架构理念,软件开发、测试、运维乃至整个软件工程生命周期都发生了变化。面向未来银行数字化战略实践,我们需要持续关注云原生等各项新技术的演进发展,拥抱变化,拥抱云原生。

11 月 3 日,两位将要来到杭州进行赛道三的决赛答辩,可以说说团队的口号以及灵感吗?

徐志亮:我们的口号是“为研发效能而生”,这也是我们所在的工程效能团队的 Slogan。我们致力于不断改进提升研发效能,打造基于云原生架构的企业级一站式研发运维协同(DevOps)平台,赋能研发团队持续交付高质量的业务价值,助力企业数字化转型创新发展。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/23313.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第1章 计算机系统概述

1.1 操作系统的基本概念 1.1.1 操作系统的概念 操作系统是计算机系统中最基本的系统软件。 操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进…

锐捷端口安全实验配置

端口安全分为IPMAC绑定、仅IP绑定、仅MAC绑定 配置端口安全是注意事项 如果设置了IPMAC绑定或者仅IP绑定,该交换机还会动态学习下联用户的MAC地址 如果要让IPMAC绑定或者仅IP绑定的用户生效,需要先让端口安全学习到用户的MAC地址,负责绑定不生…

如何参与一个开源项目!

今天教大家如何给开源项目提交pr,成为一名开源贡献者。pr是 Pull Request 的缩写,当你在github上发现一个不错的开源项目,你可以将其fork到自己的仓库,然后再改动一写代码,再提交上去,如果项目管理员觉得你…

【建议收藏】回收站数据恢复如何操作?3个方案帮你恢复删除的文件

在使用电脑时,我们经常会清理不需要的文件数据。电脑回收站被清空了,但是里面有我们重要的数据,回收站数据恢复如何操作?不如试试下面的3个方案,一起来了解一下回收站数据恢复吧! 一、注册表恢复回收站数据…

电脑视频转换成mp4格式,视频格式转换器转换

怎么把电脑视频转换成mp4格式?使用视频转换器,可以转换来自各种设备的音视频格式,包括相机、手机、视频播放器、电视、平板电脑等。因此,音视频爱好者都可以使用它在各种设备上播放或在社交平台上分享。 主要人群及作用&#xff1…

BHQ-2 NHS,916753-62-3作为各种荧光共振能量转移DNA检测探针中淬灭部分

英文名称:BHQ-2 NHS CAS:916753-62-3 外观:深紫色粉末 分子式:C29H29N7O8 分子量:603.59 储存条件:-20C,在黑暗中 结构式: 凯新生物产品简介: 黑洞猝灭剂-2&#…

pytorch初学笔记(九):神经网络基本结构之卷积层

目录 一、torch.nn.CONV2D 1.1 参数介绍 1.2 stride 和 padding 的可视化 1.3 输入、输出通道数 1.3.1 多通道输入 1.3.2 多通道输出 二、卷积操作练习 2.1 数据集准备 2.2 自定义神经网络 2.3 卷积操作控制台输出结果 2.4 tensorboard可视化 三、完整代码 一、torc…

NestJS 使用体验 | 不如 Spring Boot

本博客站点已全量迁移至 DevDengChao 的博客 https://blog.dengchao.fun , 后续的新内容将优先在自建博客站进行发布, 欢迎大家访问. 文章目录前言正文开发体验运行体验总结相关内容推广前言 公司里近期在尝试部署一些业务到阿里云的函数计算上, 受之前迁移已有的 Spring Boot…

TestStand-调试VI

文章目录调试VI调试VI 在LabVIEW PASS/FAIL TEST步骤中放置一个断点。 ExecuteRun MainSequence。执行在LabVIEW PASS/FAIL处暂停测试步骤。 3.完成以下步骤来调试LabVIEW PASS/FAIL TEST VI步骤。 a.在TestStand的调试工具栏上单击step into(步进)…

System V IPC+消息队列

多进程与多线程 使用有名管道实现双向通信时,由于读管道是阻塞读的,为了不让“读操作”阻塞“写操作”,使用了父子进程来多线操作, 1)父进程这条线:读管道1 2)子进程这条线:写管道2…

【二叉树的顺序结构:堆 堆排序 TopK]

努力提升自己,永远比仰望别人更有意义 目录 1 二叉树的顺序结构 2 堆的概念及结构 3 堆的实现 3.1 堆向下调整算法 3.2 堆向上调整算法 3.3堆的插入 3.4 堆的删除 3.5 堆的代码实现 4 堆的应用 4.1 堆排序 4.2 TOP-K问题 总结: 1 二叉树的顺序结…

分享几招教会你怎么给图片加边框

大家平时分享图片的时候,会不会喜欢给照片加点装饰呢?比如加些边框、文字或者水印之类的。我就喜欢给图片加上一些边框,感觉加了边框的照片像裱在相框中的感觉似的,非常有趣。那么你知道如何给图片加边框吗?不知道的话…

【Nginx】01-什么是Nginx?Nginx技术的功能及其特性介绍

目录1. 介绍1.1 常见服务器的对比1)IIS2)Tomcat3)Apache4)Lighttpd1.2 Nginx的优点(1) 速度更快、并发更高(2) 配置简单、扩展性强(3) 高可靠性(4) 热部署(5) 成本低、BSD许可证2. Nginx常用功能2.1 基本HTTP服务2.2 高级HTTP服务…

华为数通2022年11月 HCIP-Datacom-H12-821 第二章

142.以下关于状态检测防火墙的描述,正确是哪一项? A.状态检测防火墙需要对每个进入防火墙的数据包进行规则匹配 B.因为UDP协议为面向无连接的协议,因此状态检测型防火墙无法对UDP报文进行状态表的匹配 C.状态检测型防火墙只需要对该连接的第一…

性能测试-CPU性能分析,IO密集导致系统负载高

目录 IO密集导致系统负载高 使用top命令-观察服务器资源状态 使用vmstat命令-观察服务器资源状态 使用pidstat命令-观察服务器资源状态 使用iostat命令-观察服务器资源状态 IO密集导致系统负载高 stress-ng -i 10 --hdd 1 --timeout 100-i :有多少个工作者进行&#…

函数的极限:如何通过 δ 和 ϵ 来定义一个连续的函数

连续的定义 维基百科给出的定义: 连续函数(英语:Continuous function)是指函数在数学上的属性为连续。直观上来说,连续的函数就是当输入值的变化足够小的时候,输出的变化也会随之足够小的函数。 所以不要直…

51单总线控制SV-5W语音播报模块

单总线控制SV-5W语音播报模块SV-5W语音播报模块SV-5W语音播报模块简介工作模式说明模块配置接线驱动部分代码效果展示SV-5W语音播报模块 SV-5W语音播报模块简介 DY-SV5W是一款智能语音模块,集成IO分段触发,UART串口控制,ONE_line单总线串口控…

macOS monterey 12.6.1安装homebrew + nginx + php + mysql

效果图 主要步骤 安装homebrew使用brew安装nginxphpmysql详细步骤 参考“Homebrew国内如何自动安装(国内地址)(Mac & Linux)”安装brew, 命令: /bin/zsh -c "$(curl -fsSL https://gitee.com/cu…

[附源码]java毕业设计网上学车预约系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

教你十分钟在Linux系统上快速装机并安装Ansible

PS:本教程建立在VMware软件上的使用上,Linux版本为centos7或者centos8都可以。 一、看发行版本 cat /etc/redhat-release 二、修改主机名 hostnamectl set-hostname centos8 三、自动获取IP地址 nmcli connection modify ens160 autoconnect yes 四、设置…