5大国内外名企转型之痛悟:三步走实现DevOps落地(附PPT)
- 2022-07-04 10:00:00
- 马致杰
- 转贴:
- dbaplus
- 633
讲师介绍
大家好!我叫马致杰,是JFrog中国的负责人,来自美国加州。我个人之前是做数据中心架构方面的工作,包括服务器和跨境数据中心的网络架构等等,现在专注在DevOps这个领域。一、我们为什么转型做DevOps
JFrog成立于2008年,总部在硅谷,2016年底开始做中国的业务。我们认为统一的二进制管理是一个刚需,所以我们专门成立了一个团队去服务国内各个行业的顶级公司。目前我们的客户遍布各行各业,他们通常会基于JFrog的产品去做全公司的DevOps平台。我们做的是统一的包管理系统对接到DevOps整个生态,所以对接DevOps整个工具链并且落地CI&CD,都是通过JFrog的平台去实现。因此,我今天会分享如何在公司内部实现这样的统一的DevOps平台。之前很多公司也会在YouTube上分享他们的DevOps案例,大家有兴趣可以去了解。
在正式分享案例之前,我想讲一下为什么我们要转型去做DevOps。
去年有一家公司做了一个部署和管理工具,他们每年都会出一个报告。去年他们的报告为这些公司做了一些“画像”,将这些落地了DevOps的公司和世界500强公司作对比,划分为高效率、中效率还有低效率的三种类型。他们统计了每个公司的部署速度,代码提交到线上的时间等参数,还有比较关键的是考察维度是回滚,就是解决线上问题的时间。
所以今天我会分享这些公司如何从低效率转变为高效率。
也许很多人会问我为什么需要快速发布?这是因为他的公司并不是一个互联网公司,解决线上的问题只是众多应用场景中的一个,对此我可以做更多的分享。
二、传统企业案例分享
案例1:CapitalOne
第一个案例是CapitalOne。CapitalOne是一家成立了20年的银行,虽然跟美国一些大银行比历史比较短,但他们现在也是上百亿美金收入的规模,是一个非常大的银行。他们最近发布了一个开源的DevOps报表平台,并总结了一些痛点,如下图所示:
他们的转型是在五年之内从瀑布开始到敏捷,从手动构建、测试和部署到自动化(下图1),虽然美国的银行都会用公有云去做,这个跟国内有点不一样,但是他们也都会用开源工具,之前都是比较封闭的去做DevOps,现在都是全开源工具链,去实现他们的DevOps平台。
版本控制、集成测试、性能测试都是在同一个流水线去做的,所有的产品线都要过这16个关卡。比如,如果代码的测试覆盖率不能够达到80%,中央团队有权不让产品上线,所以他们根据上线规范制定了16个质量关卡,这些数据都是基于Jenkins、JFrog API去统计。
通过Hygieia,我们可以看到每个流水线阶段的耗时等信息,这样可以开发可视化的页面、发现每条流水线的问题或者瓶颈。哪个团队效率最低,每个产品线都可以有一个可视化的页面。
案例2:ING
ING是一个欧洲的保险公司,他们有600个团队,人员规模特别大。他们从2013年到现在落地了一个全公司的DevOps平台。之前他们每个产品线都会独立维护一个Jenkins、JFrog、Gateline,每个产品线都是自己做部署,各自维护他们的工具,所以中央团队无法去评估公司的效率,无法推广标准化的最佳实践。有可能某一个团队下载一个有漏洞的包,然后发布到线上环境,安全团队、中央团队、领导层无法知道如何控制风险,也无法落地最佳实践。
他们的落地策略是通过权限去打通工具链,所以现在不同的产品团队,会向中央团队提供的Jenkins集群、Gataline、Github去做发布。
ING并不封装工具在云平台上提供服务,而是打通工具链的权限。现在他们可以实现统一的规范、统一的控制和流程,下图是ING荷兰国际集团的做法,值得大家去借鉴。
对接了工具之后,会收集CI和CD各个流程中的数据做一些统计和分析。他们提供的工具链平台叫CDaaS,上面不止是有认证,也有一些社区、wiki、最佳实践,所以这个平台变成社交DevOps,每个人都会在上面分享自己的最佳做法,整个文化氛围也会变得更加开放。
案例3:Adobe
之前Adobe是做桌面的软件,他们的Photoshop很多人都用过。从1992年开始,他们开始做一些Cloud Based的软件,也就是转型到公有云软件提供商。Adobe的研发团队有近一万人规模,他们让每一个发布的包,不管是一个JAR包、WAR包或者一个镜像,跟需求、构建等绑定,它还会进行漏洞扫描,确认通过再做发布,这些都是通过同一个流水线去做。案例4:国内某银行1
接下来的一个案例来自国内某银行,他们有一部分应用使用了容器,所有产品线都要对接到同一个平台去做上线。目前已经有两千多研发,分布在成都、上海、深圳、广州,他们的模式是领导要求产品线必须通过这个平台去上线,所以现在全公司所有的总行业务都是通过这个平台。案例5:国内某银行2
还有一个比较典型的案例来自于国内另一银行,典型特征是研发与生产环境隔离。三、如何落地DevOps
现在我就来说说落地DevOps的最佳实践。之前我们分享过的互联网公司和非互联网公司都是通过这些步骤去落地的。第一步:全语言的统一CI&CD管理
第一步是做全语言的CI&CD管理。统一管理的好处很多,最重要的是可以针对痛点规范化工具、流程和交付物。我们也有很多关于如何通过Jenkins运行测试并且收集元数据的最佳实践,后面我们可以分享。我们推荐把Jenkins跑在容器里面,上万开发规模的企业都是将Jenkins Slave跑在一个Docker容器里面,任务结束容器就会销毁,而不会长时间占用资源。
第二步:结合元数据&质量关卡打通自动化发布流程
把CI/CD打通之后,第二步是开始收集数据,这些需求、开发、测试和漏洞扫描的结果都要开始收集,通过元数据去决定是否上线,当然也要结合质量关卡。不同公司会收集不同的数据,谷歌最近联合JFrog、IBM发布了一个元数据的标准。第三步:深度挖掘DevOps大数据的价值
第三步是深度挖掘DevOps大数据的价值。分析瓶颈在哪里、分析有哪些改进措施和分析改进后会带来的收益等等。比如分析Jenkins每个阶段花了多长时间,然后进一步流水线通常在哪个环节失败。所以优化的第一步是定位问题,其次才是考虑如何解决。
由于他们内部三万研发都是在这个平台去做上线、部署,所以它可以看到每个任务要花多长时间,对于待优化的团队,可以直接可以找这个团队,告诉他某个任务有问题需要优化。
华为内部也有类似的平台,也是基于相同的理念,通过可视化的编排,他们很方便地知道哪些任务失败且需要优化。每个团队有自己的一个Pipeline可以去看,很方便做跨团队的对比分析。
基于数据的报表平台都可以基于这些工具的API去做,这并不是一个很难的事情。提供一个统一的平台给团队是带来价值的,可视化是将价值直观化最有效的手段。
我们认为能够快速上手的落地方式是自己找这些工具,给一个团队去搭建一个流水线来做POC,5天之内可以看到这个团队上了统一的工具链之后的收益,比如现在不用邮件和电话去沟通,不用加班做部署,这些信息都会变得很透明,这是可以很快度量的一个POC,所以值得大家都来试一下。
DevOps文章
联系我们
联系人: | 阿道 |
---|---|
电话: | 17762006160 |
地址: | 青岛市黄岛区井冈山路157号中南金石国际广场A座3202室 |