1
[产品概述]
苏研大云PaaS产品(BC-PaaS)是基于Kubernetes、Docker等开源云计算技术开发的一款集应用开发、测试、编排和自动化运维为一体的产品。BC-PaaS产品集成了容器管理、镜像管理、应用管理、多集群管理以及DevOps等多种能力,提供MySQL、Redis、RabbitMQ、 ElasticSearch、ETCD、Kafka、ZooKeeper等中间件服务,支持SpringCloud微服务开发框架,同时也集成了服务网格Istio。此外,在兼容性方面,BC-PaaS支持和大云企业级云管平台BC-EPC对接, 还可以纳管苏研大数据产品,包括Hadoop、Spark、Hive等。 BC-PaaS自商用以来,已在江苏、北京、重庆、山东、内蒙等多个省公司广泛应用。
2
[BC-PaaS能力架构图]
此次发布的BC-PaaS V2.4版本包含了多个新增功能,例如服务网格、SpringCloud微服务框架、服务市场,原有能力也有所增强,包括CI/CD优化、应用灰度发布、会话保持、日志订阅功能等。
3
[特色功能介绍]
3.1 服务网格(ServiceMesh)
随着微服务框架的推广与实践,单个应用被拆分成若干个更易于开发和维护的微服务。该技术有效解决了单体应用随着需求不断追加而导致的整体应用复杂度高、难以理解、维护难度较高等问题。但是单一应用被拆分成几十个甚至更多的微服务时,如何对众多微服务进行管理实现版本控制、故障转移等功能,同时逐步满足对于微服务架构所带来的更复杂的运维需求,例如A/B 测试、金丝雀发布、限流以及访问控制等,成为微服务时代必然面对并需要解决的问题。
服务网格技术为解决以上问题应运而生。服务网格是一个基础设施层,用于处理服务间通信、实现请求的可靠传递。其在服务和网络之间透明地注入一层,该层赋予运维人员对所需功能的控制,同时将开发人员从编码实现分布式系统的问题中解放出来,与应用程序的代码不会耦合。该层本质上是一个轻量级高性能的网络代理,与实际应用部署在一起,但对应用透明。
BC-PaaS V2.4基于Istio框架提供服务网格能力。主要实现以下功能:
流量分发
对于请求流量,按照制定的流量分发策略引流至不同版本的微服务。流量分发策略由分发类型、匹配类型、匹配规则、服务版本和权重几个部分共同组成,其中分发类型包括路径、请求方案、请求头;匹配类型包括精准匹配、前缀匹配和正则匹配方式。
错误注入
指定特定版本的服务进行错误注入。目前支持延迟和错误两种类型,其中延迟可设置延迟时间和触发概率,错误可设置错误码和触发概率。该功能主要应用于系统健壮性测试,当某个服务发生错误时,检测系统是否可以有效处理。
超时重试
指定服务版本进行超时重试,可设置超时时间和重试次数。该功能主要应用于服务故障时,自动发送重试请求,可设置重试次数,并在指定时间段后使请求超时。
熔断机制
对指定服务版本设置熔断机制,通过设置服务的最大连接数、最大挂起请求数、最大请求数、最大活动重试次数,在网络级别实现强制断路限制。当服务的健康状况低于设定的这些阈值时,将启动熔断机制,禁止请求通过。
功能展示图
3.2 SpringCloud微服务开发框架
SpringCloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现、服务注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用SpringBoot的开发风格做到一键启动和部署。
BC-PaaS V2.4版本集成了SpringCloud的各个组件,包括Eureka,Config,Hystrix, Ribbon,Zipkin,Zuul。支持各组件的一键部署,不同用户可使用独立的SpringCloud运行环境。目前已经成功地将苏研IT支撑部门的整套远程交付大屏微服务应用运行在BC-PaaS平台上,自部署以来持续稳定运行,如下图所示:
3.3 服务市场
用户在使用PaaS平台开发或部署应用时,经常会使用第三方中间件,比如数据库MySQL或Oracle、消息中间件Kafka、大数据Hadoop等。PaaS平台为了给用户提供一站式服务,需考虑将常用中间件集成到PaaS平台中为用户提供服务。
BC-PaaS V2.4实现了服务市场功能,以业界广泛使用的Open Service Broker API(OSB API)/K8S ServiceCatalog的方式将第三方提供的中间件能力接入到PaaS平台中。既保证了中间件原有的功能、性能,又能在PaaS平台上为用户提供所需服务。
服务市场符合标准的OSB API接口规范,起服务管理作用的broker可以部署在K8S集群内部,也可以部署在外部,以REST接口方式被BC-PaaS纳管。服务市场可以提供broker的注册、更新、删除,并提供服务的plan,用户可以基于plan及服务class创建实例,并创建这个实例的访问凭证。有了访问凭证,集群内外的应用都可以访问实例。此外,可以为各服务能力设置配额、参数说明、使用说明等,并提供服务的logo管理。与此同时,用户还可以将自己的服务发布到平台上,供他人使用。
BC-PaaS V2.4版本实现支持纳管热璞科技和爱可生的商业MySQL产品、Oracle数据库、苏研大数据部门提供的Hadoop、Hive、Spark、Kafka等能力。
3.4 CI/CD
CI/CD 覆盖了软件生命周期的开发、测试和部署运维等过程,核心元素是流水线。流水线将软件开发各个环节连接贯穿,实现了全流程自动化管理。CI/CD典型工作流程如下图所示:
BC-PaaS V2.4版本优化了原有CI/CD功能:
新增代码管理功能。支持用户按需注册和接入所需代码源,目前支持Gitlab、GitHub、Gerrit和SVN源码库,其中Gitlab和GitHub支持文件浏览、查看浏览记录和更新文件等功能。
新增任务管理功能。支持对接JIRA,可自动触发任务创建,将自动化测试中产生的问题创建JIRA分配到负责人。
功能展示图
4
[其他新增以及优化功能]
4.1 灰度发布:应用能够达到平滑过渡的一种发布方式。该功能支持用户自定义引流策略,对于同一应用的不同版本设定不同的流量接收百分比,实现应用新、旧版本的灰度发布。
4.2 会话保持:将同一客户端的会话请求转发给指定的一个后端服务器处理。目前本功能通过 cookie 实现,当客户端请求第一次到达负载均衡器时,它根据负载算法分配一个上游服务器处理该请求。当响应返回时,负载均衡器会将上游服务器的唯一标识写入 cookie 中返回给客户端。下次客户端访问时带上该 cookie,即可实现会话保持的功能。
4.3 日志订阅:该功能允许用户指定容器内的日志文件,当应用程序日志写入该文件后,PaaS平台的日志管理模块可以将日志信息搜集并展示给用户。
5
[总结]
作为苏研自主研发的云计算PaaS层核心产品,BC-PaaS将持续更新,为客户提供功能更丰富、更全面、更好用的能力平台,敬请期待。
/ END /
(文字:PaaS平台产品组 张如如 / 视觉:PMO组 赵思颖)
如需进一步了解产品信息或获取产品版本,请访问【中移产品管理系统】-【产品库】
领取专属 10元无门槛券
私享最新 技术干货