欢迎光临散文网 会员登陆 & 注册

devops流程

2020-05-31 21:29 作者:数字化技术专家  | 我要投稿

敏捷的延续和扩展,敏捷的多功能团队里面没有包括运维人员,这就造成了一个鸿沟,研发人员目标研发尽量多的特性,尽快上线获得用户反馈;运维人员目标是系统运行稳定,避免网上问题;两者目标的冲突导致很多问题,DevOps就是来调和这样一种合作关系的。

DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

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

它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运维工作必须紧密合作。

1、组织变化

1)全功能一体化团队,以产品为中心的团队

(1)运维迁移到项目团队,把运维需求都提在项目需求里面,并在项目过程中参与验证反馈,因为需求研发完导入运维应用落地。

2)运维能力够也可以参与到编码中,编码也是负责运维的需求编码

3)业务运维跟基础设施运维分开,业务运维直接由开发负责,开发人员轮班

2)亚马逊,开发人员轮流值班负责应用特性的维护,运维人员负责基础运维;谁值班谁有维护的权限,itsm工单会直接发给他,对他也会有问题响应、问题解决灯kpi指标。

3)google,sre 站点可靠性工程师,负责设计开发可靠性,因为用户无感知的技术bug不会影响客户体验,sre就设计系统的可靠性,保住系统出问题时不会影响用户;

SRE工作举例:

比如说数据中心的冗余,两地三中心;

比如网络链路的冗余,多运营商、多链路、多路由,保住一个链路出问题没影响;

软件系统的可靠性,比如双机、分布式、负载均衡、容灾/备份;

4)小团队运作,亚马逊设计成两个比萨的团队,也就是teambuilding是两个披萨就够吃了,就是12人左右,大家可以围在一起,方便交流,这样沟通最充分、效率最高。

2、优秀实践

1)环境部署

(1)基础设施即代码

利用虚拟化技术和容器技术,结合软件部署管理服务,实现环境的信息象代码一样管理起来,开发环境、测试环境、类生产环境、生产环境直接传递环境信息,而不是现场安装、部署、调优,机减少工作量降低出错概率。把发布包和脚本文件等象代码一样管理起来,随着版本一起发布。

(2)配置即代码

配置通过服务化实现,改变传统的环境变量,系统变量,配置文件,各个系统独立配置的实现,变成统一服务实现;通过类生产环境验证,配置文件跟代码一样进行配置管理,跟着发布包一起发布。

(3)蓝绿环境

蓝环境代表新生产环境,绿环境代表老生产环境,两者数据是一致的,绿环境接入正常业务,蓝环境先进行冒烟测试,测试通过后接入少量业务请求,验证正确不断增加请求,直到全部结果,蓝环境变成绿环境;如果中间遇到蓝环境问题,立即停止蓝环境接入请求,恢复蓝环境产生的脏数据。

(4)类生产环境测试

建立跟生产环境完全一致的环境进行测试,包括数据也是现场导回来的数据,尽量保证环境的一致性,再结合环境搭建的自动化能力、基础设施即代码、配置即代码,这样升级现网时遇到问题的概率就会非常低。

2)研发流水线

利用自动化工具实现代码检查、编译构建、测试、打包发布的全流程全自动化;包括静态代码检查、自动化测试、持续构建、持续集成、持续交付等敏捷优秀实践。

3)发布

(1)金丝雀发布

麻雀虽小 五脏俱全,建立一个最小化的生产环境,把少量用户负载分流过来,通过对这部分用户进行验证,验证通过后再扩大站点,升级其他站点。

(2)灰度发布

通过新版本只支持友好用户方式进行验证,只有友好用户才能看到使用到新的特性,对这部分用户的使用进行用户操作采集和验证,验证正确后再发布给全部用户使用。

3)公测

发布公测版本,邀请友好用户测试,不断迭代稳定后在发布商用版本,公测版本是免费的,也会给友好用户一些福利措施。

4)特性开关

通过特性开关,让选择的用户才能使用这些特性,在用户知情状态下进行验证,这种方法也很适合互联网服务。

4)运维监控与分析

(1)自动化监控

系统服务的监控管理平台,实现包括服务的监控,服务运行状态度量。

(2)A/B测试

对于一个功能开发两种操作体验模式,分别进行验证,通过用户操作和反馈来决定用哪一种。

(3)统一工单系统

全组织基于同一套itsm系统,利用系统数据进行绩效度量

(4)自动化扩容

自动启停服务、自动扩容服务、自动减容服务;

(5)用户反馈与行为分析

采集用户端的用户行为数据,用户网页停留时间,用户页面跳出率、操作出错率、成功率进行分析,进而优化产品体验。

5)服务化研发

(1)微服务架构

现在都从分布式总线架构过渡到服务化的架构了,利用微服务架构方便分割产品模块,方便共享开放,方便后期的运维监控,方便发布部署。

(2)云原生架构

基于云上的服务进行设计开发也变得越来越受欢迎。

devops流程的评论 (共 条)

分享到微博请遵守国家法律