转载自B站up主:人月聊IT人月聊IT的个人空间-人月聊IT个人主页-哔哩哔哩视频
视频链接:容器云,DevOps和微服务-三者关系和联系_哔哩哔哩_bilibili
容器是IaaS概念; k8s增加了容器的编排,调度,应用的托管和自动部署能力。
容器云以后应用部署方式发生了变化。
传统模式下的部署:编译构建,形成war包,有一个安装了Tomcat的虚拟机,把构建好的war包丢到Tomcat的某一个目录下面,再把中间件重启和修改配置文件,就部署完毕了。
容器云阶段的部署:在编译构建形成了一个部署包之后,把构建好的部署包拷贝到镜像里,在有了镜像之后,需要有东西托管镜像(丢到镜像库里面),k8s部署(声明式api,不是自己去部署,基于哪个镜像部署,cpu内存如何,网络隔离如何,部署完开放的services或者端口如何,都可以在yaml文件里面进行详细的定义),k8s基于定义的yaml进行部署动作,拉取镜像,把镜像实例化变成运行的容器实例。(镜像,镜像库,yaml文件,以及自动部署加在一起叫做CICD,持续集成持续部署,自动化掉的动作)(可以增加自动化代码检查,以及自动化测试) (容器云和devops基本上结合起来使用)
devops:CICD,自动化集成和部署过程。
传统应用即使是单体架构,也可以执行CICD,进行容器云部署。
微服务与容器云:传统单体应用(war包可能800M,部署在容器偏重),拆分成几十个微服务之后,不需要人工编译构建和部署,不需要进行重复的工作,可以进行自动化的集成部署工具,每个微服务颗粒度变小了(100M左右),适合通过容器进行部署和托管,k8s进行容器资源调度和编排。
总结:
1、微服务架构的实施一般都需要DevOps和容器云的支持;传统单体架构也可以去做DevOps和容器云,两者没有必然联系;
2、在实施容器云的过程中,一般必须要实施自动化的CI/CD和DevOps的过程。