【架构】28:DevOps环境

发布于 2021-04-03 13:01

在云原生理念的带动下,为了快速交付一个应用系统,以及后续维护方便,我们必须置备一套DevOps环境。所谓DevOps主要是指开发和运维构成一个团队,融合在一起,共同协作推出产品。

组织架构的变更

准备一套DevOps环境是容易的,无非就是部署软件,但是更重要的是高校网信部门必须拥有配套的文化,或者是组织结构的变更。譬如上海海事大学的数据中心部门,该部门管理了数据中心、信息系统规划、信息系统建设、部分信息系统运维等业务,正因为这种团队性质的模式,才能充分返回DevOps的优势。在该模式下,新建一个业务系统,无须跨部门申请基础架构(服务器、存储、网络),也无须跨部门申请中间件,非常高

软件机构的置备

DevOps一般包括需求、开发、测试、上线、运维、需求……这种一直在循环的环节。为了能够高效生产,我们会尽量使用自动化处理,也就有了CI/CD的概念。

版本控制软件

无论是否引入DevOps环境,版本控制软件是非常必须的。目前常见的除了在线的GitHub,一般都是在校内私有化部署GitLab。GitLab支持CI/CD、Kubernetes环境,并且支持与学校用户绑定,实现统一认证,同时提供WiKi功能,其高校占有率很高。

镜像库加速

现有的开发模式是建立在他人开发的基础之上,通过集成中间代码来快速出品。如果使用线上的第三方库管系统,会受制于网速,为此,我们应该在本地部署支持Java、NodejS、Docker等的镜像库。一般首选SonaType的Nexus,如果是为了Docker镜像,可以选择VMware Harbor。

开发环境

由于开发不一定是由高校网信部门的老师进行,所以开发环境可以灵活处理。但是适当准备一些开发环境,或者说通过虚拟机留存开发环境是必要的,毕竟有些软件可能长达数年未修改,之后忽然又一个需求,而所用开发环境都已经发生了变化,无法修改以前的代码,这种环境上的更新会导致软件迭代困难。针对该问题 ,可以选择VMware Horizon Suite来生成不同类型的开发桌面,也可以通过留存一台虚拟机用于后续运维和迭代开发。

容器化运行环境

尽管容器化运行环境不是DevOps环境的必须配置,但是我们依然建议使用容器化运行,只有这样才能更高效地做CI/CD。只要通过配置完备的CI/CD脚本,后续的交付过程都可以自动化进行,而无须运维人员参与。

CI/CD环境

持续集成和持续部署,可以选择Jenkin,但我推荐直接使用GitLab的CI/CD功能。直接在项目中包含.gitlab-ci.yml文件即可实现自动CI/CD,而且机密环境变量都可以在GitLab中直接配置,避免了多种软件并存带来的成本压力。

本文只是大概写写,感兴趣的还是要参阅DevOps相关文章和书籍。


往期推荐

【架构】27:业务应用层分类的思路:以人为本
【架构】26:业务应用层之接入分类(2)
【架构】25:业务应用层之接入分类
【架构】24:业务支撑层之数据采集工具
【架构】23:业务支撑层之数据图表
【架构】22:业务支撑层之内容管理框架(Drupal)

本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。

相关素材