美文网首页
2019-10-18

2019-10-18

作者: 阿沐木 | 来源:发表于2019-12-26 09:13 被阅读0次

    一、Devops整合gitlab 进行持续集成
    gitlab CI已经集成到了git lab中,只需要在项目中添加一个gitlab-ci.yml文件即可进行持续集成,
    1、相关概念
    Pipeline
    一次 Pipeline 其实相当于一次构建任务,里面可以包含多个流程,如安装依赖、运行测试、编译、部署测试服务器、部署生产服务器等流程。 任何提交或者 Merge Request 的合并都可以触发 Pipeline,如下图所示:

    +------------------+           +----------------+
    |                  |  trigger  |                |
    |   Commit / MR    +---------->+    Pipeline    |
    |                  |           |                |
    +------------------+           +----------------+
    
    

    Stages
    Stages 表示构建阶段,说白了就是上面提到的流程。 我们可以在一次 Pipeline 中定义多个 Stages,这些 Stages 会有以下特点:
    所有 Stages 会按照顺序运行,即当一个 Stage 完成后,下一个 Stage 才会开始
    只有当所有 Stages 完成后,该构建任务 (Pipeline) 才会成功
    如果任何一个 Stage 失败,那么后面的 Stages 不会执行,该构建任务 (Pipeline) 失败
    因此,Stages 和 Pipeline 的关系就是:

    +--------------------------------------------------------+
    |                                                        |
    |  Pipeline                                              |
    |                                                        |
    |  +-----------+     +------------+      +------------+  |
    |  |  Stage 1  |---->|   Stage 2  |----->|   Stage 3  |  |
    |  +-----------+     +------------+      +------------+  |
    |                                                        |
    +--------------------------------------------------------+
    
    

    Jobs
    Jobs 表示构建工作,表示某个 Stage 里面执行的工作。 我们可以在 Stages 里面定义多个 Jobs,这些 Jobs 会有以下特点:
    相同 Stage 中的 Jobs 会并行执行
    相同 Stage 中的 Jobs 都执行成功时,该 Stage 才会成功
    如果任何一个 Job 失败,那么该 Stage 失败,即该构建任务 (Pipeline) 失败
    所以,Jobs 和 Stage 的关系图就是:

    +------------------------------------------+
    |                                          |
    |  Stage 1                                 |
    |                                          |
    |  +---------+  +---------+  +---------+   |
    |  |  Job 1  |  |  Job 2  |  |  Job 3  |   |
    |  +---------+  +---------+  +---------+   |
    |                                          |
    +------------------------------------------+
    
    

    二、Devops-Service 使用Helm 进行微服务应用打包
    Helm 使用称为 chart 的包装格式。chart 是描述相关的一组 Kubernetes 资源的文件集合。单个 chart 可能用于部署简单的东西,比如 memcached pod,或者一些复杂的东西,比如完整的具有 HTTP 服务,数据库,缓存等的 Web 应用程序堆栈。
    chart 通过创建为特定目录树的文件,将它们打包到版本化的压缩包,然后进行部署。

    三、整体流程

    CI流程.png

    相关文章

      网友评论

          本文标题:2019-10-18

          本文链接:https://www.haomeiwen.com/subject/nvwimctx.html