企业对外发布产品之前其在内部需要做好各种准备:研发工程师完成产品研发,测试工程师完成产品测试,DevOps工程师部署产品。在这个过程中遇到任何问题,都会影响产品的发布,因此企业在数字化转型的过程中都需要优化这一流程。在软件行业中,优化这个流程的方法论是:DevOps。

这篇文章接下来将围绕以下内容来介绍DevOps:

  1. DevOps在企业内部推广的现实状况
  2. 对企业有价值的DevOps是什么样的?
  3. 如何理解:Devops、CICD、Infrastructure as code
  4. Infrastructure as code的优势
  5. 总结

DevOps在企业内部推广的现实状况

DevOps在中国区企业的推广令人堪忧。大多数企业只实现了DevOps的持续集成部分,比如研发人员提交代码会触发服务器自动编译生成软件产品、测试人员的测试脚本会自动执行并验证软件产品的缺陷。很少有企业能够把发布产品这一部分做好,比如DevOps人员运行基础资源脚本来准备环境、部署产品、监控产品、植入安全机制、优化基础资源等。有部分企业甚至都没有这个概念。下面列举了我经历的一些企业遇到的关于DevOps的问题。

  1. 大多数企业都没有一个完整DevOps团队
  2. 企业对DevOps的理解是不一样的,最终导致没有统一的DevOps方案
  3. 企业对产品发布的认知只是停留在“能用就行”的程度,如何优化、监控、保护基础环境并不重视
  4. 云计算的使用经验匮乏
  5. 缺乏DevOps的实施经验

没有实施DevOps的企业将面临一个问题:产品无法及时推向市场。

对企业有价值的DevOps是什么样的?

在企业内部,研发工程师根据产品经理的需求,在自己的电脑上完成编码、测试、Code Review并最终提交代码并完成产品功能的研发。理想情况下,这些功能会第一时间交付到客户,并为其带来价值。DevOps就是为实现这个流程而提出来的。对企业而言,DevOps的价值在于及时为客户输出高质量的产品,最终为客户创造价值。这一简单的目标背后实际上是由一系列相关的活动所支撑的。让我们看看现实世界中,软件从研发到发布所涉及的工作事项。

阶段一:研发团队根据需求研发产品功能,这个过程涉及编码、测试、提交源码;阶段二:测试团队获取研发团队的成果并进行测试,这个过程涉及到准备测试环境、执行各种测试、生成测试报告;阶段三:DevOps团队获取测试团队验证过的产品并发布产品,这个过程涉及到准备运行环境、监测产品运行状态、实施安全机制、优化资源使用情况。

这些工作事项好似被串联到一条流水线上,由不同角色共同在这条流水线上完成产品的研发、测试和交付,最终把产品及时发布到线上,以供客户使用。因此流水线的流畅性决定了企业响应市场的能力,在软件行业中,这条流水线就是业内常说的CICD。企业开始数字化转型时就应该考虑搭建CICD的策略,因为搭建CICD是一个漫长的过程,期间需要不断地迭代,同时也会涉及到多个团队。试想想,如果福特没有汽车生产流水线,那么福特公司也就无法生产大量的汽车了,同样,在软件行业中,CICD也起到了类似的作用,只不过这条虚拟的流水线生成的是高质量的软件产品。

实施CICD的基础是自动化。也就是说企业需要为研发和发布产品引入自动化机制,而Infrastructure as code是实现自动化的一种方式。它要求研发和发布产品过程中所涉及的工作事项要通过代码的方式驱动。计算机只需要执行这些代码就能完成产品的测试和发布,从而实现自动化。

如何理解:Devops、CICD、Infrastructure as code

在软件行业中,Devops, CICD, Infrastructure as code几个词汇经常出现,它们的最终目标是帮助企业提高软件质量同时向市场推出杀手锏产品。以下是来自wiki的定义:

Devops的定义

DevOps is a set of practices that combines software development (Dev) and information-technology operations (Ops) which aims to shorten the systems development life cycle and provide continuous delivery with high software quality.

CICD的定义

In software engineering, CI/CD or CICD generally refers to the combined practices of continuous integration and either continuous delivery or continuous deployment.

Infrastructure as code的定义

Infrastructure as code (IaC) is the process of managing and provisioning computer data centers through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools.

通过以上定义,读者可以这么理解它们之间的关系:企业在内部推广一场持久的devops运动,找出参与devops运动的各个团队。成立devops团队,使用各种工具(比如Terraform),结合各个团队的需求,以Infrastructure as code方式在全公司建立CI/CD流程。重复以上过程以便持续改进devops、CI/CD、Infrastructure as code实践经验。

Infrastructure as code的优势

Infrastructure as code是实现CICD的一种方式,它的基础是用脚本或者代码来驱动基础设施。不同的脚本或者代码由对应的工具执行,最终实现自动化–CICD。

脚本或代码是文本文件,这些文件可以通过版本管理工具(比如git)来记录版本。有了版本记录就能够快速指定对应的版本恢复,比如,新发布的版本出现问题了,可以及时切换到以前稳定的版本,这个过程可以缩减到1天之内。

除此之外,市面上有很多开源、免费、优秀的工具支持Infrastructure as code。企业常用的工具有:Terraform、Packer、Go、Python、Docker等。一般情况下,高效的CICD是需要借助多种工具共同实现的。

总结

企业在数字化转型的过程中必须不断地改善其内部的CICD,原因在于企业需要快速推出高质量的产品来响应和检验市场,最终为客户带去创新性产品,让自己立于不败之地。DevOps在企业内部推广是一个持久的过程,原因在于它的要求很多:结合各种工具、跨部门或团队、拥有DevOps经验的人才、云计算。因此企业在转型之初就需要开始实施DevOps。

CICD更加具体地指出实现高效DevOps应该关注的核心部分–持续集成和持续发布。因此大部分企业都应该优先实施持续集成和持续发布。在实施CICD的过程中需要借助Infrastructure as code方式,这种方式能够引入版本控制系统和实现自动化。支持Infrastructure as code方式的工具有很多,企业常用的有:Terraform、Packer、Go、Python、Docker等。其中Terraform能够基于云服务商快速创建资源和准备软件环境,在这之后,需要结合其它工具进一步部署产品或服务。

Terraform是一个基础工具,适用于大多数企业,它能够解决资源创建和准备的问题,因此企业应该把它作为打造高效DevOps的工具之一。使用Terraform时,不仅要掌握Terraform知识,还需要结合工程经验,这篇文章:如何在企业中高效使用Terraform,能够帮助企业高效使用Terraform,从而减少企业在实施DevOps过程中遇到的问题。

2cloudlab.com为企业准备产品的运行环境,只需要1天!

企业为何需要在内部推广Devops相关推荐

  1. 就《在企业中发起和推广DevOps》的问答

    \ 本文要点 \\ 如何使用DevOps协调企业各部分间的工作取决于由架构耦合方式导致的团队规模.\\t 为什么企业转型从解决开发过程中最为低效问题着手会更为成功.\\t 为什么改变人们的工作方式需要 ...

  2. 九度搜索引擎点击优化_深圳坂田企业老总在想竞价推广和网站优化选哪个?

    其实这个问题说简单也简单,说复杂也复杂,这里爱江湖科技就好好给老总们讲讲: 首先要了解什么叫竞价推广,什么叫网站优化这两个业务. 一.什么是竞价推广: 所谓竞价推广就是把企业的产品.服务等相关广告内容 ...

  3. 企业应该怎样做网络推广?

    ** 企业应该怎样做网络推广?** 企业应该怎样做网络推广?相信大家对网络推广都不陌生,每个人都能够说出几个做网络推广的方法,但是真正的网络推广不是我们空谈就能实现的,网络推广不仅重视的战略,而且也很 ...

  4. 新书推荐 | OpenShift在企业中的实践:PaaS DevOps 微服务

    新书推荐 <OpenShift在企业中的实践:PaaS DevOps微服务> 长按二维码 了解及购买 多位全球知名企业IT负责人联名推荐,两位红帽和亚马逊AWS云计算和微服务资深架构师和技 ...

  5. 企业网站着手准备网站推广前如何识别目标用户需求?

    相信每个运营人在从事企业网站运营推广之前都会针对企业品牌特定的目标用户群体做出相应的调查与分析,通过对目标用户分析作出详尽调查以便于企业网站建设定位以及企业网站实行网站推广期间的一应准备.那么在运营专 ...

  6. 网络推广外包专员浅析为什么说企业网站都需要网络推广外包?

    自从互联网技术的发展网络营销市场越发活跃,让企业商家能够及时嗅到互联网庞大的潜在市场,随之而来的各行各业都开始建立属于自家的企业网站,但网站建设成功后还需要展开运营优化,这才能确保企业品牌能够长久性在 ...

  7. 白杨SEO:企业如何做微信营销推广?微信营销技巧有哪些?

    前言:这是白杨SEO公众号原创第218篇.为什么想到写这个?因为微信几乎人人都有.在微信上做营销也很常见,但很多传统企业并不知道如何利用好微信这个渠道,所以分享一下. 微信营销是什么?2B企业适合吗? ...

  8. 企业如何判断软文推广效果好不好?

    很多的中小企业因为预算有限都会选择软文营销推广方式,软文推广相对于其他的推广方式来说,成本更低,且软文推广是一个长期持续的过程,效果没有信息流广告那么直接明显,立马就能看到效果,所以很多的小伙伴就比较 ...

  9. python是什么品牌_“Python之窗”百家号有什么作用?企业品牌必须知道的推广渠道...

    备注:本文数据来自站长之家移动传媒平台,文章涉及的数据依托平台大数据计算所得,非百度官方数据,仅供参考. Python之窗是当前百家号中的普通号,目前账号百家号权重为2,综合排名位列784779名,科 ...

最新文章

  1. 如何终止一个正在动态执行的命令
  2. Android之 AndroidManifest xml 文件解析
  3. PAT甲级1046 Shortest Distance:[C++题解]前缀和
  4. 信息摘要算法之四:SHA512算法分析与实现
  5. 经典算法系列三----堆排序
  6. 54. Cache-Control
  7. 微软宣布以197亿美元现金收购语音识别巨头Nuance
  8. r 中文乱码_配置R语言环境,这一篇就够了!
  9. TextMesh Pro不能显示中文的解决办法是创建字贴图,常用汉字3500+特殊字符
  10. 计算机网络课程设计——校园网的规划与设计
  11. Html5餐饮管理app,哗啦啦餐饮软件 餐饮管理系统
  12. HDU 4417 Super Mario(划分树问题求不大于k的数有多少)
  13. html使用a跳转页面,HTML之a标签的使用
  14. linux自定义开机启动脚本
  15. python使用win32com读写excel的问题
  16. 关于ESI研究前沿的思考和使用方法研究
  17. C#对接天翼物联网平台,一些坑
  18. JPEG数据转YUV数据应用实例
  19. 本题要求根据某城市普通出租车收费标准编写程序进行车费计算。
  20. ubuntu18.04详尽编译DS_SLAM流程(推荐收藏)

热门文章

  1. app store账号申请和证书申请发布app
  2. Day02| 第四期-阿里巴巴股票行情分析(一)
  3. java基础-异常处理
  4. 第一个小项目:学生成绩管理系统
  5. 异构数据融合管理系统PandaDB 社区版v0.3发布
  6. DC-DC同步升压芯片PW5100替代PC1961,原厂供应
  7. paddle.paramattr转换为torch框架下算法
  8. php设置时区的两种方法
  9. CDP产品大观之“准CDP”
  10. 【python】用ChatGPT使用爬虫