Skip to content

Commit bcc59a8

Browse files
committedJul 7, 2022
Merge branch 'main' of github.com:zhangferry/iOSWeeklyLearning
2 parents da29201 + 08b9950 commit bcc59a8

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed
 

Diff for: ‎WeeklyLearning/iOSWeeklyLearning_59.md

+15-10
Original file line numberDiff line numberDiff line change
@@ -13,32 +13,38 @@
1313

1414
### DevOps 再理解
1515

16-
CI/CD 和 DevOps 有什么区别?如果不能准确回答的话,这篇介绍就值得读一下。文章介绍主要参考于[《软件研发效能提升之美》](https://book.douban.com/subject/35631505/ "软件研发效能提升之美")
16+
CI/CD 和 DevOps 有什么区别?如果你不能准确回答的话,可以读一下这篇介绍,对 DevOps 再次加深理解。内容主要参考自[《软件研发效能提升之美》](https://book.douban.com/subject/35631505/ "软件研发效能提升之美")
1717

18-
DevOps 是 Development和 Operations 的组合,即开发和运维,再加上保证质量的测试,就构成了完整的 DevOps。
18+
DevOps 是 Development和 Operations 的组合,即开发和运维,再加上保证质量的测试,就构成了完整的 DevOps。通常 DevOps 会用下图表示:
1919

2020
![](https://cdn.zhangferry.com/Images/20220705233157.png)
2121

22-
可以注意到 DevOps 是一个环形结构,它需要同时触达开发、测试、运维三方。DevOps 还可以理解为是敏捷的一种延续,到此可以总结出 DevOps 的目的:拉通职能、快速迭代,以达到提升能效的作用。如何更好的达到这个目的,由此会引出一系列工程实践和技术方案。DevOps 不是具体的开发工具,而是一种软件研发管理模式和思想,是一种文化实践,并不是具体的工具或技术,所有在保证质量的前提下提升效能的方法都属于 DevOps 的范畴。
22+
DevOps 要解决的问题主要有两个:
23+
24+
1、开发流程中原本的三方是各自独立且顺序依赖的。这样效率会很低,DevOps 将开发流程中原本独立的三方进行聚合,这也是为什么它的结构是一个重叠的环形结构。
25+
26+
2、传统的开发模式更新迭代比较慢。DevOps 接收敏捷开发中快速迭代思想,将各个开发环节都设计成自动化、可持续的流程。
27+
28+
DevOps 不是具体的开发工具,而是一种软件研发管理模式和思想,是一种文化实践,所有在保证质量的前提下提升效能的方法都属于 DevOps 的范畴。围绕这个理念催生出了很多开发工具和技术实践。
2329

2430
根据业界主流观点,DevOps 的生命周期可以化为这 7 个阶段:持续开发、持续集成、持续测试、持续监控、持续反馈、持续部署和持续运营。持续开发对应于编码工作,这个阶段需要用到代码仓库、版本控制工具、包管理工具等。持续集成是频繁的提交代码、编译代码、执行单测等,尽可能早的发现问题。持续测试是保证代码的每次提交都能够被及时验证。持续部署是指频繁的把构建出的产品发布到测试环境、生产环境的流程,以尽早接收检验。CI/CD 对应的是持续集成和持续部署,它是 DevOps 生命周期里最重要也是最基本的两个阶段,也可以说它们是 DevOps 概念的实践方式。
2531

26-
DevOps 的 7 个阶段都用到了持续一词,为了实现持续,需要串联开发中的各项任务,由此引出了流水线的概念。流水线是讲究顺序的,任何一个节点出错都会导致任务的失败,这一方面加快了周转速度,也利于尽早暴露问题。像是 Jenkins、GitLab、Github 都会 CI/CD 提供了便捷的流水线配置方案。
32+
DevOps 的 7 个阶段都用到了「持续」一词,为了实现持续,需要串联开发中的各项任务,由此引出了流水线的概念。流水线是讲究顺序的,任何一个节点出错都会导致任务的失败,这可以加快了周转速度,也利于尽早暴露问题。像是 Jenkins、GitLab、Github 都会 CI/CD 提供了便捷的流水线配置方案。
2733

2834
DevOps 还常会跟容器技术同时出现,无容积化流程通常是这样的:
2935

3036
![](https://cdn.zhangferry.com/Images/20220706231712.png)
3137

32-
任务量小时这样没问题,但当面对大规模的提交时多场景的提交时,机器的执行效率就显得尤为重要。除了增加机器外,还可以利用容积化技术最大化机器的利用效率。Kubernetes 是一个比较成熟的管理容积化负载均衡、弹性伸缩的服务
38+
任务量小时这样没问题,但当面对大规模的提交时多场景的提交时,机器的执行效率就显得尤为重要。除了增加机器外,还可以利用容积化技术最大化机器的利用效率。Kubernetes 是用于优化容积化流程的技术方案,它可以提供容积化负载均衡、弹性伸缩等服务
3339

3440
![](https://cdn.zhangferry.com/Images/20220706231848.png)
3541

36-
DevOps 之后又演化出了其他开发实践
42+
DevOps 理念的发展又推动了其他开发环节的进化,并演化出了这些开发实践
3743

38-
* DevSecOps:Sec 表示 Secure,就是将安全防护与 DevOps 结合起来。需要监控 DevOps 各个阶段的安全问题,通常会通过扫描代码、交互式安全扫描、模拟攻击等方式来保证安全性,这些都有对应的开发工具
39-
* DevPerfOps:Perf 表示 Performance,就是将性能保障与 DevOps 结合起来。需要监控各个阶段的性能指标,开发阶段有:代码静态性能问题、算法时间复杂度、接口级并发测试、性能基线比较等。持续集成阶段有模块级扩缩容测试、压力测试等。持续发布有系统级别的性能基准测试、故障迁移测试、全链路压力测试等。
44+
* DevSecOps:Sec 表示 Secure,就是将安全防护与 DevOps 结合起来。需要监控 DevOps 各个阶段的安全问题,通常会通过扫描代码、交互式安全扫描、模拟攻击等方式来保证安全性。
45+
* DevPerfOps:Perf 表示 Performance,就是将性能保障与 DevOps 结合起来。它需要监控各个阶段的性能指标,开发阶段的技术方案有:代码静态性能问题、算法时间复杂度、接口级并发测试、性能基线比较等。持续集成阶段有模块级扩缩容测试、压力测试等。持续发布有系统级别的性能基准测试、故障迁移测试、全链路压力测试等。
4046
* BizDevOps:Biz 表示 Business,就是将业务与 DevOps 结合起来。BizDevOps 的概念是将不写代码的业务团队,像是产品和运行也参与进来。它要解决的问题源于[三个不等式](https://developer.aliyun.com/article/839569 "深度 | 从DevOps到BizDevOps, 研发效能提升的系统方法"):局部效率不等于高效交付,高效交付不等于持续高效,高效交付不等于业务成功。为了起到真正助力业务的目标,需要落地产品导向的交付,建设标准化基础设施,不断积累技术资产,同时还需要与业务之间建立快速的反馈闭环。
41-
* AIOps:人工智能 Ops,在原有 DevOps 的各个阶段都融入 AI 能力通过不断的数据采集和分析,能够根据算法自动的下发执行规则。更进一步,通过自动化测试,不断的分析测试结果,还可以用于异常检测、瓶颈分析、故障预测甚至于故障自愈。
47+
* AIOps:AI 表示 Artificial Intelligence,就是在原有 DevOps 的各个阶段都融入 AI 能力通过不断的数据采集和分析,根据算法自动的下发或变更执行规则。更进一步,通过自动化测试,不断的分析测试结果,还可以用于异常检测、瓶颈分析、故障预测甚至于故障自愈。
4248

4349
### [Apple 计划推出 Lockdown 模式,保护用户免遭间谍软件侵害](https://www.apple.com.cn/newsroom/2022/07/apple-expands-commitment-to-protect-users-from-mercenary-spyware/ "Apple 计划推出 Lockdown 模式,保护用户免遭间谍软件侵害")
4450

@@ -72,7 +78,6 @@ struct Class64 {
7278
```
7379
7480
---
75-
7681
`Class64.data` 数据是 `VM Address` 地址,我们需要通过转换后拿到 `offset` ,在 `machData` 当中找到对应的 `ClassInfo64` 数据,然后其中 `name` 就是对应的 `className`
7782
7883
```C++

0 commit comments

Comments
 (0)
Please sign in to comment.