微服务云平台及DEVOPS培训.ppt
《微服务云平台及DEVOPS培训.ppt》由会员分享,可在线阅读,更多相关《微服务云平台及DEVOPS培训.ppt(58页珍藏版)》请在三一办公上搜索。
1、,微服务及DEVOPS 杨鹏 2020年02月,PART 01微服务介绍,PART 02 持续集成持续构建,PART 03Devops介绍,5,微服务简介,单体服务架构,用户模块,订单模块,产品模块,财务模块,公共模块,优点:,缺点:,可用性低,宕机全死,服务器要求高,项目臃肿,代码量飙升,耦合性过大,系统架构、业务架构简单,容易理解,集中部署,运维容易,微服务架构,用户,订单,财务,产品,邮件,配置,优点:,缺点:,业务架构复杂,拆分粒度难以界定,部署维护困难,高可用,硬件配置低,水平扩展,业务简单,快速响应,耦合性低,支持异构,业务内聚,分布式,单体架构的访问,用户模块,订单模块,产品模块
2、,财务模块,公共模块,微服务架构的访问,订单,财务,产品,邮件,10.0.0.6:8001,10.0.0.1:8002,10.0.0.2:8003,10.0.0.3:8004,10.0.0.4:8005,10.0.0.5:8006,访问关系复杂,用户1模块,用户2,用户n,10.0.0.7:8002,10.0.0.8:8002,每个服务足够内聚,足够小,代码容易理解、开发效率提高服务之间可以独立部署,微服务架构让持续部署成为可能;每个服务可以各自进行x扩展和z扩展,而且,每个服务可以根据自己的需要部署到合适的硬件服务器上;容易扩大开发团队,可以针对每个服务(service)组件开发团队;提高容
3、错性(fault isolation),一个服务的内存泄露并不会让整个系统瘫痪;系统不会被长期限制在某个技术栈上。1、同一功能的微服务部署多个,怎么访问配置?配置管理;2、服务是否正常,怎么监控?即:服务的注册和发现;3、怎么判断服务压力,压力大时怎么进行熔断?服务容错;4、多态服务器的服务,怎么进行负载均衡;负载均衡,服务网关;,Spring cloud与Spring Boot的关系,Spring boot 是 Spring 的一套快速配置脚手架,可以基于spring boot 快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具;Spring b
4、oot专注于快速、方便集成的单个个体,Spring Cloud是关注全局的服务治理框架;spring boot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring boot来实现,Spring Cloud组件 一,Spring Cloud组件 二,2,4,6,5,3,1,Spring Cloud Data Flow:大数据操作工具,通过命令行方式操作数据流。,Spring Cloud Security:安全工具包,为你的应用程序添加安全控制,主要是指OAuth2。,Spring Cloud Consul:封装了Cons
5、ul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。,Spring Cloud Zookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服务注册和发现。,Spring Cloud Stream:数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。,Spring Cloud CLI:基于 Spring Boot CLI,可以让你以命令行方式快速建立云组件。,7,Spring Cloud Sleuth:日志收集工具包,封装了Dapper,Zipkin和HTrace操作。,SpringCloud分布式开发五大神兽,Eu
6、reka服务注册,1,2,3,5,Eureka的高级架构图,Ribbon负载均衡,1,2,3,Ribbon架构图,Eureka Server,服务消费者,服务提供者1,服务提供者2,服务提供者3,Ribbon,注册,注册,注册,注册,可用服务列表,负载均衡请求,Hystrix熔断器,1,2,3,Hystrix架构图,ZUUL网关,1,2,3,ZUUL架构图,4,5,6,7,Spring Cloud Config配置中心,Spring Cloud Config 架构图,Spring Cloud Config提供基于以下3个维度的配置管理:,应用,这个比较好理解,每个配置都是属于某一个应用的,环境
7、,每个配置都是区分环境的,如dev,test,uat,prod等,版本,这个可能是一般的配置中心所缺乏的,就是对同一份配置的不同版本管理Spring Cloud Config提供版本的支持,也就是说对于一个应用的不同部署实例,可以从服务端获取到不同版本的配置,这对于一些特殊场景如:灰度发布,A/B测试等提供了很好的支持,产出于spring大家族,spring在企业级开发框架中无人能敌,来头很大,可以保证后续的更新、完善。比如dubbo现在就差不多死了有spring Boot 这个独立干将可以省很多事,大大小小的活spring boot都搞的挺不错。作为一个微服务治理的大家伙,考虑的很全面,几乎
8、服务治理的方方面面都考虑到了,方便开发开箱即用。Spring Cloud 活跃度很高,教程很丰富,遇到问题很容易找到解决方案轻轻松松几行代码就完成了熔断、均衡负责、服务中心的各种平台功能,Spring Cloud 的优势,PART 01微服务介绍,PART 02 持续集成持续构建,PART 03Devops介绍,1、微服务一般一个功能2-3天开发完毕,微服务的应用改动部署后,并且频繁的改动,测试的工作量很大,测试人员压力较大;2、微服务的应用很多,很多运维环境需要搭建,运维人员部署1000台/10w台机器,监控1000台/10w台机器,难度加大;3、其他问题;,微服务带来的测试、集成、构建、部
9、署问题,微服务带来的测试、集成、构建、部署问题,TDD(测试驱动开发),TDD得原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD得基本思路就是通过测试来推动整个开发得进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。优点:在任意一个开发节点都可以拿出一个可以使用,含少量bug并具一定功能的产品。缺点:增加代码量。测试代码是系统代码的两倍或更多。,FDD(特征驱动开发),敏捷测试的方法,CI/CD全过程管理,容器Container,镜像images,仓库Repositories,执行,构建,分发,Docker 的镜像类
10、似虚拟机的模板,但是更轻量例如:一个镜像可以包含一个完整的 Linux 操作系统环境,里面仅安装了 Tomcat或用户需要的其它应用程序镜像可以用来创建容器,等同于从模板中创建虚拟机容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。,JAVA项目如何通过Docker实现持续部署(只需简单四步),全程无需运维人员参与即:1、开发人员通过git push上传代码2、经Git和Jenkins配合3、自动完成程序部署4、发布,存
11、放镜像的集合。仓库会包含不同软件的不同版本的镜像,通过:存储。分层存储不同软件的镜像。,容器管理技术Docker三大核心概念,Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。即:隔离空间。,一次执行,处处运行,基于容器构筑具备完全一致性的开发测试环境,我们项目最初的系统配置管理工作是由架构师来做的,主要需要做如下这些事:a)部署运行项目组开发需要用到公共的服务组件、例如zookeeper注册中心、DockerRegistry
12、镜像仓库、数据库等;b)为子项目编写在git上打分支的脚本,便于测试发版的时候打分支;c)编写各类型应用发布部署成镜像的Dockerfile;d)制作或者在网上找到现成的开发所需环境的Docker镜像,并且Push到项目开发使用的私有镜像库中;e)编写Shell脚本实现将子项目打包成Docker镜像,并且Push到镜像仓库中。f)在Jenkins上配置自动编译或者部署任务,实现持续集成和部署,容器管理平台整体架构,开发运维集群流程变化,容器编排工具的一些关键能力概括如下:集群管理:将虚拟机和物理机器的集群管理为一台大型机器。这些机器在资源能力方面可能有些差异,但大体上都是以Linux作为操作系
13、统的机器。这些虚拟集群可以建立在云上、本地或两者的混合。部署:能处理有大量机器的应用程序和容器的自动部署。支持多个版本的应用程序容器,并且还支持跨越大量集群机器的滚动升级。这些工具还能够处理故障回滚。可伸缩性:支持应用实例的自动和手动伸缩,以性能优化为主要目标。健康:它管理集群、节点和应用程序的健康。可以从集群中移除异常的机器和应用程序实例。基础结构抽象化:开发人员不必担心机器、容量等问题。完全是容器编排工具来决定如何调度和运行应用程序。这些工具也抽象化机器的细节、能力、使用和位置。对于应用程序所有者来说,它们相当于一个容量几乎无限的大型机器。资源优化:这些工具以有效的方式在一组可用机器上分配
14、容器工作负载,从而降低成本,通过从简单的到复杂的算法可有效地提高利用率。资源分配:基于应用程序开发人员设置的资源可用性和约束来分配服务器。资源分配将基于约束、规则、端口要求、应用依赖性、健康等等。服务可用性:确保服务在集群中正常运行。在机器故障的情况下,容器编排会自动通过在集群中的其他机器上重新启动这些服务来处理故障。敏捷性:敏捷性工具能够快速分配工作负载到可用资源,或者在资源需求发生变化时跨机器移动工作量。此外,可以根据业务临界性、业务优先级等来设置约束重新调整资源。隔离:一些工具提供了资源隔离。因此,即使应用程序不是容器化的,也可以实现资源隔离。,什么容器编排工具,容器的编排管理工具K8S
15、,2017年docker官方宣布支持K8s;现在国内大多数公司都可使用k8s进行传统IT服务转换,以实现高效管理等;harbor镜像仓库是由VMware开源的一款企业级镜像仓库,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制等诸多功能。,K8s集群搭建,K8s集群,K8s-存储,K8s-网络,镜像仓库,业务部署,负载均衡,弹性伸缩,灰度发布,打包,二进制包+dockerfile,LB,负载均衡,灰度发布典型流程:可部分更新服务,并选择更新的实例数如果更新成功,更新会暂停可将部分流量引导至新实例,进行测试如果测试通过,可继续更新剩余实例如果测试失败,可将服务回滚至旧
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微服 平台 DEVOPS 培训
链接地址:https://www.31ppt.com/p-6284398.html