0penShift是如何支撑持续交付的?

现在开发中持续交付是基本的要求,也就是说我们需要跟研发流程中所涉及到的各个系统,比如 jira 系统、github 系统发布系统集成起来,达到代码的持续集成持续发布的目的,openShift是如何支撑持续交付的?...显示全部

现在开发中持续交付是基本的要求,也就是说我们需要跟研发流程中所涉及到的各个系统,比如 jira 系统、github 系统发布系统集成起来,达到代码的持续集成持续发布的目的,openShift是如何支撑持续交付的?

收起
参与6

查看其它 1 个回答郭维的回答

郭维郭维项目经理广东联通

如果要打造一个持续交付的流水线,首先要考虑多环境的问题。一般一个应用程序会有多个环境,比如开发环境、集成测试环境、系统测试环境、用户验收测试环境、类生产环境、生产环境。如何在OpenShift中隔离并建立对这些环境的部署流程有多种方案可以选择。

  1. 同一个project中使用label和唯一名称来区分不同的环境;
  2. 集群中的不同project来隔离环境;
  3. 跨集群来隔离环境。
    我们以第二种方式为例,演示下多环境管理问题。

    在上图中,我们有一个build project。build project包含了一组相互依赖性比较强的应用,每个应用对应一个build config,产生的Image Stream存放在image register中。而每个环境各对应一个project,其中包含了该应用的deployment config,其镜像输入是build config产生的Image Stream。之所以这样做,有以下几点考虑:
  4. 不同的环境分布在不同的project中,可以很好的借助project的特性进行环境隔离。比如sys project的容器只能部署在label为sys的node上,prod project的容器只能部署在label为prod的node上。
  5. 不同的project可以分别定义权限访问和控制。比如只有QA才能操作sys project中的资源,运维工程师才能操作prod project中的资源。
  6. 不同的环境共用一个Image Stream,保证了应用程序镜像在不同环境中的是完全一致的,防止由于测试环境和生产环境不一致而引入缺陷。
软件开发 · 2020-04-02
浏览1425

回答者

郭维
项目经理广东联通
擅长领域: 云计算容器容器云

郭维 最近回答过的问题

回答状态

  • 发布时间:2020-04-02
  • 关注会员:3 人
  • 回答浏览:1425
  • X社区推广