论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
ToB圈子
›
虚拟化.容器.超融合.云计算
›
云计算圈
›
某券商容器云项目方案设计最佳实践
某券商容器云项目方案设计最佳实践
南飓风
金牌会员
|
2025-3-6 19:58:40
|
显示全部楼层
|
阅读模式
楼主
主题
985
|
帖子
985
|
积分
2955
作者:王作敬 汪照辉
本方案设计基于我们整理的容器云平台可行性分析报告,和对容器云平台需求的具体分析和设计,以及在我们和容器云厂商BoCloud博云在容器云项目实行方案基础上整理而成。本文为非正式实行文档,仅用于技术讨论和交换。我们认为这样的文档是容器云平台生产就绪的一个重要标准,也是和厂商沟通、确认需求和验证功能的重要载体。本文档是容器云项目方案设计主文档,尚有各组件的具体方案设计文档作为增补。
一、容器云平台需求概述
平台需求可以分为功能性需求和非功能性需求两部分。
平台功能需求概述
根据容器云平台项目需求说明书,功能性需求总共分为三个部分,容器云平台管理和资源管理、多租户管理和应用管理,标准化交付和管理。各部分的关系梳理如下:
平台管理要求具备平台资源管理和资源隔离、租户账户管理、公共镜像库(中间件商店)、分层安全机制、高可用、易于扩展/更新/迁移本领。预留将来可扩展支持多云管理等本领。重点在于资源管理,具备向租户按需提供基础办法资源的本领。平台管理同时创建租户账号,维护公共镜像仓库和仓库中镜像。
多租户特性需求要求具备租户管理、租户资源管理、租户应用管理、微服务及服务治理、私有镜像库、租户安全等本领。重点是租户应用管理及服务治理本领,以及安万本领。同时提供维护租户下用户、权限、角色、构造架构、分配的资源,租户私有镜像仓库的本领。租户账号由容器员平台管理员创建,租户利用租户账号登录容器云平台租户管理界面,维护租户下的构造架构、用户、角色、权限、资源、应用、服务等。
标准化交付的对象是镜像,向公共镜像仓库或私有镜像仓库构建镜像。公共镜像是指对所有租户可用的镜像,通常由平台管理员来维护。私有镜像是租户自己的镜像,仅对租户自身可见。同时支持镜像上传下载同步等本领。重点是构建持续集成工具链(利用Jenkins),持续集成止于镜像仓库,以镜像仓库为媒介实现持续部署、持续反馈、持续改进闭环DevOps流程。
根据每部分的具体需求,我们界说平台管理员视图和租户视图,以及持续集成流程实现标准化交付本领,具体功能如下:
平台初始化之后只有平台管理员账户,租户账户平台管理员按需创建。安全需要覆盖全方位,确保每个层次都具备可靠的安全机制。
容器云平台面临着支持客户中心和服务中心的上线需求。必须建立基于SpringCloud框架的微服务支持。
非功能性需求概述
容器云平台非功能性需求最重要的是安全性、可扩展性和稳定性以及满足业务服务部署管理的性能需求、用户操作友爱性需求。以满足容器云平台升级、迁移、更新、扩展需求。
可用性:可用性是平台可靠性、稳定性等的综合体现,可靠稳定的平台可用性才高。通常可用性是评判一个平台或系统的最重要维度,可用的平台才能思量性能等其他维度。
可扩展性:可扩展性大概弹性是容器云平台大概云盘算平台的价值所在。容器云平台需要提供弹性的基础办法资源,用于业务应用的弹性扩展。
界面友爱:在每一个用户登录后都有个Dashboard来总括该用户的资源分配利用、应用部署运行、系统组件运行状况等;然后通过链接可以直接跳转查看详情。各环节相关联成为一个闭环。需要注意的是诸如“项目”等是开发测试阶段的概念,在运维过程中统一利用应用或服务。在采取微服务架构之后,统一是服务和应用建设,不再有“项目”概念,统统皆是服务。服务编排为应用。
性能:性能分两个方面,一是平台的性能需求,另一个是服务的性能需求。平台的性能每每决定着其上部署的单个服务实例的最大性能。平台的性能每每取决于平台基础办法资源的本领。也就是平台的硬件办法配置。另一方面,服务的扩展本领,负载均衡本领也是实现高性能的重要方式。
二、容器云平台方案设计原则
建设容器云平台的目的是用来承载业务应用的,为了实现IT融合、应急响应、敏捷开发、应用交付、权限认证、弹性伸缩、异常迁移、情况同等性、高可用、网络隔离、资源配额、日志网络、健康检查、监控诉警等本领;中远期目标是通过采取微服务架构、DevOps方法论等逐步构建企业的服务中台。
容器云平台的方案设计需要遵循建设容器云的目的和需求,满足以下设计原则:
高可用原则:关键核心组件,都要求高可用设计、高可用部署,保障在服务器宕机等故障情况下,应用不受影响。
先进性原则:平台的建设所采取的技术是业界主流云盘算技术,确保平台在一定时间内具备稳定的更新和保持先进性。
成熟性原则: 技术选型确保先进性的技术上,采取成熟的技术,确保平台功能稳定。
开放性和兼容性原则:标准化或通用的技术手段兼容主流的设备和系统、软件、工具等。
可靠性原则:提供可靠的盘算、存储、网络等资源,在平台、服务、应用、组件等方面实现高可用,避免单点故障,保证业务的连续性。
可扩展性原则:采取分布式架构,支持在不更改整体架构的前提下进行系统扩容和业务范围的扩展。平台的盘算、存储、网络资源等根据业务应用工作负载的需要进行动态伸缩。
松耦合原则:容器云平台架构采取松耦合架构,平台各组件提供开放标准的API接口,方便客户已有系统的集成或平台组件的扩展和替换。
安全性原则:安全无处不在。支持覆盖全方位的安全机制。横向:弹性伸缩、负载均衡、异常迁移等;纵向:协议层加密、网关、访问控制、过滤、限流、熔断、禁用root用户运维权限、系统资源用户受限访问、资源隔离、网络策略等。容器云平台应该在各个层面进行完善的安全防护,确保信息的安全和私密性。
用户友爱原则:注重用户体验,提供简洁便利的操作体验,避免二义性,界面操作保证流畅简朴。
隔离性原则:容器云平台租户之间实现隔离,租户和平台管理之间实现隔离。
生态原则:容器云平台需要构建生态体系,提供和集成认证、权限、配置、日志、监控、告警、注册发现、网关等本领,支持真正的企业业务应用。
三、容器云平台项目方案设计目标
容器云平台项目方案设计是为了基于容器云平台需求说明书来实现建设容器云平台的目标。容器云平台需求包罗平台和资源管理、租户和应用管理和标准化交付和管理三部分,方案设计目标就是为了满足这些部分的需求,实现业务目标。同时对于平台重点组件和本领进行设计,指导项目实行和运营,解决技术难点和疑点问题。
容器云平台项目方案设计的目标界说如下:
1. 界说容器云平台范围,需求分析
2. 界说容器云平台总体架构和组件
3. 界说容器云平台各组件本领
4. 界说容器云平台交互UI界面
5. 界说容器云平台的部署架构
6. 确定容器云平台的关键技术选型
7. 界说微服务技术架构、服务治理框架和模型(基于容器平台)
四、容器云平台总体架构设计
整体架构的设计思路说明
容器云平台是以承载业务应用为中心的,其设计重点在于为业务应用的运营提供资源和分租户管理运维业务应用。同时为了提升敏捷开发和测试的本领,提升持续集成、持续反馈、持续响应的本领,实现公道的DevOps流程和工具选择。
容器云平台架构设计时, 遵循设计原则,明确设计目标,提供真正意义上的企业级方案,权限、职责、范围要明确界说。仅有容器或容器调度管理不足以支持业务应用,需要构建容器云生态组件体系,包罗认证、权限、配置、日志、监控、告警、注册发现、网关等组件。容器云平台各生态组件松耦合部署,采取开放性标准API接口,可以根据需要进行扩展或替换。
总体架构设计图
深刻理解容器云平台是承载业务应用的,平台总体架构以业务应用管理为核心,覆盖业务应用全生命周期过程。容器云平台基于容器技术,通过容器编排和调度框架,实现对基础办法资源层的管理和对应用服务的资源供给,提供盘算、网络、存储等资源。容器云平台提供平台级日志服务、监控服务、认证服务、权限服务、多租户本领、镜像仓库等基础组件。
租户管理和租户应用管理提供灵活的构造架构、用户、角色、权限的界说和业务应用、服务的运营阶段管理。CI/CD实现业务应用、服务的开发、测试、部署发布阶段管理,平台完备实现业务应用、服务的整个生命周期管理本领。以支持我司微服务应用客户中心、服务中心以及产物中心的上线,以及互联网应用、大数据应用等。
平台管理架构设计
平台管理重点在于资源管理,资源分别为集群——节点(CPU、内存)、存储(当地、远程存储)、网络。容器云平台大概有多集群,每个集群在创建时界说集群网络,管理容器云节点,存储。一个集群大概有一到多个逻辑分区,分区是资源的逻辑分别。容器云资源支持标签,通过标签来分类资源,在应用/服务部署时作为资源选择的依据。根据选择的网络类型来确定是否支持网络策略界说,网络策略从网络层实现网络隔离。
容器云平台支持认证、日志、监控诉警、计量计费等基础功能,这些组件和平台是松耦合架构,但各组件之间需要实现统一认证、单点登录本领。
容器云平台Dashboard展示平台资源利用情况(总的资源、已利用、可用)以及资源利用最多的top 10租户及利用明细;平台节点情况(节点配置、节点资源占用、可用,节点上Pods或容器数量,资源紧张的予以差别色彩提示);平台Pods、Containers运行情况(Pods量、状态、异常;平台组件利用的Pods和租户应用利用的Pods,两者要分开);公共镜像统计;平台组件运行状况。
租户账户由平台管理员创建,包罗租户名称、账号、密码、租户联系方式、租户资源分配。
公共镜像仓库由平台管理员来维护,提供平台级的中间件镜像服务等。
系统设置界说容器云平台级配置和设置。
权限管理提供差别级别的平台管理员权限,比如平台管理员为每一个集群创建集群管理员来维护其独立的容器集群。
租户管理架构设计
租户管理重点在于应用管理和服务治理本领。统统围绕业务应用的运营、治理为中心。
租户Dashboard展示当前租户或用户下主要业务应用或资源利用最多的若干业务应用的运行状况。比如应用的负载、响应时间、并发量、异常哀求数;最近5分钟、30分钟、1小时、4小时、8小时、24小时、48小时等运行情况统计;业务应用下服务实例的数量(Pods/容器数量)、运行情况、异常次数,处理惩罚哀求数、平均响应时间、最大响应时间等;展示业务应用利用的资源情况等,历史资源利用,总的和分应用图形展示。
权限中心提供对租户下构造架构、用户、角色、权限的管理维护,支持灵活的构造架构和角色界说。
租户资源由平台管理员分配,咱不思量支持主动扩展,分配固定资源,若资源不足的告警再次申请扩容。
每个租户有自己独立的私有镜像仓库。服务/应用镜像存储于私有镜像仓库。租户可以贡献镜像到公有镜像仓库供所有租户利用,经平台管理员验证后公开可用。
应用管理和服务治理是租户的核心工作。容器云平台为租户提供注册发现机制、服务配置管理中心、服务网关实现访问控制/路由/过滤等安全机制、集中日志中心、链路跟踪、监控诉警中心、任务调度中心、弹性伸缩、负载均衡、健康检查等服务治理本领。
CI流程设计
采取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。
Eclipse集成Sonar完成源码检查,代码完成之后提交到代码仓库SVN,Jenkins实现对SVN代码更改的监控,主动触发代码编译、构建过程,完成后生成jar 大概war文件或镜像文件(构建服务器需要安装Docker,操作系统版本要求CentOS7.4或以上)。单元测试过程中如果不通过则主动生成邮件关照源码提交人。
测试过程首先构建该服务相关测试域,即该服务依赖的服务的聚集(根据配置主动拉取镜像完成部署)。QA则依据需求提供测试数据,输入测试数据完成测试。有异常则发邮件关照,确认是缺陷转入缺陷管理。
完成测试后镜像文件同步到生产镜像仓库。测试和生产情况是隔离的,通过跳转机来完成,只有经过镜像安全扫描确认安全的镜像才可以被同步到生产情况镜像仓库。
生产情况中镜像根据需要进行部署和发布。
五、容器云平台各模块及组件功能界说
容器云平台是一个生态体系,包罗容器云平台及支持其上的业务应用和服务体系架构所需的各项组件,所有的组件可以界说为平台级和服务级,但也有些组件既服务于平台也服务于业务应用,比如日志中心组件。我们也曾和BoCloud博云等厂商深入讨论过相关组件建设,相互都有受益。
集中日志中心
集中日志中心是容器云平台日志的收罗、存储、汇聚、分析、展示的组件,采取基于ELK + Graylog等工具来实现集中日志中心的本领。提供基于中性化集群的管理、查询功能。支持标准输出日志收罗、文件日志收罗、log4j日志文件收罗,kafka数据收罗等。
日志收罗工具除了logstash,另外采取filebeat、metricbeat、packetbeat、winlogbeat、auditbeat、heartbeat等工具。
数据收罗组件支持Fluentd、Logstash、filebeat等。
需要注意的是,平台日志和应用日志是两个层次,可以用集中日志中心来集中管理平台和应用的日志,因此,集中日志中心的权限体系需要支持租户权限体系,平台管理员就是一个特殊租户,需要实现和打通各组件之间的统一认证和权限本领。
日志中心的设计和BoCloud博云也讨论过很多次,需要支持通用的ELK方案,但又不能和平台紧耦合,任何一个组件的设计都需要实现插拔的本领。
监控诉警中心
监控诉警中心是容器云平台监控平台各组件运行状况、监控诉警规则界说、网络并展示平台运行情况的组件。监控诉警中心是运维的重要助手,没有它就如同两眼一抹黑,难以有效保障容器云平台的正常运行,无法预测系统运行资源利用,就无法保障其可用性。
监控诉警中心采取Prometheus + AlterManager工具,利用Grafana实现监控面板,展示监控内容项,另外自界说实现一些监控面板,以更好的集成到平台差别的组件中展现相关监控内容。
博云原来的产物利用的是Zabbix,在新的版本中计划采取Prometheus和Grafana,更好的实现监控需求。
API网关
API网关是实现业务应用安全和服务治理的重要组件。可独立于容器云平台,但由于其独立性,我们把它作为一个独立服务组件来建设。API网关也是实现OpenAPI管理和提供稳定的接口本领的组件,通常包罗API网关、API 管理工具,API集市等组件。
服务注册中心
服务注册发现中心是提供服务注册和查阅的地方。一个服务要给其他客户利用,就需要根据注册机制注册到注册中心,提供一个公开的地点,方便客户查阅。客户如果想利用某些服务,通过注册中心进行查阅,找到合适的服务及其地点,就可以在自己的服务中调用。
服务注册发现中心和容器云平台自身的注册发现组件不是一个内容,通常作为容器云平台的外部组件来支持整个服务或微服务体系。和API网关等组件紧密联合实现服务治理。
服务配置中心
服务配置中心是容器云平台支持微服务必不可少的组件,也是为了更好的利用容器的特性,支持运行时服务配置更新,解耦合服务配置和服务实现框架。服务配置中心是独立的组件,也可应用于其他平台和系统。在容器云平台,可以扩展支持差别层级的配置,比如应用层、服务层、实例层,根据实际需要来界说和管理业务应用和服务的配置。Config Client 和Config Server之间采取JMS或Kafka等消息组件作为通讯组件。
服务配置中心设计头脑我们也和BoCloud博云做了具体的讨论和交换,由BoCloud博云来完成代码实现。
统一认证中心
认证中心首先支持容器云平台各生态组件之间的统一认证和授权,和权限中心组件集成实现各组件的访问控制。认证中心提供单点登录本领。
平台管理
平台管理是容器云平台管理员视角或平台管理员角色所能操纵的功能。重点是基础办法资源管理和租户账户管理。理论上这一块更象是IaaS层的本领,不过如今Kubernetes等实现有些差别,无法做资源虚拟化,不过可以利用IaaS层的虚拟化本领,但仍然需要做一些额外的工作,比如标签标记差别的资源类型。和IaaS层提供差别的虚拟机服务类似相同。
基础办法资源中心
基础办法资源包罗盘算资源、存储资源、网络资源以及操作系统资源等,为整个容器云平台提供资源服务。通过标签来标记差别的资源,以满足差别的服务对资源的个性需求。基础办法资源不拘泥于物理机大概虚拟机的选择,按需进行资源分配和管理。资源分配以节点为基本单元,分区为节点的聚集。但对于每个节点可以设置资源限额,设置资源预留额等,以实现更细粒度的资源控制。
有个问题是资源分配面临着分配实际的资源照旧理论上的资源的问题,大概需要基于基于基础设置资源层所能提供的本领来决定。如今Kubernetes大概还无法实现资源超分的本领。容器云平台在实现时需要思量充实的利用和共享资源。但在容器云建设初期资源总量较小的情况下,大概实现资源超分也意义不大。
租户账户管理
租户账户统一由平台管理,每个租户申请或注册一个租户账户,由平台管理员检查评估并确认(开通或不开通),分配所需基础办法资源。同时维护租户账户的基本信息、登录密码、认证方式等。
平台权限中心
平台权限主要思量多平台管理员的情况下,对差别平台管理员进行授权,权限中心模块可以和租户权限中心利用同一个组件,平台管理是一个特殊的租户(平台管理员看到的权限和租户看到的权限列表是不一样的)。
公共镜像仓库
平台管理还有一项重要的工作就是维护公共的中间件镜像,比如Kafka、Redis、JDK、Tomcat、MySQL等,这样所有租户都可以利用这些中间件镜像快速部署为自己的服务,用于快速的情况搭建、测试,乃至是生产部署。
企业级中间件的部署建议统一来思量,容器云平台提供的中间件更多的适合敏捷的开发测试。
平台日志中心
平台日志集成到日志中心,只管理查看平台的日志。
监控诉警中心
平台监控诉警中心偏重于平台各组件的运行情况监控,不监控业务服务的运行情况,集成监控中心组件。
平台设置
容器云平台设置包罗Docker、Docker deamon、Kubernetes等配置选项,以及平台集成LDAP、可选组件、界面logo、背景等设置和配置。
多租户管理
多租户机制和本领是容器云平台的核心,因为终极容器云平台是为了支持业务应用的。平台管理为租户提供基础办法资源,租户利用云资源管理和运营自己的业务应用。租户通过CI持续集成流程构建业务服务镜像,上传到镜像仓库。镜像仓库中的镜像经过安全扫描安全的镜像可以部署到容器云平台,每个租户都有自己独立的私有镜像库,用于存储租户自己创建的镜像。服务可以部署为1到多个服务实例,服务部署后注册到注册中心,通过配置中心来实现服务配置更新,可以实现实例级配置更新。由服务网关层实现服务非业务逻辑功能,比如认证、路由、转换等。
应用管理
应用管理是租户的核心。能够提供便利、完善的应用和服务管理本领,是能否赢得租户的关键,我们要认识到容器云平台只是个工具,工具的优劣一定有评判标准。用起来顺手,是最基本的要求。
应用管理中镜像部署为“业务服务”,注册到服务注册中心;每个服务可以部署一到多个“服务实例”,大概根据业务需要实现主动弹性伸缩,一个或多个服务通过服务编排为“业务应用”。哀求通过负载均衡器分发到差别的服务实例上,并行处理惩罚,每个服务一个注册地点,不论有部署有多少服务实例,都通过负载均衡器来实现负载均衡。基于弹性伸缩的需求,负载均衡需要支持多种策略,以支持差别场景下弹性伸缩要求。
服务注册发现中心
租户部署的服务都首先注册到容器云平台服务注册中心,租户内部的调用无需经过外部的注册中心。租户若需要调用其他租户的服务,则需要从服务注册发现中心查找合适的服务。
这里需要注意的是,为了充实利用容器的特性,我们把服务的注册机制分为两个层次,一个是容器层的服务注册发现机制,一个是容器云平台外的服务注册发现机制。需要明确认识到这两个服务注册发现层次的差别。
服务配置中心
镜像在部署过程中,转到服务配置页面进行参数配置,完成配置之后实现部署并启动。配置共分三层:应用层配置、服务层配置和实例层配置。通常情况下是服务层配置,不需要控制每一个服务实例。但某些情况下也大概需要对每一个服务实例进行配置,大概采取单实例服务部署方式。容器云平台需要和服务配置中心组件集成,实现服务在容器云平台的配置和更新。
服务网关
服务网关是服务实现服务治理的重要组件,所有租户间的服务通过API网关提供统一的API服务(租户内部服务成为私有服务,租户间服务成为公有服务,公有服务通过API 网关界说开放API,供其他租户利用),隔离服务实现和API接口界说,服务网关提供了稳定的API接口层,服务的更新和替换不会影响API提供的服务。非兼容性的更新部署为新的API服务。服务网关分离业务服务的所有非业务功能,业务开发人员专注于业务逻辑的设计研发,不再思量认证授权、访问控制等安全机制以及限流、限额、熔断、优先级配置等本领。
权限中心
权限中心支持租户构造架构、人员、角色、权限的设置需求,以满足差别租户的差别场景要求。权限来自于平台功能项的操作粒度(平台操作员和租户看到的功能项是差别的),差别的权限聚集组成界说为一个角色。构造架构和人员可以被赋予某种角色。构造架构下的所有人员继承构造架构的角色权限,一个人员可以被赋予多种角色。租户可以界说基于角色的权限管理体系,支持差别的构造架构和层级。
权限中心可以集成LDAP,证书中心、认证中心等功能实现企业级各系统的统一认证、权限管理服务。
链路跟踪
以图形化展示服务之间的调用关系,更清晰的定位异常节点,跟踪信息。链路跟踪可以有效避免服务之间的循环调用,尽大概的减少调用链路长度。更短的调用链路也是性能、安全等方面的要求。
负载均衡
负载均衡分容器层负载均衡和网关层负载均衡。在我们的整个平台生态系统中不建议采取客户端负载均衡机制。服务实例之间采取容器层负载均衡,通常可以思量容器平台的负载均衡机制,但需要思量弹性伸缩时的伸缩策略,不能采取随机策略来收缩容器,必须确保容器已经完成的业务哀求的处理惩罚才可以被回收。
基础办法资源中心
租户的基础办法资源是由平台来分配的。通常情况下租户不需要再对自己的资源进行分配,我们暂不思量租户的资源管理或再分配需求,只思量租户利用分配的资源需求。资源中心可以查看已分配资源及在利用资源,空闲资源等信息,也可以再申请资源。
镜像仓库
租户自己构建的镜像保存于租户自己的私有镜像仓库中,同时租户也可以利用公共镜像仓库中的镜像。两个镜像仓库是分开的。租户的私有镜像仓库大概有多个,租户可以通过镜像仓库配置连接到差别的镜像库。
租户日志中心
租户日志中心主要收罗租户部署应用的日志信息。容器中应用服务日志输出到标准输出,通过Logstash的组件来从标准输出中收罗日志,每个服务的每条日志有固定的格式和标签来区分。集成集中日志中心实现租户日志管理。
监控诉警中心
监控诉警中心和链路跟踪机制、日志中心等共同实现业务服务、实例运行情况的监控及异常告警,协助定位分析。集成监控诉警中心组件。
任务调度中心
任务调度中心主要支持批量任务、定时任务的处理惩罚。
标准化交付和管理
标准化交付就是从源码到标准化镜像构建的流程,包罗源码开发、单元测试、源码管理、源码检查、编译、构建、上传镜像仓库、镜像检查、测试情况部署测试、测试用例管理、缺陷管理、文档管理等。主要实行持续集成CI流程。标准化交付作为容器云平台的一个独立组件可独立部署,和容器云平台之间通过镜像仓库实现标准镜像传递。
持续集成工具及流程
持续集成起于源码研发,止于镜像仓库。持续集成涉及代码编辑工具、源码管理工具、源码检查、编译、打包、生成镜像,以及缺陷管理、文档管理、API接口管理等浩繁的工具。
镜像仓库
镜像仓库是容器云平台的关键组件之一,是持续集成和应用部署运营的媒介,包罗Server端和Client端。如今有浩繁的开源实现。安全性有待增强。
六、交互UI界面设计
具体可参阅《容器云平台UI 界面原型设计》
七、组件部署架构设计
容器云平台不是所有组件都适合容器化部署,也没必要都容器化,有些时间容器化反而复杂化了,所以需要根据具体的情况来确定各组件的部署方式和部署架构。
八、关键技术难点、选型
统一认证、权限管理
容器云平台生态体系涉及浩繁的组件,大部分都是开源的组件,大部分组件没有默认没有实现认证授权机制。在容器云平台,所有选择的组件都需要思量采取统一的认证和权限体系,也就是各生态组件要采取同样的权限体系和认证方式。在不改变组件架构等基础上实现各组件之间权限打通,实现统一的权限管理和认证,是一个重大的难点。
弹性伸缩策略支持
容器平台价值很大程度上在于其伸缩本领,或叫弹性。伸缩不能随便伸缩,必须有一定的规则,按照界说的规则进行伸缩。这就需要界说弹性伸缩的策略。通常情况下不能采取随机策略,支持弹性伸缩策略配置,差别的服务采取差别的策略大概是一个比力好的解决方案,但如今实现也是个难点。
安全机制
安满是永远绕不开的话题。在容器云平台需要思量差别层次的安全机制和差别组件的安全机制。需要实现:
登录安全,需随机验证码或手机验证码
租户用户权限管理安全
代码安全,不仅指安全的代码存储,也包罗编码的安全,预防编码中潜在的漏洞和Sql注入等。
基础镜像安全
服务安全访问,由协议层安全和API Gateway安全共同实现。API Gateway实现认证授权、限流、熔断、路由、服务映射配置、转换等功能。
统一认证单点登录
微服务部署运营安全
中间件安全设置(Tomcat、Kafka)
系统、网络安全配置(网络策略)、存储安全等资源安全
需要思量root用户运行容器云组件的问题。
安全涉及业务应用和服务、容器平台、容器调度组件、基础办法资源各个层次的安全。这会是一个非常重要不得不做的工作,也是容器云平台建设的难点。
应用服务配置管理
配置中心的设计实现也大概是个难点,需要支持运行时更新以及多层次的配置。不仅仅是读取配置文件
应用管理
应用管理是核心也是难点,所有的组件都是围绕应用管理来服务的。在应用管理中需要集成各个组件的本领,而各组件又是松耦合的,又需要思量多租户机制和权限管理,设计实现会是个难点。
监控、故障跟踪定位
监控和故障处理惩罚永远都是重要的一环,收罗到合适的新监控信息并界说公道的监控规则,在异常情况下能协助快速定位,也不是件容易的事。
DevOps流程界说
不改变现有构造架构的情况下实现DevOps,为了一个项目去盼望调解构造架构永远都是稚子的想法。不管场景多复杂,都会有最简朴的解决方法。DevOps方法论的指导下实现DevOps流程界说和落地,需要的不仅仅是技术本领,这是一个很难的难点。
关键设备选型
从容器云平台架构和组件来看,平台关键组件会涉及到基础办法组件、容器调度框架、容器、镜像仓库、API网关组件、中间件部署、微服务框架、微服务架构界说等选型。
网络技术方案和存储技术方案选型
网络和存储方案是在建设容器云平台之前就需要调研确认,具体采取什么方案,需要进行分析和对比,选择合适的方案。
节点(物理机、虚拟机选择)方案选择
很多人一直在争论建设容器云应该选择物理机照旧虚拟机,我们也讨论过,不过从厥后的实际情况来看,如果企业已经实现了虚拟化,采取虚拟机配合标签应该会更方便些。终极需要根据机器配置及企业虚拟化建设情况来确定。
容器调度管理框架
在2018年Kubernetes成为了发展最快的容器调度管理框架,Mesos和Docker Swarm好汉不再。不过基于Kubernetes上的Openshift好像更胜一酬。基于Openshift的容器云研发相对更容易些。
容器
Docker已是事实上的标准。
镜像仓库
镜像仓库也有多种方案可供选择,DTR、Harbor、Registry等。重点在于镜像仓库的镜像安全扫描本领。
API网关
API网关有商用、开源产物,也可自研。不过从自身技术实力和成本投入来说,选择开源和商用比力合适。但从服务和安全角度来说,传统企业更适合成熟的商用产物。
中间件部署方案
容器云平台组件部署原则上变化不剧烈、没有频仍扩展需求的,选择非容器化部署。对于运维和管理更容易些。也减小整个平台的复杂度。
微服务框架和架构
微服务框架虽然不是重点,但如果有统一的开发框架,将有利于统一的管控和高效。SpringCould如今应该是比力合适的选择。微服务架构界说存在一定的难度,需要基于实际的业务确定。
九、微服务技术架构、服务治理模型
微服务开发框架选用SpringCloud,一方面由于SpringCloud相对成熟,比如其它框架好不少。另外团队成员也相对比力熟悉。
微服务技术架构我们自行界说了微服务设计原则、门路图、实行模型、微服务成熟度模型等来资助分拆、重构服务和业务应用。服务间通讯和事件处理惩罚也界说了一些原则和规范,借助了系统集成和数据集成技术的一些理念。数据层的设计和界说主要思量主数据模型和行业通用数据模型。
基于微服务技术架构和容器云平台所提供的特性,界说微服务治理模型:微服务治理模型根据微服务的架构分为数据层、服务层和应用层。数据层支持差别的数据存储方式和数据集成方式,通过服务层来统一直外提供标准的接口微服务;根据业务需求来利用微服务实现业务应用服务;应用采取Client /Server前后端的方式实现,所有应用的哀求通过API Gateway集群分发到相应的业务应用服务上。API网关层同时提供API管理本领、API访问控制本领、负载均衡本领、路由、容错、过滤、映射转换、限流、熔断等,以及联合容器云的多租户管理本领,实现服务的分类管理和权限管理等。为了支持微服务架构,实现服务注册发现机制、提供服务配置本领、服务日志记载本领、服务运行监控和告警本领以及服务访问统一认证、单点登录本领等;在服务的开发、运营等整个生命周期过程中碰到的问题、需求等持续反馈到DevOps中心,并持续的改进这些应用服务,以更好的满足实际业务需求。
十、DevOps方案设计
DevOps目的是为了促进应用开发、应用运维和质量保障(QA)部门之间的沟通、协作与整合。很多人把DevOps成为开发运维一体化,也不能说错,但也不全对。我们认为如果要落地DevOps就必须要求调解构造架构,那无异于纸上谈兵。开发运维一体化不一定是要一个人把业务应用全生命周期都做了,DevOps是一种方法论,根据具体的业务流程,通过选择相应的工具,界说相应的职责,优化业务流程,从而实现敏捷协作和高效整合,这些工具、职责和流程就是“沟通”,目的是为了敏捷协作和高效整合。因此我们界说DevOps中持续集成的终点是镜像仓库,输出是标准化镜像,持续部署的起点是镜像仓库,镜像仓库是一个标准化的媒介工具。
十一、总结说明
本文所述与BoCloud博云为我公司容器云项目的实行方案并不完全同等,是本文作者基于该项目情况的研究和探讨,不能视为容器云建设的正式实行文档,仅供大家参考。由于项目还在实行中,很多设计细节和实行方式不能具体报告,我们将通过其它文章进行讲解。
长按二维码关注公众号
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
发新帖
回复
南飓风
金牌会员
这个人很懒什么都没写!
楼主热帖
零信任介绍
容斥原理
开源SPL助力JAVA处理公共数据文件(txt ...
使用 Helm 安装 MQTT 服务器-EMQX ...
数理逻辑第1-3章
Ubuntu如何安装Mysql+启用远程连接[完 ...
dotnet 修复在 Linux 上使用 SkiaSharp ...
DOS窗口命令和单表简单查询
Java笔记(13) 简单的Lambda表达式 ...
.gitignore文件配置以及gitee提交报Pus ...
标签云
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表