云原生架构与 GitOps 实战
王炜
前腾讯云 CODING 架构师
6217 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 44 讲
云原生架构与 GitOps 实战
15
15
1.0x
00:00/00:00
登录|注册

34|GitOps 开发循环慢,时间都去哪了?

你好,我是王炜。
从这节课开始,我们正式进入到云原生开发领域的学习。
相比较传统的单体应用,云原生应用有非常多的不同之处。比如,云原生应用往往由多个微服务组成,使用了容器技术解决业务的打包和运行问题,此外,它还使用了很多云上的托管服务,例如 MQ,数据库等。
随着业务应用对云原生的依赖越来越大,我们会逐渐发现云原生应用的开发越来越复杂,也变得越来越慢。你可以把这理解为把应用迁移到云原生架构下的“副作用”,在今天,这些问题仍然没有最优的解决方案。
这节课,我会带你从几个角度了解造成云原生开发变慢的原因,从开发循环反馈的概念讲到架构演进。此外,我还会比较单体应用和云原生应用在开发上差异,带你深入理解为什么会产生这些“副作用”。最后介绍两种提升开发效率的技术方案。

开发循环反馈

我们先来了解一下什么是开发循环反馈,这要从软件研发过程开始说起。
在软件研发的过程中,开发者在接到需求后会进行构思、编码。根据编码难度的不同,在编写完一段代码后,它们需要对程序进行编译并运行,以便查看结果。如果结果不符合预期,则会尝试输出一些变量值进行调试,如果这样不能满足调试需求,就需要进行断点调试。
调试完成并找到问题后,再修复代码,并重新进行上述的过程。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了在云原生开发领域中,由于云原生应用的复杂性和架构演进,导致开发循环变慢的原因,并提出了三种提高开发循环反馈效率的技术方案。首先,文章从开发循环反馈的概念入手,解释了开发者在编码、编译、运行和调试过程中的等待时间,指出这些等待时间对开发效率的影响。接着,文章分析了在不同架构下开发循环反馈的差异,包括前云时代架构、云时代架构和云原生时代架构,以及在GitOps架构下的开发循环反馈流程。最后,文章提出了三种提高开发循环反馈效率的技术方案,包括提升镜像构建和拉取速度、本地+远程的混合开发方式以及远程开发。这些方案旨在解决在GitOps架构下开发循环反馈效率低的问题,为读者提供了实用的解决思路。 在本文中,作者介绍了三种提高开发循环反馈效率的技术方案,包括提升镜像构建和拉取速度、本地+远程的混合开发方式以及远程开发。这些方案旨在解决在GitOps架构下开发循环反馈效率低的问题,为读者提供了实用的解决思路。文章深入探讨了每种方案的优劣势,并提供了详细的操作步骤和示意图,使读者能够快速了解并应用这些技术方案。特别是远程开发方式,作者认为是一种通用性更强的开发方式,也是值得推荐的开发方式。通过本文的总结,读者可以快速了解到在云原生开发领域中提高开发循环反馈效率的关键技术方案,为他们在实际开发中提供了有益的指导和思路。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《云原生架构与 GitOps 实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • RRR
    远程修改代码之后 如何同步代码呢? 挺麻烦的,还要 git clone 代码库的吗

    作者回复: 有这个问题,解决办法跟本地类似,借助持久化的能力和 git pull。

    2023-08-24归属地:新加坡
  • bingo
    老师请问一下,使用Nocalhost远程debug Maven应用怎么在启动参数里设置自定义的setting.xml文件

    作者回复: 在 nocalhost 的配置中 debug 的命令里写上业务启动命令,启动命令带上读取特定的配置文件。 实际上进入开发模式之后配置文件都有的,一般只要直接启动业务进程就行。

    2023-02-24归属地:吉林
  • 林龍
    对于开发循环反馈这个流程,在微服务下是一定会遇到的问题, GitOps自动化是减少了整个的流程所花费的时间。在这三个虽然是解决方案,但是并不是最优秀的做法。其实对于该问题我觉得更应该从开发的角度去分析, 1.每个函数都有单元测试,确保每个函数的入参后得到的出参能符合预期 2.微服务的拆分,通过ddd的方式划分服务,尽可能把业务内的代码不要跨服务去处理。 3.在微服务中加入链路服务,可通过链路可视化工具把整个流程进行展示,然后对比各个微服务之间的入参出参是否与预期相同,如不同,则可对应到具体的微服务,具体的函数 当多个函数里面里面各个入参跟出参符合预期后,最终再把代码上传,构建,推送镜像,k8s启动。这样可以减少这个流程的次数。

    作者回复: 很好的经验分享👍🏻 在开发过程最主要还是要解决开发环境和编码查看代码效果的问题。

    2023-02-24归属地:广东
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部