三年连发3大重磅产品工具,易观技术男憋不住要分享DevOps实操干货了

易观 2018-08-22 262

DevOps落地三阶段:敏捷开发流程规范阶段、持续交付、技术运营阶段。

导读:易观深耕大数据分析领域多年,在近三年的时间里来先后推出了易观千帆,易观万像,易观方舟三大重量级的产品及工具服务。在产研方面,易观一直推崇MVP,追求快速的精益迭代;基于精益创业的理论原则,在产品设计、研发流程、技术架构方面形成完善高效的体系流程,并组建优秀团队,完成了DevOps在易观的实践。

 

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


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

 

DevOps的落地实施一般分为3个阶段:敏捷开发流程规范阶段、持续交付、技术运营阶段。

 

在敏捷开发的流程打造中,通过集成gitlab、jira、confluence完成了对于产品需求、项目计划、过程管理的全流程高效集成,结合相关系列生态的工具插件的使用,保证了产品研发的高效流程。

 

易观在产品研发中采用基于springcloud的微服务应用架构,遵循一切皆组件/服务的设计原则,保证了各组件服务、业务服务最大程度的复用,极大提高了研发的迭代交付效率。

而在持续交付(CI&CD)这一层面,通过jekins、docker整合CI&CD以及自动化测试的工具,完成了各产品、项目的快速验证和交付。


开发提交

开发人员将代码在本地测试后,提交到版本控制系统,如Gitlab代码仓库中。


自动构建

持续整合系统(如GitLab CI 或Jekins CI),检测到版本控制系统有更新时,自动从Git仓库里拉取最新的代码,进行编译、构建, 其中包括如checkstyle、sonar、pmd、findbugs等检测工具。

 

单元测试

Jenkins完成编译构建后,会自动执行指定的单元测试代码, 易观针对在前后端的UnitTest中选型使用了Karma& Spock工具,同时还利用了jacoco工具来进行一些单元测试覆盖率分析。


测试环境

完成单元测试后,Jenkins会将应用部署到与生产环境相近的测试环境中进行系统性的测试;基于Selenium的GUI自动化测试及JMeter的API接口贯穿自动化测试极大的提高了测试能效和产品测试质量。


UAT测试

在UAT环境里,同样会使用Selenium、JMeter自动化测试工具及脚本进行一些最后的自动化集成测试,保证高效的CD;当然, 这个阶段,易观的QE、产品人员会进行大量的场景覆盖测试,以保证产品的功能及用户体验。


生产部署 

通过所有测试后,便可以使用灰度更新将最新的版本部署到实际生产环境;目前易观产品服务50%以上实现了灰度更新。


在持续的技术运营方面,最重要的是实现服务的弹性伸缩及监控预警。易观在弹性伸缩方面,尤其大数据运营分析工具易观方舟中,通过Ambari及自定义的插件开发,完成了整体大数据及服务平台可视化一键打包部置、扩展;而在整体SaaS产品服务方面,通过利用Prometheus、Grafana整合docker、kubernates、springcloud以及其它生态组件和工具, 完成了所有服务链路、中间件、组件、产品服务的可视化监控和预警,保证了SLA不低于99%。

所谓工欲善其事,必先利其器。在DevOps的落地实践中, 易观引用了相当多的组件和工具集。同时,也基于这些工具和组件做了相当多的整合开发和二次开发,方才形成了完善的研发流程及体系。

易观CTO郭炜曾经提出关于技术管理者应该具备的5个核心能力,即:

领导力——“成事”的能力;

文化构造能力——“影响意识”的能力;

人员管理能力——“人*100”的能力;

体系搭建能力——建巢、管事”的能力;

技术实力——“技术肌肉”的实力。


DevOps在易观产品研发中的落地,不仅是易观技术研发体系搭建能力的体现,同时也是易观技术研发人员不断追求卓越的表现。

 


2018易观A10峰会早鸟票

 ★199元限时特惠★