容器服务CaaS平台V技术白皮书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
第1章系统概述
1.1建设背景
随着信息技术的发展,互联网+教育的应用模式改变了人们的工作及生活模式,面向教育、企业及政府单位的企业应用逐步走向云化、互联网化,但是随着公司业务的发展,往往会出现服务器环境越来越复杂,管理依赖困难等问题。这些问题导致运维压力大,开发、测试、运维的整体工作效率大打折扣,团队竞争力下降。行业的问题积累,有时需要新技术的出现才能解决。Docker的横空出世,让人们看到了build、ship、run一体化的希望,而奕云CaaS正是希望基于docker 的容器化技术,解决用户从代码自动编译打包,到线上运行维护的全套需求.
1.2痛点分析
传统运维模式的问题:
●随着业务快速发展,服务器环境越来越复杂,各种紧急上线,技术债务,
临时版本的程序,脚本等,可能长期得不到清理,最终引发问题。
●技术平台快速发展,管理依赖是件很麻烦的事,而且影响运维和开发的沟
通。
●环境统一问题,经常导致上线失败。开发、测试、运维协作困难。
●监控体系不断重构,难以满足需求。
●规模小无需自动化,而规模大后再自动化又容易引起问题。
●十分依赖经验丰富的运维人员。
传统单体架构问题:
●加载、编译耗时长。
●代码管理负责。
●横向扩展难。
●各模块之间的耦合程度高。
针对以上问题,奕云容器管理平台设计了可以帮助您构筑企业级?DevOps 流程工具链和交付文化以及微服务架构的敏捷开发流程,助力企业实现交付能力的平滑升级。
1.3系统简介
奕云caas平台是基于容器的企业应用支撑云平台,为企业提供Devops、微服务架构、自动化运维等解决方案,通过奕云CaaS平台提供的容器服务,助力企业实现基础设施云化,应用架构现代化,开发流程敏捷化,打造行业领先的IT能力。
容器服务是基于基础设施提供的 Docker 容器引擎服务平台,覆盖了软件开发过程中的开发、测试、演练、上线等生命周期管理,保持应用系统快速搭建和各环境的一致性。
容器技术可以处理不同平台之间的差异性,提供一个标准化的交付方式,统一配置,统一环境,保证效率,能有效的实现资源限制。此外,容器能够做到快速迁移,秒级高可用。容器服务能够对应用进行按需配置,秒级弹性伸缩,大大减少开发,测试及运维人员的环境搭建和应用创建的服务时间,提高工作效率,提高基础设施资源利用率,降低硬件和软件及人力成本。
奕云CaaS采用私有云模式,实现用户私有集群的容器化管理和资源智能化分配,提供全流程标准化的主机管理、应用持续集成、镜像构建、部署管理、容器运维和多层级监控服务。
1.4建设目标
●开箱即用,定位为纯工具,与自身业务无关。
●开发自运维,使开发人员能全流程跟踪和发现应用服务的问题。
●全流程全视图,覆盖集成、部署、运维、监控等每一个产品开发运维环节,
一步到位,省心省力
●追求效率和利用率,分钟级的构建和部署,提高开发交付效率,极速的升
级回滚和扩缩容,让业务能够快速迭代和弹性伸缩。
●智能化的监控,及时了解业务和主机运行状况,发现潜在的问题。
●标准,用docker镜像和容器分别标准化业务的集成和交付环节,统一产品
开发交付的工作流程,标准化生产和测试环境,避免开发测试过程中环境不统一的问题。
第2章系统架构
上图为系统架构图,CaaS平台以google开源的K8S集群管理系统为基础来管理Iaas基础设施,在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,CaaS平台在此基础上通过整合从开发到运维的工具链,实现Docker镜像的管理、服务管理、API管理、监控告警管理、CI&CD集成管理,通过控制台单一入口组件为企业提供应用支撑平台。
第3章CI&CD流程
上图为CI&CD的整体流程示意图。
●开发人员可在应用程序和运行平台这两层进行应用程序的编码、构建、
测试和发布;
●测试人员可进行环境的快速搭建,测试环境的一致性和持续集成等工作;
●运维人员可进行从硬件、操作系统到运行时平台的安装、配置、运行监
控、升级和优化等工作。
●开发使用不同的镜像服务部署开发环境,方便本地开发环境的搭建和一
致性;
●测试通过使用镜像完成服务持续集成,简化测试环境的搭建;
●运维使用同一份镜像服务部署,保持环境的一致性,也可以制作镜像并
进行快速部署;在应用大流量的情况,能做到秒级的扩容;
开发环节:
CI 流程
Developer Gitlab CaaS-CI K8S
Docker registry Commit and push code Webhook 触发构建镜像
代码编译
通过
否控制台提示或邮件
通知是
执行测试
通过
镜像升级自动部署到测试环境
是
打包镜像否在registry 存储生成
的项目镜像版本 上图为开发环节开发人员从提交代码到发布到测试环境的整个过程。 测试环节:
测试环节流程跟开发环节流程一样,建立测试项目并进行CI 流程进行验收测试,以前端框架为angular 为例,采用protractor + selenium 方案。
● GITLAB 建立测试项目,编写protractor 测试脚本,模拟浏览器执行测试。 ● 提交代码。
● 执行protratcor 镜像到selenium 环境进行测试。
● 测试完毕将测试结果通过nginx 镜像发布出来。
运维环节:
● 手工将测试通过的镜像发布到生产环境中。
● 运维人员可进行从硬件、操作系统到运行时平台的安装、配置、运行监
控、升级和优化等工作。