【前端你应该知道系列 1】DevOps思想和工具链

4,053 阅读5分钟

前言 🔥

DevOps是啥,前端为啥会和DevOps扯上关系呢?


痛点分析(由痛点引出DevOps)🔥

以我在公司的经历来看,有几个典型的问题你看一下

  • 测试缺失:提交代码之后,总来不知道自己的代码有什么潜在问题,也没法知道代码的质量
  • 部署繁琐:从代码提交到真正应该到线上,中途要经过很多步骤,繁琐的很
  • 监测平台缺失:不知道自己的软件产品什么时候会出现问题,没有监测和应对的系统
  • 日志缺失:这里是指日志记录和分析的一套系统的缺失

我总结起来就是缺少一个流程,这里晒一张图,先别管是啥意思,但是看着有那么个感觉就行,下面我会一步步的说的


DevOps的前世今生 🔥

我个人的是比较偶然的了解到DevOps的,因为我之前的困惑是持续集成,持续部署,持续交付的问题,解决解决的差不多了,在网络上突然看到了 DevOps的信息,有一些收获

不多扯,正文开始


1. 以前

以前没有程序员这个名字,那时候的计算机开发者还是在实验室里,他们被称之为科学家。他们为了开发出一套优秀的软件,要了解软件的方方面面,他们要知道这个软件运行在什么场合,在什么系统下运行,还要编写规格说明书、到软件开发、到测试、到部署、再到技术支持都是一人完成

过了不久,人类(客户)要求更多的需求,更快的速度,更高的效率,更低的成本,并且伴伴随编程语言和硬件平台的爆发增长,于是单个程序员完成一套软件变成了梦幻,于是分出来了很多职位,前端,后端,运维,测试,项目经理等等,这些职位咱们都有所耳闻

但是职位分来,一个领域,对应的人员去处理,提高了效率,但是交流的成本提升了,或者叫软件开发流通的成本提升了

为了提升软件开发效率,有一些精英程序员提出了敏捷开发的口号,旨在提高工作效率,完成快速迭代的东西,而在我看来,DevOps思想就是敏捷开发最好的搭档了

那DevOps到底是什么呢?

DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节

DevOps一词的来自于Development和Operations的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。


2. 现在

DevOps希望做到的是软件产品交付过程中IT工具链的打通,使得各个团队减少时间损耗,更加高效地协同工作。专家们总结出了下面这个DevOps能力图,良好的闭环可以大大增加整体的产出。

而现代是用工具来完成这一系列的功能的,需要准备什么工具呢

  • 代码管理:GitHub、GitLab
  • 构建工具:Webpack
  • 持续集成(CI):Jenkins
  • 容器:docker
  • 容器编排:Kubernetes
  • 还有其他的方面:服务注册与发现,脚本语言,日志管理,系统监控,性能监控,压力测试,预警,HTTP加速器,消息总线,应用服务器,数据库,项目管理(PM)......

来几张图大家感受下

工具集合(网上找的图片,不全,也可能比较旧,但是这意思)

实际应用(抽象)


3. 总结

整理文章的过程中感受颇多,对我帮助最大的就是,我之前可能经常听别人说docker,持续集成(CI),持续部署,持续交付,Jenkins这类的词,但是不知道是啥

于是我去探索了一遍,但是发现虽然会用,能解决一些开发中的痛点,但是还是有种盲人摸象的感觉,因为工具太多太散,没有方向,自己的时间精力又有限,太无奈了

直到我了解到了DevOps思想,才明白,这些工具或者技术,都是为了让软件开发更快,节约成本,解决企业的痛点而诞生的,单个技术或者工具可能不能理解全貌,但是了解了 DevOps思想,再去学这些知识,就有一种有了地图一样去走迷宫,很清楚


职业思考 🔥

为什么写前端你应该知道 DevOps,一个是我是前端开发工程师,如果我想往上提升,就遇到一堆的工具,webpack,docker,Jenkins,gitlab,CI,CB,遇到这些东西的时候傻傻的,不知所措,

于是我去找资料,终于找到了 DevOps 这个能给这些技术封一个壳的东西,也就有了边界,也就让自己走路的时候有了目标

还有就是目前的社会行情,并不缺少单方面的前端,几年来因为Node技术的兴起,还有大量的软件开发思想,编程管理思想融入进来,我虽然工作时间短些,但也感触良多

我觉得这个时代需要一转多长的人,一个领域非常精通,但是其他方向也要稳得很很才可以,所以我的职业生涯规划打算是这样的:前端开发工程师 ---> 前端架构师 ---> CTO,所以我整理这篇文章。希望对你有所帮助


以上文章信息和图片选自


🔥 如果对你有所启发和帮助,不要吝啬您的赞,转发或者评论都是对我的鼓励和帮助 🔥