Devops学习记录

(https://www.bilibili.com/video/BV1A7411M76m?from=search&seid=14855796811647434253)
从开发角度讲 我写完代码就完了。剩下的都能自动执行。

概念 工具和流程的结合

主要是服务于 开发人员和测试人员之间沟通合作的解决方案。
构建、测试、发布、部署、运维监控。

工具图
Devops学习记录_第1张图片

别人家的devops workflow,并不一定合适自己
Devops学习记录_第2张图片

devops的目的

时间和质量

Devops学习记录_第3张图片

devops错误案例

Devops学习记录_第4张图片

正确案例

Devops学习记录_第5张图片

devops:传统应用交付
Devops学习记录_第6张图片
devops:标准容器交付
Devops学习记录_第7张图片
经典的容器交付流程
Devops学习记录_第8张图片

devops概念总结
Devops学习记录_第9张图片
为什么最近越来越关注devops了?
主要是因为微服务和容器。

先说微服务特性

Devops学习记录_第10张图片

微服务的优点

Devops学习记录_第11张图片
微服务从概念上完美匹配Devops
Devops学习记录_第12张图片

微服务的缺点

Devops学习记录_第13张图片

Docker和传统虚拟化,区别在于对虚拟化的损耗上。

三分钟看懂docker

Devops学习记录_第14张图片

docker如何解决微服务的缺点

Devops学习记录_第15张图片

容器交付的难点与问题

Devops学习记录_第16张图片

如何解决容器的缺点

Devops学习记录_第17张图片

微服务、容器、devops关系
三者相辅相成
Devops学习记录_第18张图片
Devops学习记录_第19张图片

减少人员介入,提高交付的质量保证
Devops学习记录_第20张图片

如何形成一个快速高质量的交付

如何快速搞质量的应用容器化迁移

容器交付流程的划分

Devops学习记录_第21张图片

首先了解容器中的dockerfile

Devops学习记录_第22张图片

dockerfile的由来,理论依据

Devops学习记录_第23张图片
Devops学习记录_第24张图片

再看dockerfile语法

Devops学习记录_第25张图片

从dockerfile如何生成image的

Devops学习记录_第26张图片

由上述分层结构,得出优化dockerfile过程

Devops学习记录_第27张图片

优化后

第一次优化将多条RUN命令合并成一条RUN命令
第二次优化
Devops学习记录_第28张图片
第三次优化
Devops学习记录_第29张图片
第四次优化
Devops学习记录_第30张图片
另外一种优化方式:多阶段构建
Devops学习记录_第31张图片

dockerfile优化总结

Devops学习记录_第32张图片

编排模板 kubernetes

Devops学习记录_第33张图片

从设计思路看kubernetes

Devops学习记录_第34张图片

k8s最重要的抽象,抽象出来了一些交付要义

这里定义的每个抽象是做什么的,待不充
Devops学习记录_第35张图片

k8s yaml文件示例

Devops学习记录_第36张图片

k8s 总结

其中kompose是用来解决从swarm迁移到k8s中

Devops学习记录_第37张图片

其他k8s迁移工具

阿里云迁移工具 Derrick

Devops学习记录_第38张图片

三、什么是CI\CD 从零开始搭建CI\CD

Devops学习记录_第39张图片

常用的jenkins架构,master slave

Devops学习记录_第40张图片

搭建jenkins系统–安装docker -ce

Devops学习记录_第41张图片

第二步
Devops学习记录_第42张图片

jenkins总结
Devops学习记录_第43张图片

阿里云的软件CodePipeline 和jenkins对比

Devops学习记录_第44张图片

四、云原生容器应用交付实践

1、如何上手使用kubernetes,
使用:minikube
https://minikube.sigs.k8s.io/docs/start/
或者访问阿里云的云上kubernetes
Devops学习记录_第45张图片

五、发布模式

首先认识网络模型
容器的网络模型一
Devops学习记录_第46张图片

Swarm中的简单路由服务

Devops学习记录_第47张图片

kubernetes中网络模型的实现(二) L3 Flat

Devops学习记录_第48张图片

kubernetes中网络模型的实现(三) ——LoadBalancer与NodePort

Devops学习记录_第49张图片
网络模型(四)——ClusterIP
Devops学习记录_第50张图片

网络模型(五) Ingress
Devops学习记录_第51张图片

service mesh

Devops学习记录_第52张图片

网络模型结束接下来看常见的发布策略

常见的发布策略

在这里插入图片描述

蓝绿发布,优点:零宕机更新,缺点:发布时资源消耗大

Devops学习记录_第53张图片

不同节点蓝绿发布区别

Devops学习记录_第54张图片

金丝雀发布,优点:用最小的代价实现功能验证,缺点:面向场景比较单一,对于开发者要求较高

和灰度发布的区别,如果对接入层流量没有区分的时候属于金丝雀发布。假如A节点流量必须走向新发布的实例,B节点必须不能访问到新实例,就属于灰度发布。

Devops学习记录_第55张图片

金丝雀发布示例

Devops学习记录_第56张图片

灰度发布,逐渐从一个版本到另一个版本的长时间平稳切换

Devops学习记录_第57张图片

A/BTest,和灰度发布非常的像,但是A/B Test是通过线上[不同版本]的反馈,来决策更倾向于哪个版本。

Devops学习记录_第58张图片

通过k8s进行这些发布

Devops学习记录_第59张图片

分批发布,和灰度发布不同,没有灰度发布的消耗资源问题。(分批发布属于一种策略)

分批发布,是将节点切分成一个个小的批次,然后发布第一个批次进行快速验证,如果验证没问题,再继续发布第二个批次,第三个批次。可以比较节省资源。

Devops学习记录_第60张图片
以上如果使用k8s来实现,会比较复杂。需要去判断是否应用还是回滚。k8s无法实现一个过程。

CRD或许是另一个答案。

CRD

https://www.kubernetes.org.cn/tags/crd
CRD拓扑关系图
Devops学习记录_第61张图片
相关资料地址(。。截图半天 最后才出来)
Devops学习记录_第62张图片

六、开源框架与容器云服务

工具链

Devops学习记录_第63张图片

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的基本架构
Devops学习记录_第64张图片

微服务介绍

不限定语言。
Devops学习记录_第65张图片
把服务想unix应用组合起来一样,高内聚低耦合。

service mesh(服务网格)

lstio

Sidecar模式(这个其实我没看懂是啥)

Devops学习记录_第66张图片
Devops学习记录_第67张图片

七、容器化应用的测试与调优

调优很难有一些标准化的模式。调优基本是针对问题分析问题。

以下是一些调优的比较有代表性的场景和问题。

c10k问题

Devops学习记录_第68张图片

性能测试方式


Devops学习记录_第69张图片
使用容器以后,性能会和之前的差距很大。正常情况会有5%的损耗。
Devops学习记录_第70张图片

虚拟化技术性能诧异对比

hyper方式的虚拟化,性能会有20%的损耗,而容器技术会在5%以内的损耗。
Devops学习记录_第71张图片

容器内核的理解

Devops学习记录_第72张图片

十个性能调优工具

Devops学习记录_第73张图片
压测工具
Devops学习记录_第74张图片

.

阿里云大学[https://www.bilibili.com/video/BV1A7411M76m?from=search&seid=14855796811647434253]

你可能感兴趣的:(centos,微服务,devops,容器,docker)