原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
原文链接地址:『高级篇』docker之CICD(终结篇)(44)
从2018年9月11日开始写高级篇到今天11月21日,短短2个月高级的收获还是满满的。docker命令越来越熟悉,jenkins在中级篇里没有涉及到,这次也把jenkins的内容给补充了,在中级篇里k8s,一直安装很多坑,到现在可以顺利的安装k8s,而且一步一步安装了解了etc,apiserver,ControllerManager。但是感觉还是不够深入,下次计划继续k8s和实践。重点还是实践和k8s。
一起回顾下
微服务的概念
从软件架构的进化引入的微服务,了解微服务的概念,知道了微服务的架构并不是完美无缺的,有很多优势,独立性(有自己的独立栈),敏捷性(快速的迭代)。问题,数量庞大,指数级的增加我们必须考虑的它们之间如何进行通信,服务编排也是我们需要考虑的。
微服务带来的问题分析,服务间的通讯(一对一,一对多,同步异步),通信协议的维度分析了长见的协议(restapi,rpc,消息队列),也对比分析了几个rpc框架(thrift,dubbo,motan,grpc)。服务编排,首先使用了对比的方式,展示了传统服务和微服务在服务发现,服务更新,服务扩缩容上是什么样子,了解了微服务为什么不能像传统服务那样支持。然后引出了服务编排的概念。
3.springboot&springcloud的内容,毕竟他们都是线下流行的跟微服务密切相关的,犹豫跟微服务相关的很多,初学者很容易混乱,让老铁在大脑中对springboot和springcloud有个关键的认识,知道它的使命是什么,它的核心内容,以及它们在微服务中扮演什么角色。
微服务的开发
分析了微服务的架构,也分别开发了多个微服务,在开发的过程中,体验了springboot,springcloud,dubbo,跨语言的RPC通信thift,然后这只是刚刚开始,其实都是为了服务编排考虑的。
为服务编排做准备
- 服务docker化
- Docker compose
- Docker 仓库
搭建了一个私有的仓库harbor
完事具备,只欠编排
学习本身是学类庞统的。学会一个其他基本都是一个原理。都是从入门开始,到架构设计,到环境搭建,最后到部署。
- Mesos(MySes可不是MeSes)
起步比较早很多大公司,还在用。
- Docker Swarm
已经在docker的安装里面了。 官方的原汁原味。
- kubernetes
犹豫kubernetes门槛比较高,我们花了前面几个框架几倍的时间来研究它,但是说实话,还没完全的搞懂,为了让大家更好的理解。部署了2次,一次非认证授权,一次需要认证。其实认证就是ssl 哈哈。一个模块一个模块纯手工的搭建了k8s集群。然后在集群上演示了官方的实例。
- CICD&Devops
最后体验了一把CICD和Devops,他们之间的关系还是很亲密的。服务编排为Devops落地提供了土壤。服务编排其实就是为CICD和Devops而生的。搭建了gitlab和jenkins的部署。
在jenkins下编写了pipline流水线脚本,以及在流水线里面编写的shell脚本。体验了CICD,从提交了代码完成打包,做镜像,push推送。最后完成服务的更新。最后说句千万别用jenkins的容器。这东西不适合用容器。
PS:从看到这里的基本都是真爱老铁了,在这里真心的谢谢大家。从docker初级,中级到高级。从4月份了解docker到现在已经7个月多了,对docker的执着学习一直在继续,中间也有老铁指出文章中的问题。感谢一路有你!真心的希望我写的文章能对各位老铁有帮助。文章前面放了一个沙滩脚印的图片,希望我们在一起学习docker的路上,你我一起让同行的人更多,感谢在这个过程中有老铁愿意分享我的文章,让更多的人一起在docker的路上。我们一直在赶路。一起在努力!你累吗,累就对了,因为至少证明你还活着!下一步学习docker脚步不会停止。继续开启我们的实践篇通过网上开源的项目,完成docker环境下的部署和运维。