PaaS层建设方案设计_第1页
PaaS层建设方案设计_第2页
PaaS层建设方案设计_第3页
PaaS层建设方案设计_第4页
PaaS层建设方案设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PaaS层建设方案设计PaaS层平台需结合云化架构、容器化远程交付、全栈监控、极简运维、云原生等技术打造的多模态研发效能管理及运维平台,能提供快速化、可视化、场景化、自动化的研发运维一体化支撑能力,达到缩短产品交付时间、减少产品交付成本、降低产品交付风险的目标,助力业务快速创新。PaaS层平台可采用DevOps理念,除支撑开发和运维两个能力之外,还可以通过平台域提供PaaS的各种管理和服务,为业务应用提供一个轻量的、弹性的、面向微服务的PaaS平台,使得应用可以专注于业务逻辑开发,实现业务系统敏捷交付和灰度发布,提供智能化、流程化、可视化的新的研发运维体系。PaaS层能力描述功能架构图图4-8PaaS软件功能架构图核心能力构建镜像:配置化轻松实现C/C++、JAVA、JAVAWEB等云化应用的从源代码下载、编译打包、生成业务镜像的全流程,并能监控各个阶段的进度和日志,一目了然。持续集成:通过云化产品持续集成的流程设计,实现各种静态检查。支持Git/SVN自动下载、Maven编译、单元测试覆盖率等多种特性。便捷交付管理:多人协作开发集成、多种编程语言构建打包和分布式集群部署发布等服务;轻松搭建从代码提交、集成、构建到测试环境、预发环境、线上环境部署发布验证的持续交付流水线,质量和安全层层把关。统一配置管理中心:可视化的配置管理界面提供推拉更新模式定义多种容灾策略,多种接入方式等。有效降低了在分布式微服务架构模式下的配置管理复杂度,降低出错率,保证多应用实例的一致状态,提升运维能力。应用/中间件支持:支持各种主流的互联网中间件(如MySQL、Nginx、Zookeeper、Redis等)、各公司的中间件(如ZDaaS、ZCache、ZMQ等)及管理,支持常用的JAR业务应用、WEB业务应用、C/C++业务应用的部署和全生命周期管理。监控指标丰富:新监控中心支持主机、容器、中间件组件、业务应用的多种海量性能数据采集、入库、挖掘和钻取分析、稽核校验等,快速发现问题,精准预警,并自动触发短信、邮件等多渠道处理机制。同时,新监控平台实现对IaaS、PaaS和SaaS层全面可视化监控。轻松运维:一键发布解决方案级产品、一键升级脚本、配置、程序等配套设置,一键部署/启停/卸载中间件;一键部署/启停/伸缩/升级/卸载业务应用,对IaaS、PaaS、SaaS的运行状况进行一键巡检,确保系统健康稳定运行。统一日志和调用链:集中管理分布式应用离散日志、支持TB级日志多维度检索、后台JOB处理、实时日志分析和告警,自动跟踪分布式事务消息,自动检测确定应用程序拓扑,提供代码级可见性调用链以轻松识别故障点和瓶颈。弹性伸缩轻松应对业务压力变化:按照预先设定的伸缩策略,如时间策略、资源和业务性能指标策略等,当达到资源(如CPU使用率、内存使用率)阈值或者业务性能(如业务请求数)阈值时,自动快速触发云化应用的实例数的弹性伸缩,轻松的应对各种业务压力变化。异常容灾机制确保业务零停顿:业务系统主机或者业务应用容器发生异常时,平台自动发现异常并自行调度拉起业务容器,确保业务7*24小时不间断运行。建设方案统一运维平台功能架构统一运维平台作为整个运营管理平台的底座,提供底层IaaS资源的统一管理功能,包括主机管理、主机分组、主机控制台、租户管理、项目管理、云盘管理等。图4-9统一运维平台功能架构图实现方案一、主机管理统一管理纳入容器管理平台的主机的信息,包含ssh登录用户名、密码、端口、主机用途、主机所属的环境、IP地址、内核数、内存数、本地存储、状态等基础信息。主机列表展现了主机列表的信息,以及提供了按钮进行主机修改和删除功能。新增主机进行主机的录入功能,可以录入主机的各种信息编辑主机进行主机信息的修改删除主机进行主机的删除操作二、主机分组提供按照ZONE给主机进行分组,然后在每组ZONE的机器上打上相应的标签,实现对主机进行逻辑分组。新建ZONE,并把主机加入ZONE分组中,后台通过和kubernetes的apiserver进行交互,给主机打上相应的标签,实现对主机的逻辑分组,方便后续的容器应用调度。增加ZONE主机,对于已经存在的主机分组,可以新增主机进入此分组。删除ZONE主机,针对已经存在的主机分组,可以把其中的主机从此分组中去掉。主机分组详情,针对已经存在的主机分组,可以把其中的主机进行罗列展示,便于后续的管理。三、主机控制台提供界面化的主机登录功能,避免手工通过后台SSH方式登录主机,简化用户的操作,方便运维。四、租户管理主要负责租户的新增、编辑、删除、查询和详情展示的功能租户列表展现租户列表的信息,以及提供了根据租户名称进行查询。租户详情展示租户的详情信息新增租户进行租户的录入功能,可以录入租户的各种信息编辑租户进行租户信息的修改删除租户进行租户的删除操作五、云盘管理云盘的主要作用是为容器化应用提供持久化存储,云盘管理的主要目的是提供云盘的创建、云盘的回收、资源使用量的展示等。容器云功能架构提供基于Docker+Kubernetes的应用容器化的管理平台功能,为业务应用提供一个轻量的、弹性的、面向微服务的管理平台,使得应用可以专注于业务逻辑开发。图4-10容器云功能架构图容器管理平台定位为生产环境下业务中台中各共享服务和PaaS中间件镜像的配置、运行以及管理的一体化平台。容器管理平台对外提供OpenAPI和WEB控制台。其中OpenAPI主要负责与开发者门户对接,实现共享服务镜像的部署管理;WEB控制台用于管理人员的日常运维操作。容器管理平台主要提供了Kubernetes集群管理、应用管理、镜像管理、告警管理和系统管理的5大核心功能。kubernetes集群管理:负责主机和kubernetes集群的配置管理和维护。应用管理:负责应用、服务、容器的配置管理,对外提供负载均衡功能。镜像仓库:负责镜像的构建、存储和访问功能。告警管理:负责告警规则的配置和kubernetes告警触发和消息发送。系统管理:负责业务系统团队、用户的身份认证和管理,以及菜单和数据权限管理。实现方案一、K8S集群管理主要负责kubernetes集群的配置管理和维护。主要包括创建集群、自动安装、动态伸缩、集群实时监控、一键检测等功能。提供高可用集群方案,容器管理与集群中各组件模块,无单点故障风险,具备容错机制。创建集群提供基于主机创建集群的功能,分为开发、测试和生产等不同的环境。可以分别录入集群信息和主节点信息和计算节点的信息自动安装提供集群安装自动化,不需要去每台主机上手动安装kubernetes与docker,通过ansible来实现自动安装kubernetes和docker。动态伸缩根据实际需求添加新的主机节点到集群中,或者从集群中清除某些节点,实现集群节点的界面化的管理。集群实时监控实现整个集群汇总的cpu和内存的监控,也能监控每台宿主机的cpu、内存等信息。二、应用管理主要提供应用和服务的生命周期管理(部署、启动、停止、删除等),服务资源限制、环境变量注入、主机/服务亲和度调度、配置管理、服务扩缩容、滚动升级、服务发现和负载均衡、以及并提供容器的管理(包括监控、实例信息展示、容器日志、容器控制台,容器文件管理、容器快照等)。应用/服务生命周期管理集成kubernetes的集群容器管理功能,为用户提供快速部署应用/服务、运行容器化应用/服务的可视化界面。应用/服务管理的主要功能包括快速创建部署应用/服务、应用/服务启停、复制、应用/服务导入导出、删除等。同时对开发者门户提供应用管理API、服务管理API。应用/服务的创建,提供快速创建应用界面,包括选择镜像、zone、配置文件挂载、云盘挂载、环境变量设置、资源限制(CPU、内存)、实例个数、最低资源要求(CPU、内存)、镜像拉取策略、DEBUG模式等配置。应用/服务的编辑,提供应用/服务编辑功能,具体参数参考应用创建。应用/服务的启动/停止,提供应用/服务的启动和停止的操作功能,方便管理。应用/服务的卸载,提供应用/服务的卸载功能,回收资源,便于其他应用/服务进行使用。控制台日志,提供应用容器的控制台日志展现,也可以看到日志挂载目录的日志,同时支持控制台日志的下载应用/服务复制,将一个应用配置完全复制成为一个新的应用。应用DEBUG模式,debug远程调试模式支持java应用。启动debug模式会停止监控应用进程状态,即使进程启动失败容器也不会退出;启动debug模式可以使用IDE远程连接应用,便于在IDE上调试应用。启动Suspend模式时可以在启动JVM时就暂停,并在调试器连接之后再继续启动。应用详情,详细展示应用的详细信息,包括应用名称、使用的镜像、创建时间、状态、实例个数、镜像拉取策略、实例列表、配置文件、应用事件等。服务资源限制限制服务每个实例的资源上限,防止占用过多资源影响其它容器,确保系统能够稳定健康的运行。环境变量注入实现将环境变量注入到容器中,方便容器应用的运行时管理,也可以动态修改环境变量来实现对容器应用的动态管理。主机/服务亲和性调度亲和性调度,支持主机亲和性调度,通过给主机打上相应的标签,实现将容器调度到指定的宿主机;同时支持服务的亲和性调度,将服务A的实例调度到指定的宿主机后,如果服务B和服务A存在亲和性的话,那么在服务B的实例创建的时候,会调度到服务A的实例的宿主机上。配置管理配置管理,以“一点配置、一点管理、多点使用”为理念,实现配置文件和配置项双模式管理,便捷管理应用/服务的配置,支持配置创建、修改、删除、关联应用/服务、配置导入、配置浏览、配置版本管理等功能。同时对开发者门户提供配置管理API。故障迁移故障迁移,支持某一时刻的计算节点主机突然挂掉的情况下,实现自动在其它健康的计算节点主机上生成新的服务实例,保证业务不中断。同时支持某一时刻的应用/服务容器实例发生异常自动退出的时候,能够自动在本计算节点主机或者其他计算节点主机上拉起容器实例,以保证业务系统不中断服务。服务扩缩容水平扩展,支持通过界面来触发应用/服务的扩缩容,实现在业务低谷期的时候可以将服务实例个数降下来,在业务高峰期的时候可以将服务实例个数升上去,使得面对业务的波动业务系统能够健康稳定运行。自动伸缩按性能伸缩ZCM允许用户配置针对性能指标的伸缩计划,用户可以指定相关的指标,设置最大和最小阈值,配置实例个数(最小个数和最大个数)。用户还可以设置防抖动时间片,排除由于性能抖动带来的不必要的伸缩情况。按计划伸缩支持按照时间计划进行自动伸缩;用户可以根据业务高低峰等时间特性,配置有针对性的伸缩计划。用户可配置伸缩时间的cron表达式,配置最大和最小服务个数,实现在业务低谷期的时候可以自动将服务实例个数降下来,在业务高峰期的时候可以自动将服务实例个数升上去,使得面对业务的波动业务系统能够健康稳定运行。滚动升级滚动更新,将应用/服务镜像版本更新到新的版本,先拉起一个新版本的实例,待实例正常提供服务之后,将旧版本的实例去掉,直到所有实例都更新为新版本实例对外提供服务,保证了系统平滑的升级业务不中断。服务发现和负载均衡服务发现和负载均衡,采用动态业务网关来实现,服务部署好后在动态业务网关上配置后,动态业务网关自动监听服务实例的创建和销毁的事件,自动维持业务请求的正常分发,并实现多种负载均衡策略(RoundRobin、IPHash、LeastConnection)。容器管理容器管理,提供容器的部署,启动、停止、详情信息展示,控制台,容器日志,文件管理(支持容器中文件目录和文件各种管理,如新建、下载、上传、移动、改名、压缩、解压、删除等),容器监控(如CPU、内存、IO、网络、进程等),容器快照等功能。同时对开发者门户提供容器管理API。可以查看查看容器绑定的端口信息;查看容器的调度、拉取、创建和启动过程事件信息;看到容器内console的日志和日志挂载目录的日志。三、镜像管理主要负责镜像的构建、存储和访问,包括镜像仓库、镜像存储、上传下载、在线构建、租户隔离、快速检索等功能。镜像模板管理支持镜像模板的创建、修改、删除等,可以设置镜像的环境变量、暴露端口、实例保留策略(保留最新N天或者最新N版本数)。镜像详情展现镜像的详细信息镜像构建根据模板化的dockerfile,供用户快速构建自己的镜像,同时在研发管理平台部分也支持镜像的快速构建。镜像隔离支持公有镜像和和私有镜像,租户之间的镜像相互隔离,每个租户只能看到公有镜像和自已的私有镜像,实现镜像的隔离管理。镜像文件浏览支持镜像中文件的浏览,方便管理。镜像删除支持镜像实例的删除,清理镜像仓库空间,避免镜像仓库被撑爆。上传和下载支持镜像通过后台进行上传和下载,也支持界面化通过持续集成进行镜像上传到镜像仓库,以及界面化部署应用/服务的时候从镜像仓库进行镜像下载。镜像检索支持通过界面输入关键字进行镜像仓库中的镜像模糊匹配,在海量镜像中快速找到目标镜像,方便镜像管理。研发云建设思路在整个软件交付的周期中,通常会涉及开发人员、测试人员、运维人员,每个角色分别负责研发工作、测试工作以及上线部署工作。目前的软件交付面临的主要问题如下:代码构建的一致性和稳定性难以保证;手工部署环境,手工容易出错,结果不可预测,重复性高,消耗的人力多。测试环境的多版本管理复杂、易出错、难回滚。生产环境和测试环境配置不同导致报错难以定位。而随着软件市场的不断扩大以及客户对软件质量要求越来越高,软件研发正在面临各种各样的挑战:软件部署由过去的分散小规模转为集中大规模、客户期望更快更新更好的特性和服务,传统软件服务商向SAAS服务和云服务转型;在云计算,大数据等开源项目中,多语言混编成为常态。python、go、Ruby等新型语言已经在开源社区广泛使用;交付频率高、研发周期短;平台开放能与其他平台对接或者数据交互,数据在传输和存储上要求安全并且可靠。软件开发及交付需顺应数字化时代的趋势,建设协作、分享、试错的文化,构建开放、透明、平台化的产品研发环境,参考引入互联网及DevOps优秀实践,推动产品,从敏捷开发,走向敏捷的运维和敏捷的业务。企业级的DevOps首当其冲的是“协作”,DevOps非常强调文化的改变。以敏捷的理念,作为整个项目的核心指导理念,达到极致的“快”。产品生命周期的研发过程,将采用持续改进的理念,形成完整的闭环。极速迭代是研发互联网化的重要实践,是一个研发环节综合能力的体现。图STYLEREF1\s4SEQ图\*ARABIC\s12敏捷开发流程图研发管理平台,面向开发者提供云服务,即开即用,用户随时随地在云端进行代码托管、代码检查、流水线、编译、构建、部署、测试、发布等,让开发者快速而又轻松地开启云端开发之旅。平台提供统一的规范,满足接入项目的规则一致性,保障项目版本的质量。平台通过流水线的方式将所有的组件串联和运行,服务于企业管理层、业务负责人、研发工程师、测试工程师、PM/PMO、ScrumMaster等企业角色,让协同更简单,让交付更高效。研发管理平台的主要功能如下:SDK开发中心:平台通过提供SDK、技术组件等,帮助开发人员方便接入研发管理平台;Pipeline流水线:流水线支持研发交付中的不同阶段和任务(代码下载、自动编译、代码检查、部署等)编排,列表显示流水线所有的构建历史记录,可以查看具体的构建日志信息;代码托管(源码管理):平台提供在线代码托管,解决跨区域的协同开发;代码检查:平台通过定制化的规则检查代码存在的漏洞。提供对C,C++,JAVA语言的代码检查。提供JAVAPMD,JavaNcss,Checkstyle,FindBugs,资源文件检查,重复代码检查,CppCheck等多种检查工具;自动编译:提供JAVA,C,C++,FLEX,Python,JS等多种混合语言的编译,提供maven,ant,bat,python,shell等多种构建方式;测试管理:平台提供测试环境管理,提供单元测试、UI测试、接口测试、性能测试等自动化测试任务;质量中心:以价值交付为导向定制精益度量分析面板,帮助用户提升研发交付效能,挖掘研发、下载、测试、构建、检测等各维度数据,提供人员效率数据,代码告警,失败等统计信息,帮助用户提升研发交付效能;自动部署:提供一键发布和一键升级功能,提供版本升级包内容(镜像、脚本、配置文件等)的配套检查,提供升级包内容的编排和升级模板;研发管理平台实现从传统开发模式到基于PaaS平台的开发模式的转变,深入实践DevOps理念,推动研发过程管控,提高版本质量,缩短新功能的交付周期。通过研发管理平台,研发人员将代码提交到代码仓库,自动触发持续集成流水线,启动流水线的代码构建、代码检查、单元测试等流程后,将已经构建好的镜像提交到镜像中心。系统自动依次镜像部署到各个环境(测试环境、预生产环境、生产环境),触发自动化测试。系统挖掘研发、部署、升级、测试的数据,提供人员效率数据,代码告警,失败等统计信息,帮助用户提升研发交付效能。支持场景自动构建自动构建提供如下公共功能:提供自定义构建流程。提供流程模板。提供代码下载,代码编译,制作镜像等多种任务类型。提供任务编排,串行,并行等。提供执行状态,进度查看。提供执行日志信息查看。提供执行历史记录查询。提供提交触发,定时,手工多种触发方式。提供统计报表查看。代码下载提供全量下载,增量下载两种代码下载方式。提供代码下载全量,增量文件列表查询。代码编译提供JAVA,C,C++,FLEX,Python,JS等多种混合语言的编译。提供maven,ant,bat,python,shell等多种构建方式。自动交付自动交付提供如下公共功能:提供流程模板。提供镜像制作,版本打包,推送更新等多种任务。提供输出物版本管理。提供任务编排,串行,并行等。提供执行状态,进度查看。提供执行日志信息查看。提供执行历史记录查询。提供统计报表查看。镜像制作提供基础,共享,私有等镜像选择。提供镜像制作。提供镜像版本管理。推送更新提供镜像更新后自动推送给使用该镜像的应用。一键发布提供解决方案级别发布模板的定制。提供模板发布。提供镜像,脚本,配置,主题等多种输出物。提供发布版本管理。一键升级提供一键发布输出物展示查看。提供脚本,配置,主题,应用的编排。提供自动升级应用功能。提供自动执行脚本功能。提供自动更新配置文件功能。提供自动更新主题功能。单元测试和覆盖率提供C,C++,JAVA语言的单元测试。提供单元测试的代码覆盖率统计。提供单元测试结果统计和告警。提供代码覆盖率可视化报表。代码检查提供对C,C++,JAVA语言的代码检查。提供JAVAPMD、JavaNcss、Checkstyle、FindBugs、资源文件检查、重复代码检查、CppCheck等多种检查工具。提供检查结果告警提示。提供代码缺陷的影响说明,修改示例和建议。检查规则自定义,支持不同告警规则的提醒。通知提醒提供邮件订阅。提供邮件提醒,推送构建报告。提供钉钉提醒。数据分析每次运行实例的结果信息记录,包括代码检查节点的告警信息、报错信息。变动文件的告警数据比对信息。编译关键字配置功能每次运行实例的变动文件列表、人员列表数据变动文件的报错信息映射功能功能架构研发管理的功能架构图如下:图4-12研发管理平台功能架构图应用管理:应用管理:以项目为维度管理应用。一个应用可以包含多个服务。服务管理:以应用中可运行的系统为服务,包含服务的创建、源码的对接和托管。用户权限管理:以应用为维度,管理项目组的开发人员、测试人员和发版人员及其相应的权限。源码管理源码管理:可以配置服务的外部源码仓库,也可以将代码托管在开发者门户内部的源码仓库。源码仓库类型包括SVN和Git。通过列表展现服务中源码的分支数、用户信息。分支管理:针对服务的源码,可以创建和删除分支。用户授权:支持源码仓库中用户的权限管理,包括增加和删除源码仓库的用户。构建管理自动构建:可以配置服务定时自动构建。手工构建:可以在开发者门户触发单次手工构建。构建日志:列表显示服务所有的构建历史记录,可以查看具体的构建日志信息。质量管理代码静态分析:支持源码的静态分析,输出各类指标,如Bug数、重复行数、漏洞数量等。测试覆盖率分析:分析开发人员编写的单元测试的代码的覆盖范围。分析图表展示:用图表的信息逐层展示,包括指标数量、具体的指标关联的源码上下文。资源管理数据库:支持基于镜像快速提供包括MySQL、MariaDB、PostgreSQL等数据库服务资源。NoSQL:支持基于镜像快速提供Redis、Memcache等NoSQL服务。中间件:支持基于镜像快速提供Nginx、Zookeeper等服务中间件。集群管理主机管理:配置可用的主机信息,包括IP、Port、ssh用户名、密码;连通性测试;主机自动安装必要的软件包;获取主机的详情等功能。Kubernetes集群:支持包括Kubernetes集群的创建,配置Master节点和pod数量。环境管理:支持包括集成环境、测试环境、演示环境和生产环境的配置。镜像管理镜像仓库:支持包括Harbor镜像集群的配置管理。镜像管理:支持包括基础镜像和应用镜像,支持镜像的上传和下载。镜像部署:支持将镜像文件部署到指定的环境。系统管理用户管理:开发者门户用户信息的管理,包括用户名、密码、手机号和邮箱等基本信息。角色管理:将系统用户分为开发人员、测试人员、发版人员、管理人员和超级管理员等角色。资源管理:管理开发者门户的菜单,针对不同的角色和用户分配菜单权限。系统参数配置:开发者门户内部的参数的配置。应用监控平台总体介绍性能日志管理平台是主要由APM性能管理和日志集中模块组成。性能管理:主要解决微服务体系架构下系统复杂性呈指数级上升,难以解决的如系统故障或性能瓶颈等问题。主要功能:应用拓扑、调用链、应用巡检。日志集中:主要解决了云化架构下机器众多日志分散难以查询分析的问题。主要功能:日志采集、日志存储、日志查询、日志贯穿,日志与调用链关联。功能架构图4-13应用监控平台功能架构图实现方案一、调用链跟踪分析分布式链路追踪系统,具有故障快速定位、自动生成服务调用拓扑图、调用环节性能分析、分布式日志集中等功能,相比于其它的故障分析工具,iTracing基于字节码增强技术,实现代码零入侵,简单易用。应用接入调用链基于Java字节码增强技术在加载类时候使用字节码技术修改类的实现,在目标类的函数调用前后加入埋点,采集活动数据发往iTracing。分布式服务调用链跟踪应用拓扑通过查看组件的互连方式,了解分布式系统的拓扑结构。点击一个节点会显示组件的详细信息,例如当前状态和事务计数。请求/响应散点图随时间推移提供请求计数和响应统计可视化模式,以发现潜在问题。通过拖动图表可以选择查看事务处理调用链以获取更多详细信息。事务调用链调用链界面上半部分展示的是你所选择的事务信息,下半部分用来展示具体的事务调用链。在调用链界面选择单个事务,单击,在界面下半部分会展示调用链信息。在调用链界面你可以清楚的看到事务请求路径,事务号,请求客户端以及应用程序名。除此之外,在下半部分的调用链信息中将整个事务的方法调用关系展示出来,且展示了各个方法的开始调用时间以及处理时间,通过这个你也可以快速的发现耗时长的方法,当然你也可以选择查看该事务的服务拓扑图、时间线以及包含所有信息的混合视图。应用巡检查看应用程序的其他详细信息,如CPU使用情况,内存/垃圾收集情况,数据库连接池监控,TPS和JVM参数。分布式服务响应时间分析iTracing实现性能统计的原理是:在Flink上运行流式作业。taskmanager服务在作业开始后作为数据节点注册到zookeeper。Collector从zookeeper获取Flink服务器信息以创建一个TCP连接并开始发送Agent数据。Flink服务器汇总Collector发送的数据将其按照类型分类并将它们存储到HBASE。慢事务分析统计分析出排名前六的慢事务信息异常事务分析统计分析出排名前六的异常事务慢节点分析统计分析出排名靠前的慢服务节点。全链路监控通过串联打通应用系统、中间件、数据库、调用链、监控中心、日志等资源,实现全链路的监控。比如数据库无法访问、网络终端、服务器宕机等问题,会导致很多应用报警,造成告警风暴,但最终的根因其实是因为底层问题导致。通过关系表,能将调用链、监控中心、日志、数据库等数据、指标、告警打通,再通过算法辅助(如决策树算法等),最终确定故障根源。日志实时采集分析关键字段如databaseerror等,当发现大量日志报出此错误时,能关联CMDB中的关系表和数据库的数据,自动推断出是因为数据库出错。调用链性能瓶颈分析时,能够关联监控的指标和告警,根据算法推断最终的根因是因为数据库导致,所有应用的告警最终都收敛为一个告警,告警说明指向是数据库。二、日志中心日志采集采用主流日志采集方式,通过Filebeat将日志采集送往分布式消息队列Kafka中,后续根据不同主题将数据入库ElasticSearch后供查询、分析。支持自定义日志汇聚策略,支持按主题汇聚日志。日志解析入库系统将应用日志和性能日志分不同的主题处理,通过Logstash将应用日志解析为Json格式入库到ElasticSearch中。通过自研的入库程序KPI2Influx将性能日志入库到InfluxDB中。日志存储系统将日志存储到搜索引擎ElasticSearch中,支持6个月内的日志查询和检索。日志检索在日志检索界面,默认查询的最近5分钟内所有被采集应用的日志,且在下方列表中展示出来日志信息,包括日志时间,所属应用,所属容器,日志内容。查询条件灵活配置。日志详情查询到日志之后,我们可以通过点击“详情”按钮查看某条日志的具体信息。实时日志查看可以在日志检索界面上查看最近的入库日志,实现实时日志查看的目的。中间件管理(服务市场)总体介绍中间件管理支持中间件&数据库部署管理和作业计划功能,并以BaaS服务市场的形式提供服务;中间件服务管理功能,支持对中间件进行部署,服务启停,服务升级,监控的功能。支持多种不同的PaaS组件和大数据组件,提供完整的生命周期管理和运维监控功能。作业计划功能提供灵活的作业计划编排和可视化的作业计划配置和定时执行,减轻运维压力,并实现作业项的沉淀,便于复用。作业计划允许用户针对日常运维支持中需要执行的各种操作,比如巡检,资源统计,数据库清理,日志清理,数据备份等操作,配置成固定的作业项,再对作业项进行编排,配置成独立的作业计划。作业计划支持手动和自动执行的方式。目前支持的中间件主要有:支持三方自研组件:如ctgmq、ctgcache、teledb、udal等支持公司自研组件:如iTracing、ZMQ、ZCache、ZDaaS等支持大数据组件:如Hadoop、Spark、HBASE、HIVE等支持主流开源组件:如NGINX、MySQL、LVS、REDIS等实现方案一、中间件服务管理中间件部署通过管理控制台快速的部署中间件集群,中间件集群目前支持ZDaaS集群、ZCache集群、ZMQ集群、fastdfs集群、mongodb集群、memcache集群、postgresql服务、zookeeper集群,集群都是以高可用方式部署。自动化部署解决大部分的系统差异性问题及运维人员对服务部署不熟悉的问题。服务启停通过控制台对中间件进行启动和停止操作,不用登陆到远程机器上每个节点进行操作,提升管理效率。服务升级中间件集群(ZDaaS、ZMQ、ZCache)通过平台能在线完成集群升级,升级时对外提供的服务不中断,升级方式包括在线升级、离线升级、部分节点升级等方式。中间件监控能够对中间件进程资源做实时监控,包括cpu、内存、磁盘、网络等资源使用情况。能够对中间件所在的主机进行监控,包括主机的cpu、内存、磁盘、网络等资源使用情况。二、服务市场中间件&数据库支持以BaaS服务市场的形式为客户提供服务;BaaS服务市场(以下简称服务市场)围绕赋能研发提效,打造集服务推广,创建,运维一体化的专属平台。消除组件搭建时的繁琐配置,贴合业务场景,轻松快速搭建各种研发环境。微服务治理平台总体介绍从传统架构转换成微服务架构,应用下服务的数量激增,如何去管理这些服务,成为开发和运维两侧同样面临的挑战。不同系统模式下,应用开发采用的微服务框架有差别,不同框架的微服务调用变得频繁,需要支持跨框架的微服务治理能力。当大量软件系统使用微服务架构进行改造或开发时,在治理微服务方面,我们会遇到一些定型的问题/痛点,这些痛点对服务改造开发带来一定的隐患。微服务治理目标:图4-14微服务治理目标图整体架构图4-15微服务治理平台架构图微服务管控由SCP-WEB、SCP-Metrics和SCP-MOCK三类应用组成,支持对使用Dubbo、SpringCloud微服务框架的应用进行治理。scp-metrics监控服务负责流量数据的采集应用接入微服务管控平台的sdk后,在发送服务调用时,sdk异步的方式持久化流量数据到本地的流量文件中。Metrics监控服务进程定期调用sdk接口获取流量信息,并将流量信息入库,供scp-web门户展示。实现方案微服务管控平台,从服务监控,服务治理和服务运维三方面考虑,满足微服务在开发,测试和运维不同阶段的治理需求,作为统一的微服务治理入口。服务框架覆盖Dubbo和SpringCloud两大主流框架。服务监控:展示应用和服务的关键指标,实时展示应用和服务的健康情况;服务列表展示,服务swagger文档展示等;服务治理:通过界面化进行治理规则配置,提供流量限流、熔断、路由配置、服务mock等治理手段;服务工具集:从运维的角度出发提供工具集。如Zk可视化工具、服务mock、服务诊断、接口设计等一、流量监控提供针对服务的流量监控功能,实时展示其流量的变化情况、请求成功率和响应时间等数据。流量监控让业务实时了解不同业务模块下,具体服务等的调用情况。二、服务拓扑提供针对拓扑视图展示服务之间的调用关系,展示服务调用者、服务提供者和注册中心等的拓扑关系。三、服务限流&熔断&降级采购微服务治理平台支持对Dubbo和SpringCloud服务配置限流、熔断和降级规则,在系统服务的细粒度下对业务服务进行治理控制。四、注册中心微服务治理平台支持对接和监控多种微服务注册中心,包括Zookeeper、Eureka和Nacos。五、动态配置动态配置是在无需重启应用的情况下,动态调整RPC调用行为的一种能力。支持服务和应用两种粒度来调整动态配置。权重调整调整Dubbo服务端权重,实现动态控制服务被访问的概率,从而达到流量分配的目的;超时配置设置服务端和客户端的超时时间,服务端配置优先级高于客户端配置,避免超时导致客户端资源(线程)挂起耗尽;负载均衡调用服务集群的负载均衡策略,匹配不同业务需求策略包括:1)Random随机,2)RoundRobin轮循,3)LeastActive最少活跃调用数,4)ConsistentHash一致性Hash;集群容错配置服务集群的容错策略,当集群中的任一服务异常时,对失败的请求进行控制。可用策略包括:1)FailfastCluster快速失败,失败立即报错,2)FailsafeCluster失败安全,忽略异常,3)FailbackCluster失败自动恢复,记录并定时重发,4)ForkingCluster并行调用多个服务器,5)BroadcastCluster广播并诸葛调用,失败即报错;线程池策略&大小调整服务端线程池策略和大小,策略包括:1)fixed固定大小线程池,线程不关闭(缺省),2)cached缓存线程池,空闲一分钟自动删除,需要时重建,3)limited可伸缩线程池,线程数只增不减,4)eager:需要时建新线程执行任务,避免队列阻塞。PaaS平台技术要求PaaS技术架构的目标PaaS技术架构旨在规范企业内部各领域在架构设计、系统研发时的标准,使各领域对技术架构标准有统一的认知,避免各领域重复建设基础设施,促使各领域基于统一PaaS平台标准化服务进行系统开发。技术架构驱动IT体系不断迭代,让领域专注业务、专注目标、专注逻辑、专注产品价值,为支撑企业数字化战略的全面实施打下坚实基础。PaaS平台技术要求概述基于云原生技术的PaaS平台是技术架构的标准实现,是满足新一代IT建设模式的不二选择。云原生PaaS平台技术能力需求主要有:具备微服务治理能力,托管应用服务全生命周期,包括应用服务的创建、启动、停止、滚动更新、一键升级、弹性伸缩、删除等。具备系统可观测能力,对自研以及三方的硬件设施、应用服务的运行状态进行监控与度量,主要包括指标(Metrics)、日志(Logging)、链路追踪(Tracing)三大维度。具备高可用保障能力,组合利用缓存服务、消息队列、服务网关等实现水平扩容、削峰填谷、降级熔断,保障系统可用、业务稳定。具备研运一体能力,提供在线项目协同、敏捷研发、持续集成与交付、自动化测试、智慧运维,以DevOps理念提升研发效能。具备多云适配能力,能够基于容器引擎技术、集群管理技术适配公有云、私有云、混合云、多云等不同模式,提供统一的标准接口进行资源调度与编排。具备开放融合能力,能够面向过去(老系统)、面向未来(新建设)、面向外部(供应商)的软硬件进行集成、融合、贯通,支持主流微服务框架、中间件的快速适配。具备可传承能力,实现服务解耦、功能复用、组合创新,灵活运用无代码/低代码/高代码实现企业数字化建设交付效率的提升与资产的沉淀。具备智能化能力,能够支持自动治理、智能运维、系统自愈、主动安全,降低系统建设、运行维护的成本。PaaS平台技术能力要求一、统一运维平台从系统管理角度,提供统一认证授权系统,适配AD,LDAP等认证协议;提供统一基础数据、统一安全防护等公共能力;支持多租户与项目管理模式;从资源管理角度,提供IaaS层资源的统一管理功能,支持各种虚拟化资源的对接,如Openstack、vSphere等;支持按租户&项目进行资源申请、分配,且支持资源使用检测、使用量统计,以及资源自动回收机制,提供资源使用的全生命周期管理;平台支持10000+VM的资源容量管理能力,且性能满足使用要求,无任何瓶颈;从自动化运维角度,提供常用的运维功能,如资源巡检、系统升级、中间件管理、应用生命周期管理等;二、容器云从集群管理及应用场景角度,支持跨公有云/私有云/AZ的多集群管理,支持一键自动化创建集群,支持集群版本在线升级而不中断业务,从运维管理角度,支持查看集群底层资源如主机的基本信息、容器、应用监控,支持集群资源的扩展/收缩;支持实时监控主机的CPU、内存、网络IO、磁盘IO、存储利用率等状态,并提供图形化界面显示,支持查看容器外挂主机存储、共享存储的容量信息、挂载情况和连接状态等,提供图形化显示;支持容器平台的网络拓扑关系;支持查看容器中进程的运行状态,提供展示结果和报警策略;从容器网络与存储角度,支持Overlay/Underlay网络模式,支持容器使用VPC网络,VPC内资源互通;支持多种方式访问容器应用(ELB、EIP、NAT网关等),支持动态对接块存储、对象存储和文件存储服务,无需用户提前创建存储资源;支持基于Kubernetes的容器网络高吞吐IPVS模式,处理每秒10万次以上的转发请求;应用编排能力要求,支持应用编排模板的新建、修改及删除,支持按租户管理管理私有应用模板;支持YAML格式开展应用编排,能够实时校验语法;支持应用容器与外部资源的混合编排,如外部数据库、负载均衡等;从应用管理角度,支持应用的跨集群部署、伸缩、升级等生命周期的统一管理能力;支持应用弹性伸缩策略,自动调整各集群内应用实例分布,支持应用按性能指标、按时间、按周期的弹性伸缩策略,并支持按自定义指标伸缩;支持跨集群的服务发现机制,为跨集群的应用提供统一的访问入口;支持跨集群的应用流量管理能力,统一管理应用的南北向和东西向流量;支持应用的灰度发布、蓝绿发布等;从容器镜像仓库方面,支持容器镜像的全生命周期管理,包括镜像的上传、下载、删除等,提供镜像隔离能力,支持为不同用户分配相应的访问权限(读取、编辑、管理);集成DockerHub官方镜像,用户在容器镜像服务中可直接查看和搜索Docker镜像,并提供镜像收藏功能;遵循HTTPS协议保障镜像安全传输,提供租户间、租户内多种安全隔离机制;从DevOps角度,支持基于容器的CI/CD流水线功能,可对接主流代码仓库,如Github、Gitlab、Subversion等;提供容器化编译工具,支持Java、GO等主流开发语言;提供容器环境自动化测试;支持容器编排对象编排模板的生成,以及模板的版本管理;支持自定义发布流程,支持客户在平台上自定义符合自身要求的持续发布流程步骤,支持读取镜像并将多个微服务自动化部署在制定的集群环境中;从工作负载角度,支持Kubernetes全量的工作负载,如无状态、有状态、Job、CronJob等;三、DevOps研发云支持敏捷与精益思想的项目管理,支持需求管理、任务管理、缺陷管理、迭代管理等研发项目管理全场景,提供敏捷、瀑布

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论