前端开发与 DevOps 实践

前端开发 Apr 8, 2020

DevOps(Development 和 Operations 的组合词)是一种重视“软件开发人员(Dev)”和“IT 运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。DevOps(Development 和 Operations 的组合词)是一种重视“软件开发人员(Dev)”和“IT 运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠(维基百科中给的解释)。

DevOps 的诞生

2009 年,Patrick Debois 发起了一个名为 DevOpsDays 的会议,始于比利时,现已传播到多个国家。术语 DevOps 现在已经在多种情况下使用。Bass, Weber 和 Zhu 提出的定义是:

DevOps 是一组旨在保证高质量的同时,减少将更改提交到系统、以及将更改放入正常生产之间的实践。

即 DevOps 的目的在于:保证高质量的同时,减少发布流程的总耗时。DevOps 早在 2009 年就有人提出来,但是,为什么近几年才开始受到越来越多的企业重视和实践呢?因为 DevOps 的发展是独木不成林的,现在有越来越多的技术支撑。微服务架构理念、容器技术使得 DevOps 的实施变得更加容易,计算能力提升和云环境的发展,使得快速开发的产品可以立刻获得更广泛的使用。

DevOps 的价值

几乎所有的开发、测试、运维都听过敏捷软件开发,有些公司也是采用这种模式,来进行产品的快速迭代,以此验证产品的可行性,快速抢占市场、拿到更多投资;或提供更多的功能给用户使用;或修复软件 Bug 解决用户的抱怨。快速迭代意味着产品需要频繁的部署上线,这也就意味着研发、测试、运维团队必须克服这种频繁上线带来的诸多问题:研发质量低;测试不充分,上线后 Bug 层出不穷;运维上线部署慢、跟不上研发的节奏,经常由于环境、配置等问题导致应用不能正常提供服务等等。

一方面公司希望快速将产品交付给用户使用,另一方面技术人员又害怕这种快速交付,毕竟越快越容易出问题,而且压力巨大。正是在这种背景下,DevOps 应运而生。为研发、测试、运维团队提供了理论性指导

DevOps 的实践

DevOps  运动的主要特点是强烈倡导对构建软件的所有环节 (从集成、测试、发布到部署和基础架构管理) 进行全面的自动化和监控。就目前而言(2020),DevOps 实践渗透,已早已不止持续集成持续交付持续部署监控等方向,有团队出品了一个 DevOps 元素周期表,它所关联的工具、涉及的服务之多,可见一斑。

DevOps 元素周期表

Web Developer Roadmap 2020,有列出前端、后端、以及 DevOps 三大块,这里列出来以供大家参考。

DevOps Roadmap

借助这个思想,可以将其延伸至其他各个方面,如编码、学习、娱乐等;在遇到第二次做相类似的事儿,就该想着用极客的思维、精益求精的态度,将其简单快捷化,从而达到节省时间、愉悦心情之目的;在这段节省出来的时间内,可以尽情去玩儿,享受生活。倘若再抽出时间,用力学习以及打造属于自己神兵利器,至此一个优良的循环♻️就被营造出来了。笔者在此也有过一些尝试  ── Arya Jarvis:将平时常用的功能做了简化和集成,在需要的时候,一键即可完成,体验贼爽(每有新的诉求,就利用闲暇以扩展之)。

用好 Mac(Window)以及常用编辑器,能让你更好的编码;了解 Markdown 语法,能帮助你写文章、文档;玩转搜索引擎,可帮你解决掉绝大部分开发常见问题;熟悉 Chrome,无疑可以提升前端开发技巧;掌握诸如 Shell、GulpPython 等可以让你更快完成一些脚本;精通 Git,能更好管理你的项目代码;运用 CI/CD 工具,可协助你打造自动化流程...... 其他如 DockerGraphQLServerLess 等等,更是能给如今的前端开发者,带来极大的便利(更多可参见与时俱进版前端资源教程),嗟夫!善用工具兮、妙趣无穷哉

工具也是思想

  1. 技术与工具,是为解决问题、提升效率而生而用;  倘若只是为用(追逐新颖 or 时髦)而用,多少有些违背初衷,走火入魔;
  2. 正如《人月神话》中所说:“没有银弹”;  软件开发过程里,没有万能的终极武器;  只有「综合」而「灵活」运用各种方法,才是解决之道;
  3. 采取「微服务架构」模式,提倡将复杂庞大的系统,拆分成各个不同小组服务(粒度小,专注做一件事),服务之间相互配合、,渐进融合;
  4. 切勿追求一步到位(没必要,也不可能);唯有变才是唯一不变;避免前期过于复杂的拆分,以及人力、时间成本,做好预判、支持扩展;
  5. 保持学习、保持激情,主动去了解新的技术、工具、思想,然后适时采用;

最后补充一句:君子生非异也,善假于物也,共勉。

于 2020 年 04 月,深圳.福田。

Tags

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.