源代码管理及软件配置(二)|学习笔记

简介: 快速学习源代码管理及软件配置(二)

开发者学堂课程【ALPD 云架构师系列-云原生 DevOps36计源代码管理及软件配置(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/82/detail/1270


源代码管理及软件配置(二)

 

内容介绍

一、代码讲解

二、Commit 讲解

三、无效 commit 产生的原因

四、疑问讲解

五、课后总结

四、疑问讲解

一个问题,就是软件配置也经常被修改。他改的比代码频繁是否属于代码 

 image.png

明确回答:配置是另一种形式的代码

它其实就是代码,就是有可能在实际工作中,配置不是存在在仓库里的,可能是一个那个配置中心,可能是一个什么样的一个系统里面的,但是需要配置是就是一个代码。常见看一下配置,常常遇到比如说静态配置和动态配置分成启动相关的配置和运行相关的配置,这么分类,是希望能够去比较容易去检视现在这些配置的对你的配置的站在目的的角度来说启动相关配置是说首先是构建到进项中,作为启动就传进去,就用到这个配置。

第二个就是启动之后它不再修改,所以不需要去动态进行它的变化。然后第三个,对这类配置的修改一般会生成新的容器或者是port,就是我一般会要重新创建一个容器。

然后第四个就是对运行中的服务一定要重启才能生效,就是不然的话这个配置是不生效的。此类推到怎样的那个配置是启动相关的,比如说 DB 连接连到哪个 DB上去,然后容器的 CPU 规格是多少,比如说有的应用是可以用 master 模式启动,可以用 server 模式驱动。然后第三个问题是 DNS 服务地址是什么,就是告诉连那另外一种运行相关的配置是它通常是通过监听某个服务或者文件来获取或更新的,比如说要看一下那个白名单是什么,去读一下白名单,然后这种第二就是它的配置的更新是不需要去修改容器和 port,就是我的更新是完全跟容器和port的没关系,它就更新了个 DS 服务,诸如此类,认为是启动相关的配置。

第三个,运行中的容器一般要通过持续监听配置的变化,就是当有变化的时候应该能自动生效,就是要做到的一个能力。所以因此就是看下面的就是一些常见的级别日记比较改善,比如说在大促的时候,要把它改成l级别,一般都是不打了。

然后第二个黑名单是什么比如说要对某一些IP做一个限制。第三个特性开关,开个特性开关。

第四个监控频率,比如原来可能是一分钟产业,现在改成一小时采用一次是这样的那这类配置,不希望去每次改配置都要去重启我的仪器重新做发布的。这个是运行相关的一个配置。其实站在使用的目的的角度来说进行分类

来看一下就是 alpd-demo 应用里面与启动相关运行相关的配置

 image.png

如图,是在启动的时候会去一个参数,所以说它是启动配置那另一个的话在服务里面,其实有一个通过 server 那个方式去注入到的那个管理里面的,然后这个东西它是从环境变量去运输渠道,所以它其实是一个运行的时候是这样的一个位置

 image.png

那从另外一个角度来去看一下,就是所以它有不同的层次是对镜像代码或者系统的层次,然后每一层它涉及到在关注的一个活动是不一样的,编码过程当中构建还是部署就是越位越内存的配置修改成本是越高的。

其实这个这个箭头是从上往下的,如果如果是编码级别的改的话,要经过所有相应的阶段才能够上线,如果是运营阶段的话,其实是不需要走前面的部分的,所以如果是这个配置问题越内层那它的成本显然是越高的。

因为你要去改的都是相对来说偏静态的。那这里留了一个问题给大家,就说运行环境相关的配置应该属于哪一层,也就是说刚才的那那几层应该属于哪一层?

 

五、课后总结

那么先简单的回顾一下,普遍构建就是相同的源码,相同的环境,相同的构建脚本,结果产生了一致的软件视频,就是通过Dockerfile描述过这种环境构建脚本运行环境,这一个另外一个构建的准确性大于构建的效率,还有另外一个one process,第二名产品输容器对降低定向的大小,还有另外一个按逻辑单库的这种首先代码库和我们代码组另外一个软件交付过程,其实等级是为了开发者,为了代码库的一个协作过程,还有按照SUV的这个原则来递交代码。 另外一个就是根据使用方式去跟这个驱动配置的硬件配置。

那另外一个就是说要把这个配置定义在外层,尽量的然后减少修改的一个成本,因为越外层成本越低,那么在今天基本上整个逻辑呢就是说我们要去交付一个东西,什么要标准要不可变那标准的话通过容器的这种方式,容器定价的这种方采取标准化,那么另外不可变的话,因为终态是要保证这个稳定可预期的这个系统服务,所以说交互的这个制品希望它是不可变得一致的,所以说我们。希望在构建的依赖。另外一个构建环境,包括构建脚本,这些东西应该是确定性的,可以去对照一下,检查一下自己的。

那另外一个从代码那我构建的源头是从代码开始,那代码的组织应该是按什么样的一个方式来去组织。那另外一个呢就是说代码提交的话,我应该是按什么样的符合什么样的一些原则代码的服务的提交比,如说sla原则,那另外一个就是从配置的角度来说,配置有启动的配置和运行时的配置,那么怎么样最小化的修改配置的成本,应该尽可能让配置放在最外层。

相关文章
|
6月前
|
Java Serverless Maven
云效代码管理问题之代码仓库配置需要评审如何解决
云效仓库是阿里云提供的代码托管和版本控制服务,支持Git等多种版本管理工具;本合集聚焦于云效仓库的使用技巧、团队协作流程以及常见问题解答,旨在帮助开发者更高效地进行代码管理和协作开发。
1842 0
|
存储 算法 Cloud Native
源代码管理及软件配置(一)|学习笔记
快速学习源代码管理及软件配置(一)
181 0
源代码管理及软件配置(一)|学习笔记
|
存储 监控 Cloud Native
源代码管理及软件配置 | 学习笔记
快速学习源代码管理及软件配置
源代码管理及软件配置 | 学习笔记
|
1月前
|
安全 开发工具 数据安全/隐私保护
代码管理记录(一): 码云Gitee代码提交和维护
本文介绍了Gitee平台,提供了代码托管服务,并详细说明了从新建仓库到代码提交的步骤。
59 1
代码管理记录(一): 码云Gitee代码提交和维护
|
1月前
|
开发工具 git Python
代码管理记录(二):Github代码上传实操
本文是关于如何使用Git将本地代码上传到GitHub的实操指南。介绍了Git的基本概念、安装方法,并通过详细的步骤指导用户从GitHub创建仓库到使用Git命令初始化、添加、提交代码,最终将代码推送到远程仓库。同时,还汇总了一些常见的错误及其解决方法。
36 2
代码管理记录(二):Github代码上传实操
|
6月前
|
Kubernetes 开发工具 git
带你读《代码管理实践10讲》——一、量体裁衣,寻找适合你团队的代码协同模式(1)
带你读《代码管理实践10讲》——一、量体裁衣,寻找适合你团队的代码协同模式(1)
131 2
|
6月前
|
Linux 网络安全 开发工具
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
144 0
|
6月前
|
持续交付 开发工具 Android开发
带你读《代码管理实践10讲》——一、量体裁衣,寻找适合你团队的代码协同模式(2)
带你读《代码管理实践10讲》——一、量体裁衣,寻找适合你团队的代码协同模式(2)
118 0
|
6月前
|
SQL 安全 算法
带你读《代码管理实践10讲》——七、3类代码安全风险如何避免?
带你读《代码管理实践10讲》——七、3类代码安全风险如何避免?
162 0
|
6月前
|
存储 运维 监控
带你读《代码管理实践10讲》——九、打通源码!高效定位代码问题
带你读《代码管理实践10讲》——九、打通源码!高效定位代码问题
83 0

热门文章

最新文章