微服务云平台及DEVOPS培训PPT
- 格式:pptx
- 大小:16.38 MB
- 文档页数:58
微服务、容器和DevOps之间的关系1.微服务与DevOps1.1 测试、发布工作量剧增单体应用拆分成多个微服务后,虽能实现快速开发迭代,但带来更大测试和运维部署的成本。
1.很多业务早期就是一个大的单体Web应用,测试和运维时,只需把Web应用打WAR包,部署到Tomcat完事,2.拆成微服务后,很多业务需求就需同时修改多个服务的代码。
测试和运维要把这些服务打包、测试、发布上线,同时还要测试这些服务接口的功能,最后发布上线多个系统,工作量增剧增。
3.这个时候就需要减轻测试和运维的负担,我在上一讲给出的解决方案是DevOps。
DevOps可理解为开发和运维的结合。
服务的开发者不再只负责服务的代码开发,还要负责服务的测试、上线发布和故障处理等全生命周期过程,这样就能把测试和运维从微服务拆分后所带来的复杂工作中解放出来。
DevOps要求开发、测试和发布流程自动化,这就需保证开发人员将自己本地部署测试通过的代码和运行环境,能够复制到测试环境,测试通过后再复制到线上环境发布。
虽然看上去就是复制代码,但实际上本地环境、测试环境和线上环境往往是隔离的。
软件配置环境差异很大,会导致开发、测试和发布流程割裂。
1.2 机器初始化复杂度剧增弹性扩缩容时,不同微服务所要求的软件运行环境差异,带来了机器初始化复杂度的提升。
拆分后的微服务相比原来大单体应用更灵活,需根据实际访问量做在线扩缩容,并且通常会采用在公有云上创建的ECS扩缩容。
这意味着又给运维带来了挑战。
因为公有云上创建的ECS通常只包含基本os环境,微服务运行依赖的软件配置等需运维单独初始化,因不同微服务的软件配置依赖不同,服务部署的初始化工作十分繁琐。
比如J ava服务依赖J D K,就需在ECS安装J D K,而且不同微服务J D K版本也可能不同。
2.容器容器技术解决了本地、测试、线上环境的隔离,解决部署服务初始化繁琐的问题。
容器,即Co n ta in e r,可翻译成集装箱。