从企业用户容器云的建设需求来看,容器云的建设和DevOps二者之间的关联性非常强。DevOps要求开发、测试、运维一体化,实现敏捷开发、敏捷部署和敏捷生产的目标。DevOps从计划、编码、构建,测试、发布、部署,以及运营、监控打通,就是把敏捷开发部门和运维部门之间的围墙打通,形成闭环。 通过对容器云方案和微服务架构的整体考虑,DevOps分成以下过程 持续集成:开发人员研发的代码向软件整体部分交付,频繁进行集成以便快速发现问题。 持续交付:在已完成集成的代码上面将完成测试的代码部署到“类生产环境”中。 持续部署:已交付的代码在通过评审之后,自动部署到生产环境中。 持续监控:通过专业的监控软件(如Prometheus等),按事先设置的监控策略,监控业务应用以及系统平台的运行情况,形成监控报告和监控展示。 持续反馈:基于监控的结果作数据分析,提供建议方案,如针对应用的监控,实现应用的弹性伸缩等能力。 持续改进:基于反馈的意见,启动新的改进计划流程。 结合云宏在WinGarden容器云平台的丰富建设经验,在建设DevOps时需重点考虑以下要点: 基于WinGarden容器的CI/CD DevOps 通过基于容器构建CI/CD的DevOps,通过持续集成/持续交付,考虑实现计划流程自动化、资源选择自动化、代码质量控制自动化、构建自动化等流程。借助相应的工具链,来提升对业务需求的响应能力和敏捷的开发能力: 在资源选择自动化,可结合与企业现有的IaaS资源层对接,实现资源申请自动化,将容器或微服务部署在对接的云平台,也可以结合云平台的多租户能力,实现资源的隔离,在应用部署的时候自动选择在其项目组或指定资源池。 代码质量控制自动化。开发人同在编写完成后,提交到SVN或Git,通过在Jenkins中集成findbugs检查代码bug,借助于Sonar等工具来实现代码质量的自动检查。 构建自动化,采用容器云后就是构建镜像。在代码检查完毕后,自动启动构建流程,可以使用基于Jenkins的工具,支持创建多种流水线,如Maven项目、多Stage Docker项目和传统Docker项目。它可以集成SVN或Git,Sonar,Maven等众多工具,是非常方便的构建自动化实现方式。 镜像构建完毕,上传到镜像仓库。开发工作暂告一段落,需要准备测试环境进行测试。测试完成没有问题的话,可自动交付到生产镜像仓库。 通过云宏的WinGarden CI/CD平台可大幅度提升持续部署及运营过程效率,保证开发、测试及生产环境一致性。 基于容器的持续交付团队协作 云宏WinGarden基于容器技术,提供一套完整的DevOps解决方案,实现了Code to Cloud全流程自动化。企业的开发者只需要关注最核心的代码层面,接下来的测试、构建、集成、部署等过程,都可以由WinGarden平台自动化完成。WinGarden平台通过镜像tag进行版本的识别和控制,实现灰度发布和回滚。 基于容器的持续交付实践当中,以镜像在不同职能人员之间传递。 开发人员:频繁提交持续集成,通过持续的编译、打包、测试、镜像构建、自动化验收测试等环节,产生可测试的候选镜像列表。 测试人员:从候选测试镜像列表中,选择需要测试的目标镜像,标记为测试版本,并且将待测试镜像自动部署到验收测试环境,完成手动探索性测试,对于已测试完成的镜像标记为预发布版本。 运维人员:从预发布镜像列表中选择镜像部署到预发布环境,并且在验证通过后标记为release版本并且发布到生产环境。 持续监控和集中分析的能力 日志、监控是业务运营过程中判断运行是否正常的重要基础能力,持续监控就是实现平台各层次的健康检查能力,包括基础设施层、平台层、应用层等。基础设施层就是通常所说的IaaS层,包含存储、网络、计算资源等;平台层是容器云平台的能力,比如Docker引擎、容器编排调度、服务发现、负载均衡等;应用层需要实现对应用的进程、使用资源、网络流量等进行监控检查,收集日志。持续监控是实现日志收集、健康检查监控的自动化。 针对基础设施层,云宏提供强大的MS云监控平台,不仅可以对计算、存储、网络资源进行统一监控和展示,也可以对数据库、中间件等应用进行统一监控管理。而WinGarden容器云基于业内最先进的Prometheus方案,对容器和应用进行全方位的监控,提供用户自定义个性化监控视图,并支持邮件、短信等告警方式,通过预先设计的监控策略实现服务的自动伸缩。日志采集与分析基于业界最先进的EFK方案,实现系统日志和容器日志双重采集。 通过对基础设施层、平台层和应用层的集中监控和预先告警能力,可实现对应用的服务进行改进,实现了业务应用的全生命周期管理,在各个阶段实现自动化,提升了效率和响应能力。
|