Day10 - 基础篇总结 ,CI/CD 的功用为何 ?

如何实现一套基础开发流程?

在前面的章节里谈到了 GCP、Docker、Cloud Run 等技术,透过这些工具,已经可以打造出一条简单的软件开发流水线,这边就以开发者与维运人员的角度设计了简单的流程图。

开发者

学会了容器,作为开发者主要工作还是 Coding ,但开发完成後,就可以用容器化的方式将服务交付,测试好服务( Code )、以及 Image (执行环境),就能上传到 Container Registry ,供维运人员部属。

https://ithelp.ithome.com.tw/upload/images/20210910/20139235bFU6vlV5tO.png

维运人员

对维运人员来说,可以使用 GCP 上的各式服务来搭建环境,当收到请求,就准备好所需的相关服务进行部属。

https://ithelp.ithome.com.tw/upload/images/20210910/20139235fjVm3FwGc0.png

CI/CD 介绍

CI ( Continuous integration )

CI 的目的在於将开发到部属之间的工作给抽离出来,包括 Build 环境 、 Unit Test 、 上传 Image 。透过脚本的建置,就能将这些流程自动化,不仅能确保测试都有正确执行,降低人为疏失的机会,这些重复的工作交由机器来做,也能减少人力成本的花费。

CD ( Continuous Deployment )

CD 的目的在於如何将服务自动化的部属到实际环境,并且保证服务更新期间也能正常运行,透过 CD ,就能够将开发完成的新版本快速上线,提供给使用者。

带入 CI/CD 後的开发流程

CI/CD 工具目的在於将软件开发到部属的流程自动化,不仅能减少人为疏失的风险,也让开发者与维运人员减少资源花费,也就是最一开始讲到的 DevOps 目标,让各阶段的人员只专注於自己工作情况下也能紧密合作。带入了CI/CD 技术後,可以打造出的开发架构如下。

https://ithelp.ithome.com.tw/upload/images/20210910/20139235EdFQqpv934.png

总结

在基础篇中,透过云端、容器、 Serverless 我们已经了解到如何建构出一套简单的软件开发流程,在之後的进阶篇里,就会介绍 Kubernetes、CI/CD 等技术,透过 DevOps 方式来让软件生命周期变更加顺畅。


<<:  [Day 5] 站在巨人的肩膀上 - 回顾股票市场交易论文

>>:  【LeetCode】Binary Tree

30天学会 Python: Day 7-无限轮回

range(start=0, stop, step=1) 用来产生 整数等差数列 的函式,常和今天要...

[Day24] 谈谈写测试的好处:从为你自己写测试开始

前几周主要都在谈 TypeScript,对我来说 TypeScript 最重要的是能增加程序的可维护...

[Day25] Array methods 阵列操作方法(3)

直接进入 Array methods 实作练习主题。 push() 新增元素至原阵列末端,可一次新增...

JavaScript学习日记 : Day18 - Class

在平时开发时,我们会遇到要创建许多类型相似的object,之前的文章有提到使用new操作符配合fun...

PHP 关於 autoload

Autoload PHP 可以透过 include、include_once、require、req...