容器 PaaS 平台提供 DevOps 完整周期的支持,在开发、测试、运维各个环节提供支撑能力。平台自研的 DevOps 流程满足企业对接代码仓库、定时触发构建作业、部署测试环境、执行自动化测试用例、输出测试结果、滚动升级和回滚在线应用、配合负载均衡能力,进行蓝绿发布和灰度发布的功能。
容器平台提供自研容器化 CI/CD 方案“构建项目”支持持续集成场景。持续集成与持续交付的第一步是提交代码和 Dockerfile 给 Gitlab、SVN 等代码仓库;第二步是利用 Webhook 勾取代码到容器 PaaS 平台构建镜像,并提交给私有镜像中心;第三步再将镜像部署运行于容器之上。
代码对接
持续集成的代码对接功能主要有:
支持编译环境配置
支持编译命令自定义配置
允许用户通过自己编写 YAML 文件和代码仓库存放在一起,在 YAML 里
面自定义各种编译环境和命令。
支持统一配置管理
支持流水线功能,实现一份镜像多环境(Dev、Qas、Prd)部署。
支持自定义脚本配置与执行
在流水线的其中一个任务类型是“执行命令”,通过指定镜像和执行的命令,
触发流水线会自动执行命令。
多语言支持
平台不限制开发语言的选择,流行的语言,比如 Java, Python, Perl, PHP,NodeJS, C/C++,.NET 都可以在平台上开发和运行。同时,客户可以根据需要选择在 Linux 环境或者 Windows 环境中运行应用,满足各种业务场景的需要。
单元测试支持
平台支持集成各种单元测试框架,如 JUnit, EasyMock, Mokito, TestNG 框架,支持在开发过程中,模拟消费端或者服务端,可以对服务端行为进行录制,回放检查,模拟各种返回值和异常,方便开发人员进行持续测试。
通过提供的 API 和 CLI 工具、内置的 CI/CD 流水线,或 Jenkins 等提供的多种持续集成工具,结合镜像仓库,容器 PaaS 平台可以支持从代码到镜像到运行的完整流水线。此外,容器 PaaS 平台也可根据需求定制提供更复杂的结合开发测试流程的持续集成平台。
容器 PaaS 平台能够创建自定义的流水线任务,实现持续自动化的部署、测试和更新服务、同步镜像,并可查看任务执行的数据和结果、接收任务通知。流水线支持对接代码仓库,可关联 GitLab 私有部署版、Gogs 、SVN、Github 、关联 Github 企业版 、激活关联代码仓库仅需要的项目 ;流水线可对接Jenkins、对接云化 CD 工具 Spinnaker、静态代码扫描工具 Sonarqube、可使用 Hitchhiker 进行接口测试、压力测试等 。
平台支持开放式流水线插件,满足企业内 DevOps 流程管理的需求,支持流水线定时触发、手工控制、产出物管理等多个特色功能,其基础插件如下图所示:
容器 PaaS 平台还将 Jenkins 工具深度集成进 DevOps 流程中,用户可以通过多种方式灵活的使用 Jenkins 引擎,完成构建和流水线功能。集成 Jenkins后的流水线功能如下:
创建使用 Jenkins 的构建项目,有以下方式:
平台支持基于策略的多种服务发布机制,包括灰度发布、蓝绿部署。发布策略的设定由规则和权重分配组成。具体功能描述如下:
基于JFROG Artifactory构建组织级的制品仓库,对制品进行成熟度管理,只有制品满足各项度量指标后,制品才能部署到下一阶段,最终部署生产环境。同时在制品元数据中记录制品的质量数据,确保了部署到生产环境的制品是经过严格测试的、满足质量要求的。
DevOps 作为软件生命周期管理领域的方法论,已经被越来越多的IT 企业所接受,它所带来的价值也是毋庸置疑,下面将就如何实现DevOps 的安全进行具体的分析。
DevOps 集合了开发和运维团队,并通过自动化流程(CI/CD)来促进团队之间的协作效率并加速产品的版本迭代。以下是对CI/CD 的一些安全性建议:
提及DevOps 安全, 就不得不提到DevSecOps,DevOps 是Development 和Operations 的缩写, 而DevSecOps 则是Development、Security 和Operations 的缩写,也就是说要在整个开发、运营的流程中,融入安全的理念。其核心是:安全是整个IT 团队(包括开发、运维及安全团队)所有成员的责任,需要贯穿整个业务生命周期(从开发到运营)的每一个环节。
DevOps 安全的关键是风险的控制和管理,因此在进行安全风险管理(Security and Risk Management,SRM)时,应当注意: