(https://www.bilibili.com/video/BV1A7411M76m?from=search&seid=14855796811647434253)
从开发角度讲 我写完代码就完了。剩下的都能自动执行。
概念 工具和流程的结合
主要是服务于 开发人员和测试人员之间沟通合作的解决方案。
构建、测试、发布、部署、运维监控。
工具图
别人家的devops workflow,并不一定合适自己
devops的目的
时间和质量
devops错误案例
正确案例
devops:传统应用交付
devops:标准容器交付
经典的容器交付流程
devops概念总结
为什么最近越来越关注devops了?
主要是因为微服务和容器。
先说微服务特性
微服务的优点
微服务从概念上完美匹配Devops
微服务的缺点
Docker和传统虚拟化,区别在于对虚拟化的损耗上。
三分钟看懂docker
docker如何解决微服务的缺点
容器交付的难点与问题
如何解决容器的缺点
微服务、容器、devops关系
三者相辅相成
减少人员介入,提高交付的质量保证
如何形成一个快速高质量的交付
如何快速搞质量的应用容器化迁移
容器交付流程的划分
首先了解容器中的dockerfile
dockerfile的由来,理论依据
再看dockerfile语法
从dockerfile如何生成image的
由上述分层结构,得出优化dockerfile过程
优化后
第一次优化将多条RUN命令合并成一条RUN命令
第二次优化
第三次优化
第四次优化
另外一种优化方式:多阶段构建
dockerfile优化总结
编排模板 kubernetes
从设计思路看kubernetes
k8s最重要的抽象,抽象出来了一些交付要义
这里定义的每个抽象是做什么的,待不充
k8s yaml文件示例
k8s 总结
其中kompose是用来解决从swarm迁移到k8s中
其他k8s迁移工具
阿里云迁移工具 Derrick
三、什么是CI\CD 从零开始搭建CI\CD
常用的jenkins架构,master slave
搭建jenkins系统–安装docker -ce
第二步
jenkins总结
阿里云的软件CodePipeline 和jenkins对比
四、云原生容器应用交付实践
1、如何上手使用kubernetes,
使用:minikube
https://minikube.sigs.k8s.io/docs/start/
或者访问阿里云的云上kubernetes
五、发布模式
首先认识网络模型
容器的网络模型一
Swarm中的简单路由服务
kubernetes中网络模型的实现(二) L3 Flat
kubernetes中网络模型的实现(三) ——LoadBalancer与NodePort
网络模型(四)——ClusterIP
网络模型(五) Ingress
service mesh
网络模型结束接下来看常见的发布策略
常见的发布策略
蓝绿发布,优点:零宕机更新,缺点:发布时资源消耗大
不同节点蓝绿发布区别
金丝雀发布,优点:用最小的代价实现功能验证,缺点:面向场景比较单一,对于开发者要求较高
和灰度发布的区别,如果对接入层流量没有区分的时候属于金丝雀发布。假如A节点流量必须走向新发布的实例,B节点必须不能访问到新实例,就属于灰度发布。
金丝雀发布示例
灰度发布,逐渐从一个版本到另一个版本的长时间平稳切换
A/BTest,和灰度发布非常的像,但是A/B Test是通过线上[不同版本]的反馈,来决策更倾向于哪个版本。
通过k8s进行这些发布
分批发布,和灰度发布不同,没有灰度发布的消耗资源问题。(分批发布属于一种策略)
分批发布,是将节点切分成一个个小的批次,然后发布第一个批次进行快速验证,如果验证没问题,再继续发布第二个批次,第三个批次。可以比较节省资源。
以上如果使用k8s来实现,会比较复杂。需要去判断是否应用还是回滚。k8s无法实现一个过程。
CRD或许是另一个答案。
CRD
https://www.kubernetes.org.cn/tags/crd
CRD拓扑关系图
相关资料地址(。。截图半天 最后才出来)
六、开源框架与容器云服务
工具链
Derrick 生成dockerfile,jenkins file
https://github.com/alibaba/derrick
kompose 生成kubernetes的文件
Kubernetes+Compose
https://github.com/kubernetes/kompose
helm[ kubernetes的package manager]
https://github.com/helm/helm
helm的基本架构
微服务介绍
不限定语言。
把服务想unix应用组合起来一样,高内聚低耦合。
service mesh(服务网格)
lstio
Sidecar模式(这个其实我没看懂是啥)
七、容器化应用的测试与调优
调优很难有一些标准化的模式。调优基本是针对问题分析问题。
以下是一些调优的比较有代表性的场景和问题。
c10k问题
性能测试方式
使用容器以后,性能会和之前的差距很大。正常情况会有5%的损耗。
虚拟化技术性能诧异对比
hyper方式的虚拟化,性能会有20%的损耗,而容器技术会在5%以内的损耗。
容器内核的理解
十个性能调优工具
压测工具
.
阿里云大学[https://www.bilibili.com/video/BV1A7411M76m?from=search&seid=14855796811647434253]