容器云建设方案
版本记录
版本 文件名 1
修改人 版本日期 备注 2
目 录
第1章 1.1 1.2 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.4 1.5 第2章 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.2.2 2.2.3 第3章 3.1 3.2
项目需求分析 ....................................................................................................................... 5 项目建设背景 ....................................................................................................................... 5 业务需求 ............................................................................................................................... 5 技术需求 ............................................................................................................................... 7
应用托管 .......................................................................................................................... 7 内部DNS服务 ................................................................................................................... 7 弹性伸缩 .......................................................................................................................... 8 负载均衡 .......................................................................................................................... 8 应用性能监控 .................................................................................................................. 8 灰度升级和滚动更新 ...................................................................................................... 8 容灾容错 .......................................................................................................................... 8
非功能性需求 ....................................................................................................................... 8 性能指标需求 ....................................................................................................................... 9 项目总体设计 ..................................................................................................................... 10 总体架构 ............................................................................................................................. 10
建设原则 ........................................................................................................................ 10 技术架构 ........................................................................................................................ 11 部署架构 ........................................................................................................................ 15
技术体系和技术路线 ......................................................................................................... 15
主要技术1 ...................................................................................................................... 15 主要技术2 ...................................................................................................................... 16 主要技术N...................................................................................................................... 16
功能设计 ............................................................................................................................. 16 集中日志中心 ..................................................................................................................... 16 监控告警中心 ..................................................................................................................... 17
3.3 API网关 ................................................................................................................................... 18 3.4
服务注册中心 ..................................................................................................................... 19
3
3.5 3.6 3.7 3.7.1 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 3.8 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.8.7 3.8.8 3.8.9
服务配置中心 ..................................................................................................................... 19 统一认证中心 ..................................................................................................................... 20 平台管理 ............................................................................................................................. 20
基础设施资源中心 ........................................................................................................ 20 租户账户管理 ................................................................................................................ 20 平台权限中心 ................................................................................................................ 21 公共镜像仓库 ................................................................................................................ 21 平台日志中心 ................................................................................................................ 21 监控告警中心 ................................................................................................................ 21 平台设置 ........................................................................................................................ 21
多租户管理 ......................................................................................................................... 21
应用管理 ........................................................................................................................ 22 服务注册发现中心 ........................................................................................................ 22 服务配置中心 ................................................................................................................ 23 服务网关 ........................................................................................................................ 23 权限中心 ........................................................................................................................ 23 链路跟踪 ........................................................................................................................ 24 负载均衡 ........................................................................................................................ 24 基础设施资源中心 ........................................................................................................ 24 镜像仓库 ........................................................................................................................ 24 租户日志中心 ........................................................................................................... 25 监控告警中心 ........................................................................................................... 25 任务调度中心 ........................................................................................................... 25
3.8.10 3.8.11 3.8.12 3.9 3.9.1 3.9.2
标准化交付和管理 ............................................................................................................. 25
持续集成工具及流程 .................................................................................................... 25 镜像仓库 ........................................................................................................................ 26
4
第1章 项目需求分析
1.1 项目建设背景
在当今互联网的浪潮中,企业互联网技术发生了巨大的变化,架构模式从巨型架构,单层架构,SOA架构到微服务、无服务器架构;开发流程从瀑布式到敏捷开发、DevOps;部署方式从单一应用服务器到云端,从虚机到容器;基础设施从托管,自建到私有云,公有云,混合云;展示形态从pc端、移动端到多端化;从各类应用系统,部分公共组件到公共支撑平台,大数据平台。
弹性伸缩是云资源高效使用的一个重要特性,也是实现业务敏捷的一个关键手段,是企业用户非常关注的应用场景。
容器云,是轻量化PaaS平台的一种容器化实现方式。是基于容器技术、容器调度编排技术和支撑容器运行操作系统技术、分布式技术上构建的云平台。从PaaS功能来说,PaaS提供应用开发、应用托管、应用运维等能力。也就是说在PaaS上,客户可以开发、测试应用,用户可以托管应用到PaaS的运行时环境,同时PaaS提供给客户应用服务运维的能力(比如应用管理、监控、日志、安全等)。PaaS平台是以应用开发为中心,以解决应用全生命周期管理、公共支撑平台服务、基础资源的高效利用。从应用的开发、部署,到运维的全流程生命周期管理,实现应用的自动伸缩、弹性扩展、灰度发布以及监控告警、故障分析、自动迁移、自动恢复;提供丰富的预集成服务, 把通用的软件能力服务化,使得应用能快速拥有分布式的高可用性、高可扩展性;通过对底层资源的抽象和资源层的隔离,尽可能地共享或平摊资源,以提高资源整体使用率,从而降低基础设施的投入。
容是就是满足互联网业的新技术需求。
1.2 业务需求
根据项目整体规划,功能性需求总共分为三个部分,容器云平台管理和资源管理、多租户管理和应用管理,标准化交付和管理。各部分的关系梳理如下:
平台管理要求具备平台资源管理和资源隔离、租户账户管理、公共镜像库(中间件商店)、分层安全机制、高可用、易于扩展/更新/迁移能力。预留将来可扩展支持混合云管理等能力。重点在于资源管理,具备向租户按需提供基础设施资源的能力。平台管理同时创建租户账号,维护公共镜像仓库和仓库中镜像。
多租户特性需求要求具备租户管理、租户资源管理、租户应用管理、微服务及服务治理、私有镜像库、租户安全等能力。重点是租户应用管理及服务治理能力,以及安全能力。同时提供维护租户下用户、权限、角色、组织架构、分配的资源,租户私有镜像仓库的能力。租户账号由容器员平台管理员创建,租户使用租户账号登录容器云平台租户管理界面,维护租户下的组织架构、用户、角色、权限、资源、应用、服务等。
标准化交付的对象是镜像,向公共镜像仓库或私有镜像仓库构建镜像。公共镜像是指对所有租户可用的镜像,通常由平台管理员来维护。私有镜像是租户自己的镜像,仅对租户自身可见。同时支持镜像上传下载同步等能力。重点是构建持续集成工具链(使用Jenkins),持续集成止于镜像仓库,以镜像仓库为媒介实现持续部署、持续反馈、持续改进闭环DevOps流程。
根据每部分的详细需求,我们定义平台管理员视图和租户视图,以及持续集成流程实现标准化交付能力,详细功能如下:
6
平台初始化之后只有平台管理员账户,租户账户平台管理员按需创建。安全需要覆盖全方位,确保每个层次都具备可靠的安全机制。
必须建立基于Spring Cloud框架的微服务支持。
1.3 技术需求
容器服务 (Container Service)是一种高度可扩展的高性能容器管理服务,服务于应用的完整生命周期。通过Docker容器来运行或编排应用程序,您将不再需要安装、运维、扩展自己的集群管理基础设施。容器服务具有简单易用、灵活弹性、秒级部署等特点,通常具备以下能力:
1.3.1 应用托管
提供大规模容器集群管理、资源调度、容器编排、代码构建,屏蔽了底层基础构架的差异,简化了分布式应用的管理和运维。
1.3.2 内部DNS服务
为每个服务提供二级域名和端口映射,服务之间可通过内网域名进行访问,不会受容器重启、迁移或扩展的影响。服务之间还可通过环境变量链接起来。
7
1.3.3 弹性伸缩
容器服务的弹性伸缩通常于秒间对容器进行横向扩展。同时可对CPU、内存等负载数据进行实时监控,实现全自动/半自动弹性伸缩。
1.3.4 负载均衡
提供四层、七层负载均衡将流量引导、分摊到服务每个实例,并根据容器状态自动对负载均衡进行实时配置,提高应用整体可用性及吞吐量。
1.3.5 应用性能监控
提供全方位的日志监控,自动搜集容器输出日志,并可保留已中断的容器的历史日志。可对容器性能作全方位实时监控。
1.3.6 灰度升级和滚动更新
灰度升级是指在升级过程中,在用户无感知的情况下做到不停机,平滑的升级。灰度发布可以保证整体系统的稳定。
1.3.7 容灾容错
具有独特的容器仓技术,可以保证容器实例的副本数量即使在某个主机出错的情况下也能维持不变。
1.4 非功能性需求
容器云平台性能需求中最重要的是安全性、可扩展性和稳定性以及满足业务服务部署管理的性能需求、用户操作友好性需求。以满足容器云平台升级、迁移、更新、扩展需求。
8
可用性:可用性是平台可靠性、稳定性等的综合体现,可靠稳定的平台可用性才高。通常可用性是评判一个平台或系统的最重要维度,可用的平台才能考虑性能等其他维度。
可扩展性:可扩展性或者弹性是容器云平台或者云平台的价值所在。容器云平台需要提供弹性的基础设施资源,用于业务应用的弹性扩展。
界面友好:在每一个用户登录后都有个工作台来总括该用户的资源分配使用、应用部署运行、系统组件运行状况等;然后通过链接可以直接跳转查看详情。各环节相关联成为一个闭环。在采用微服务架构之后,统一是服务和应用建设,不再有“项目”概念,一切皆是服务。服务编排为应用。
性能:性能分两个方面,一是平台的性能需求,另一个是服务的性能需求。平台的性能往往决定着其上部署的单个服务实例的最大性能。平台的性能往往取决于平台基础设施资源的能力。也就是平台的硬件设施配置。另一方面,服务的扩展能力,负载均衡能力也是实现高性能的重要方式。
1.5 性能指标需求
开发测试效率达到每天20次的迭代 应用并发峰值达到3万TPS的
单台物理机可运行约100个容器实例,比虚拟机提高10倍左右
9
第2章 项目总体设计
2.1 总体架构
2.1.1 建设原则
建设容器云平台的目的是用来承载业务应用的,为了实现IT融合、应急响应、敏捷开发、应用交付、权限认证、弹性伸缩、异常迁移、环境一致性、高可用、网络隔离、资源配额、日志收集、健康检查、监控告警等能力;中远期目标是通过采用微服务架构、DevOps方等逐步构建企业的公共支撑平台台。容器云平台的方案设计需要遵循建设容器云的目的和需求,满足以下设计原则:
高可用原则:关键核心组件,都要求高可用设计、高可用部署,保障在
服务器宕机等故障情况下,应用不受影响。
先进性原则:平台的建设所采用的技术是主流云计算技术,确保平台在
一定时间内具备稳定的更新和保持先进性。
成熟性原则: 技术选型确保先进性的技术上,采用成熟的技术,确保平
台功能稳定。
开放性和兼容性原则:标准化或通用的技术手段兼容主流的设备和系
统、软件、工具等。
可靠性原则:提供可靠的计算、存储、网络等资源,在平台、服务、应
用、组件等方面实现高可用,避免单点故障,保证业务的连续性。 可扩展性原则:采用分布式架构,支持在不更改整体架构的前提下进行
系统扩容和业务范围的扩展。平台的计算、存储、网络资源等根据业务应用工作负载的需要进行动态伸缩。
松耦合原则:容器云平台架构采用松耦合架构,平台各组件提供开放标
准的API接口,方便客户已有系统的集成或平台组件的扩展和替换。
安全性原则:安全无处不在。支持覆盖全方位的安全机制。横向:弹性
伸缩、负载均衡、异常迁移等;纵向:协议层加密、网关、访问控制、过滤、限流、熔断、禁用root用户运维权限、系统资源用户受限访问、资源隔离、网络策略等。容器云平台应该在各个层面进行完善的安全防护,确保信息的安全和私密性。
用户友好原则:注重用户体验,提供简洁便利的操作体验,避免二义
性,界面操作保证流畅简单。
隔离性原则:容器云平台租户之间实现隔离,租户和平台管理之间实现
隔离。
生态原则:容器云平台需要构建生态体系,提供和集成认证、权限、配
置、日志、监控、告警、注册发现、网关等能力,支撑真正的企业业务应用。
2.1.2 技术架构
容器云平台是以承载业务应用为中心的,其设计重点在于为业务应用的运营提供资源和分租户管理运维业务应用。同时为了提升敏捷开发和测试的能力,提升持续集成、持续反馈、持续响应的能力,实现合理的DevOps流程和工具选择。容器云平台架构设计时, 遵循设计原则,明确设计目标,提供真正意义上的企业级方案,权限、职责、范围要明确定义。仅有容器或容器调度管理不足以支撑业务应用,需要构建容器云生态组件体系,包括认证、权限、配置、日志、监控、告警、注册发现、网关等组件。容器云平台各生态组件松耦合部署,采用开放性标准API接口,可以根据需要进行扩展或替换。
平台技术架构如下图所示:
11
平台总体架构以业务应用管理为核心,覆盖业务应用全生命周期过程。容器云平台基于容器技术,通过容器编排和调度框架,实现对基础设施资源层的管理和对应用服务的资源供给,提供计算、网络、存储等资源。容器云平台提供整个平台的日志服务、监控服务、认证服务、权限服务、多租户能力、镜像仓库等基础组件。
租户管理和租户应用管理提供灵活的组织架构、用户、角色、权限的定义和业务应用、服务的运营阶段管理。CI/CD实现业务应用、服务的开发、测试、部署发布阶段管理,平台完整实现业务应用、服务的整个生命周期管理能力。必须支持项目中微服务应用中心以及身份认证中心的上线,以及互联网应用、大数据应用等。
2.1.2.1 平台管理架构设计
平台管理重点在于资源管理,资源划分为集群、节点(CPU、内存)、存储(本地、远程存储)、网络。容器云平台可能有多集群,每个集群在创建时定义集群网络,管理容器云节点,存储。一个集群可能有一到多个逻辑分区,分区是资源的逻辑划分。容器云的资源要支持标签,通过标签来分类资源,在应用/服务部署时作为资源选择的依据。根据选择的网络类型来确定是否支持网
12
络策略定义,网络策略从网络层实现网络隔离。容器云平台支持认证、日志、监控告警、计量计费等基础功能,这些组件和平台是松耦合架构,但各组件之间需要实现统一认证、单点登录能力。
容器云平台Dashboard展示平台资源使用情况(总的资源、已使用、可用)以及资源使用最多的top 10租户及使用明细;平台节点情况(节点配置、节点资源占用、可用,节点上Pods或容器数量,资源紧张的予以不同色彩提示);平台Pods、Containers运行情况(Pods量、状态、异常;平台组件使用的Pods和租户应用使用的Pods,两者要分开);公共镜像统计;平台组件运行状况。
租户账户由平台管理员创建,包括租户名称、账号、密码、租户联系方式、租户资源分配。公共镜像仓库由平台管理员来维护,提供平台级的中间件镜像服务等。
系统设置定义容器云平台级配置和设置。权限管理提供不同级别的平台管理员权限,比如平台管理员为每一个集群创建集群管理员来维护其的容器集群。
2.1.2.2 租户管理架构设计
租户管理重点在于应用管理和服务治理能力。一切围绕业务应用的运营、治理为中心。
13
租户Dashboard展示当前租户或用户下主要业务应用或资源使用最多的若干业务应用的运行状况。比如应用的负载、响应时间、并发量、异常请求数;最近5分钟、30分钟、1小时、4小时、8小时、24小时、48小时等运行情况统计;业务应用下服务实例的数量(Pods/容器数量)、运行情况、异常次数,处理请求数、平均响应时间、最大响应时间等;展示业务应用使用的资源情况等,历史资源使用,总的和分应用图形展示。
权限中心提供对租户下组织架构、用户、角色、权限的管理维护,支持灵活的组织架构和角色定义。租户资源由平台管理员分配,咱不考虑支持自动扩展,分配固定资源,若资源不足的告警再次申请扩容。每个租户有自己的私有镜像仓库。服务/应用镜像存储于私有镜像仓库。租户可以贡献镜像到公有镜像仓库供所有租户使用,经平台管理员验证后公开可用。
应用管理和服务治理是租户的核心工作。容器云平台为租户提供注册发现机制、服务配置管理中心、服务网关实现访问控制/路由/过滤等安全机制、集中日志中心、链路跟踪、监控告警中心、任务调度中心、弹性伸缩、负载均衡、健康检查等服务治理能力。
2.1.2.3 持续集成/持续发布的流程设计
采用Jenkins工具构建持续集成流程。JDK1.8.171,代码仓库是用SVNv1.7,源码检查工具Sonar ,构建工具Maven 3.3.9 or Gradle 4.0, 镜像仓库DTR or Clair,镜像扫描工具,缺陷管理工具Jira。单元测试Junit。自动化测试Selenium,自动化运维Ansible, 拓扑关系图支持zipkin。开发工具Eclipse, 测试工具Jmeter。
14
Eclipse集成Sonar完成源码检查,代码完成之后提交到代码仓库GIT,Jenkins实现对GIT中的代码更改的监控,自动触发代码编译、构建过程,完成后生成jar 或者war文件或镜像文件)。
单元测试过程中如果不通过则自动生成邮件通知源码提交人。
测试过程首先构建该服务相关测试域,即该服务依赖的服务的集合(根据配置自动拉取镜像完成部署)。QA则依据需求提供测试数据,输入测试数据完成测试。有异常则发邮件通知,确认是缺陷转入缺陷管理。完成测试后镜像文件同步到生产镜像仓库。测试和生产环境是隔离的,通过跳转机来完成,只有经过镜像安全扫描确认安全的镜像才可以被同步到生产环境镜像仓库。
生产环境中镜像根据需要进行部署和发布
2.1.3 部署架构
2.2 技术体系和技术路线
2.2.1 主要技术1
15
2.2.2 主要技术2
2.2.3 主要技术N
第3章
功能设计
容器云平台是一个生态体系,包括容器云平台及支撑其上的业务应用和服务体系架构所需的各项组件,所有的组件可以定义为平台级和服务级,但也有些组件既服务于平台也服务于业务应用,比如日志中心组件。
3.1 集中日志中心
集中日志中心是容器云平台日志的采集、存储、汇聚、分析、展示的组件,采用基于ELK + Graylog等工具来实现集中日志中心的能力。提供基于中性化集群的管理、查询功能。支持标准输出日志采集、文件日志采集、log4j日志文件采集,kafka数据采集等。
16
日志采集工具除了logstash,另外也采用了filebeat、metricbeat、packetbeat、winlogbeat、auditbeat、heartbeat等工具。数据采集组件支持Fluentd、Logstash、filebeat等。需要注意的是,平台日志和应用日志是两个层次,可以用集中日志中心来集中管理平台和应用的日志,因此,集中日志中心的权限体系需要支持租户权限体系,平台管理员就是一个特殊租户,需要实现和打通各组件之间的统一认证和权限能力。日志中心需要支持通用的ELK方案,但又不能和平台紧耦合,任何一个组件的设计都需要实现插拔的能力。
3.2 监控告警中心
监控告警中心是容器云平台监控平台各组件运行状况、监控告警规则定义、收集并展示平台运行情况的组件。监控告警中心是运维人员的重要助手,没有它就如同两眼一抹黑,难以有效保障容器云平台的正常运行,无法预测系统运行资源使用,就无法保障其可用性。监控告警中心采用可配置插件工具,使用图表工具实现监控面板,展示监控内容项,另外自定义实现一些监控面板,以更好的集成到平台不同的组件中展现相关监控内容。
17
3.3 API网关
API网关是实现业务应用安全和服务治理的重要组件。可于容器云平台,但由于其性,我们把它作为一个服务组件来建设。API网关也是实现OpenAPI管理和提供稳定的接口能力的组件,通常包括API网关、API 管理工具。
3.4 服务注册中心
服务注册发现中心是提供服务注册和查阅的地方。一个服务要给其他客户使用,就需要根据注册机制发布到注册中心,提供一个公开的地址,方便客户查阅。客户如果想使用某些服务,通过注册中心进行查阅,找到合适的服务及其地址,就可以在自己的服务中调用。服务注册发现中心和容器云平台自身的注册发现组件不是一个内容,通常作为容器云平台的外部组件来支撑整个服务或微服务体系。要和API网关等组件紧密结合实现服务治理。
3.5 服务配置中心
服务配置中心是容器云平台支撑微服务必不可少的组件,也是为了更好的利用容器的特性,支持运行时服务配置更新,解耦合服务配置和服务实现框架。服务配置中心是的组件,也可应用于其他平台和系统。在容器云平台,可以扩展支持不同层级的配置,比如应用层、服务层、实例层,根据实际需要来定义和管理业务应用和服务的配置。Config Client 和Config Server之间采用JMS或Kafka等消息组件作为通信组件。
19
3.6 统一认证中心
认证中心首先支持容器云平台各生态组件之间的统一认证和授权,和权限中心组件集成实现各组件的访问控制。认证中心提供单点登录能力。
3.7 平台管理
平台管理是容器云平台管理员视角或平台管理员角色所能操纵的功能。重点是基础设施资源管理和租户账户管理。理论上这一块更象是IaaS层的能力,不过目前Kubernetes等实现有些不同,无法做资源虚拟化,不过可以利用IaaS层的虚拟化能力,但仍然需要做一些额外的工作,比如标签标记不同的资源类型。和IaaS层提供不同的虚拟机服务类似相同。
3.7.1 基础设施资源中心
基础设施资源包括计算资源、存储资源、网络资源以及操作系统资源等,为整个容器云平台提供资源服务。通过标签来标记不同的资源,以满足不同的服务对资源的个性需求。基础设施资源不拘泥于物理机或者虚拟机的选择,按需进行资源分配和管理。资源分配以节点为基本单元,分区为节点的集合。但对于每个节点可以设置资源限额,设置资源预留额等,以实现更细粒度的资源控制。
容器云平台在实现时需要考虑充分的利用和共享资源。
3.7.2 租户账户管理
租户账户统一由平台管理,每个租户申请或注册一个租户账户,由平台管理员检查评估并确认(开通或不开通),分配所需基础设施资源。同时维护租户账户的基本信息、登录密码、认证方式等。
20
3.7.3 平台权限中心
平台权限主要考虑多平台管理员的情况下,对不同平台管理员进行授权,权限中心模块可以和租户权限中心使用同一个组件,平台管理是一个特殊的租户(平台管理员看到的权限和租户看到的权限列表是不一样的)。
3.7.4 公共镜像仓库
平台管理还有一项重要的工作就是维护公共的中间件镜像,比如Kafka、Redis、JDK、Tomcat、MySQL等,这样所有租户都可以使用这些中间件镜像快速部署为自己的服务,用于快速的环境搭建、测试,甚至是生产部署。企业级中间件的部署建议统一来考虑,容器云平台提供的中间件更多的适合敏捷的开发测试。
3.7.5 平台日志中心
平台日志集成到日志中心,只管理查看平台的日志。
3.7.6 监控告警中心
平台监控告警中心侧重于平台各组件的运行情况监控,不监控业务服务的运行情况,集成监控中心组件。
3.7.7 平台设置
容器云平台设置包括Docker、Docker deamon、Kubernetes等配置选项,以及平台集成LDAP、可选组件、界面logo、背景等设置和配置。
3.8 多租户管理
多租户机制和能力是容器云平台的核心,因为最终容器云平台是为了支撑业务应用的。平台管理为租户提供基础设施资源,租户利用云资源管理和运营
21
自己的业务应用。租户通过CI持续集成流程构建业务服务镜像,上传到镜像仓库。镜像仓库中的镜像经过安全扫描安全的镜像可以部署到容器云平台,每个租户都有自己的私有镜像库,用于存储租户自己创建的镜像。服务可以部署为1到多个服务实例,服务部署后注册到注册中心,通过配置中心来实现服务配置更新,可以实现实例级配置更新。由服务网关层实现服务非业务逻辑功能,比如认证、路由、转换等。
3.8.1 应用管理
应用管理是租户的核心。能够提供便利、完善的应用和服务管理能力,是能否赢得租户的关键,我们要认识到容器云平台只是个工具,工具的好坏一定有评判标准。用起来顺手,是最基本的要求。
应用管理中镜像部署为“业务服务”,注册到服务注册中心;每个服务可以部署一到多个“服务实例”,或者根据业务需要实现自动弹性伸缩,一个或多个服务通过服务编排为“业务应用”。请求通过负载均衡器分发到不同的服务实例上,并行处理,每个服务一个注册地址,不论有部署有多少服务实例,都通过负载均衡器来实现负载均衡。基于弹性伸缩的需求,负载均衡需要支持多种策略,以支持不同场景下弹性伸缩要求。
3.8.2 服务注册发现中心
租户部署的服务都首先注册到容器云平台服务注册中心,租户内部的调用无需经过外部的注册中心。租户若需要调用其他租户的服务,则需要从服务注册发现中心查找合适的服务。
这里需要注意的是,为了充分利用容器的特性,我们把服务的注册机制分为两个层次,一个是容器层的服务注册发现机制,一个是容器云平台外的服务注册发现机制。需要明确认识到这两个服务注册发现层次的不同。
22
3.8.3 服务配置中心
镜像在部署过程中,转到服务配置页面进行参数配置,完成配置之后实现部署并启动。配置共分三层:应用层配置、服务层配置和实例层配置。通常情况下是服务层配置,不需要控制每一个服务实例。但某些情况下也可能需要对每一个服务实例进行配置,或者采用单实例服务部署方式。容器云平台需要和服务配置中心组件集成,实现服务在容器云平台的配置和更新。
3.8.4 服务网关
服务网关是服务实现服务治理的重要组件,所有租户间的服务通过API网关提供统一的API服务(租户内部服务成为私有服务,租户间服务成为公有服务,公有服务通过API 网关定义开放API,供其他租户使用),隔离服务实现和API接口定义,服务网关提供了稳定的API接口层,服务的更新和替换不会影响API提供的服务。非兼容性的更新部署为新的API服务。服务网关分离业务服务的所有非业务功能,业务开发人员专注于业务逻辑的设计研发,不再考虑认证授权、访问控制等安全机制以及限流、限额、熔断、优先级配置等能力。
3.8.5 权限中心
权限中心支撑租户组织架构、人员、角色、权限的设置需求,以满足不同租户的不同场景要求。权限来自于平台功能项的操作粒度(平台操作员和租户看到的功能项是不同的),不同的权限集合组成定义为一个角色。组织架构和人员可以被赋予某种角色。组织架构下的所有人员继承组织架构的角色权限,一个人员可以被赋予多种角色。租户可以定义基于角色的权限管理体系,支持不同的组织架构和层级。权限中心可以集成LDAP,证书中心、认证中心等功能实现企业级各系统的统一认证、权限管理服务。
23
3.8.6 链路跟踪
以图形化展示服务之间的调用关系,更清晰的定位异常节点,跟踪信息。链路跟踪可以有效避免服务之间的循环调用,尽可能的减少调用链路长度。更短的调用链路也是性能、安全等方面的要求。
3.8.7 负载均衡
负载均衡分容器层负载均衡和网关层负载均衡。在我们的整个平台生态系统中不建议采用客户端负载均衡机制。服务实例之间采用容器层负载均衡,通常可以考虑容器平台的负载均衡机制,但需要考虑弹性伸缩时的伸缩策略,不能采用随机策略来收缩容器,必须确保容器已经完成的业务请求的处理才可以被回收。
3.8.8 基础设施资源中心
租户的基础设施资源是由平台来分配的。通常情况下租户不需要再对自己的资源进行分配,我们暂不考虑租户的资源管理或再分配需求,只考虑租户使用分配的资源需求。资源中心可以查看已分配资源及在使用资源,空闲资源等信息,也可以再申请资源。
3.8.9 镜像仓库
租户自己构建的镜像保存于租户自己的私有镜像仓库中,同时租户也可以使用公共镜像仓库中的镜像。两个镜像仓库是分开的。租户的私有镜像仓库可能有多个,租户可以通过镜像仓库配置连接到不同的镜像库。
24
3.8.10 租户日志中心
租户日志中心主要采集租户部署应用的日志信息。容器中应用服务日志输出到标准输出,通过Logstash的组件来从标准输出中采集日志,每个服务的每条日志有固定的格式和标签来区分。集成集中日志中心实现租户日志管理。
3.8.11 监控告警中心
监控告警中心和链路跟踪机制、日志中心等共同实现业务服务、实例运行情况的监控及异常告警,协助定位分析。集成监控告警中心组件。
3.8.12 任务调度中心
任务调度中心主要支持批量任务、定时任务的处理。
3.9 标准化交付和管理
标准化交付就是从源码到标准化镜像构建的流程,包括源码开发、单元测试、源码管理、源码检查、编译、构建、上传镜像仓库、镜像检查、测试环境部署测试、测试用例管理、缺陷管理、文档管理等。主要实行持续集成CI流程。标准化交付作为容器云平台的一个组件可部署,和容器云平台之间通过镜像仓库实现标准镜像传递。
3.9.1 持续集成工具及流程
持续集成起于源码研发,止于镜像仓库。持续集成涉及代码编辑工具、源码管理工具、源码检查、编译、打包、生成镜像,以及缺陷管理、文档管理、API接口管理等众多的工具。
25
3.9.2 镜像仓库
镜像仓库是容器云平台的关键组件之一,是持续集成和应用部署运营的媒介,包括Server端和Client端。目前有众多的开源实现。安全性有待加强。
26
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo6.cn 版权所有 赣ICP备2024042791号-9
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务