• 从单个系统到云翼一体化支撑,京东云DevOps推进中的一波三折


    Alt

    作者:王利莹

    采访嘉宾:京东云DevOps团队负责人 郑永宽

    今年,IDC 特别针对中国地区发布了《IDC MarketScape:中国 DevOps 云市场2019,厂商评估》研究报告,IDC 对具有代表性的 7 家 DevOps 云提供商进行了深度研究。

    报告显示,基于产品现有能力、未来策略与投入、市场表现与客户满意度三大指标体系的综合评估,京东云 DevOps 跻身”Major Players“(核心厂商)位置。

    Alt

    IDC 认为,未来 1–2 年市场将高速增长:公有云 DevOps 服务成为中小企业和部分大型企业快速实践 DevOps 的优先选择。云厂商在不断吸引和转化自身云平台的用户使用其 DevOps 服务,同时也在不断加强对外的宣传教育工作进行市场培育。预计,未来1–2 年 DevOps 云的企业级用户和个人开发者数量将呈现高速增长。

    不仅是云产品与服务,DevOps 涉及的开发运维团队协作工具与组织内部文化也值得讨论,本篇文章我们来聊聊哪些技术在推动 DevOps 发展,京东云 DevOps 的内部迭代过程、成果以及未来的路。

    什么在推动 DevOps 的发展?

    DevOps 的发展其实是需求带动的,互联网技术浪潮下,随着业务体量越来越大,变更越来越多,协作流程越来越复杂,必须要有新的技术及工具来支撑。容器技术、微服务、AI和机器学习……新的架构方式在解决问题的时候,自然成为了 DevOps 的推手,也与 DevOps 最初成型时期被 IT 人员广泛传播的理念相融。

    2009年,在第二届 Velocity 大会上一个轰动世界的演讲,“10+ Deploys Per Day: Dev and Ops Cooperation at Flickr”,这个演讲提出了 DevOps 的“一个中心,两个基本点”——以业务敏捷为中心,构造适应快速发布软件的工具(Tools)和文化(Culture)。而同年“DevOps之父” Patrick DeBios 在比利时根特市的首届 DevOpsDays 活动,也让“DevOps”作为术语流行起来。

    工具、文化都是为了最终的业务敏捷,也正是容器、微服务等技术所追求和正在推动的。我们常常看到说“基于容器的 DevOps”,“微服务容器化”,在聊这两者具体的作用前,我们先来看看问题从何而来。

    “软件吃掉世界”,硅谷投资人马克安德森曾以一句话撼动了整个业界对 IT 的认知。从传统瀑布模型,到敏捷开发模型,到 DevOps 开发模型,逐步解决软件开发的敏捷和运维的敏捷。

    云计算解决了计算、网络、存储这几个方面的弹性问题,但是在应用迁移和应用扩展时,还有未解决的问题。

    • 应用迁移涉及到迁移软件类型、编译及运行环境、迁移工具,而不同的环境下安装软件,牵扯到权限问题,配置问题,文件路径问题等,一旦出错就会造成安全损失。对于开发和运维团队来说,往往需要不断地在不同环境安装软件,容易出错。
    • 应用扩展涉及到新环境部署,涉及到开发环境服务器、部署方式、测试环境的不同等,特定场景下需要更多的服务器来处理大批量需求。

    服务器的问题是大问题,如何让服务器可以同时处理多方需求呢,大牛们想到了虚拟化技术,什么是虚拟化?虚拟机是虚拟化技术,容器也是虚拟化技术,虚拟机 (VM) 是物理硬件层抽象,让一台服务器变成多台服务器。而容器可理解为应用软件层面的虚拟化,多个容器共享一个操作系统。

    虚拟机镜像太大,拷贝下载都是时间,容器技术跑在云架构里就比物理机更如鱼得水,让应用软件更容易迁移、更容易扩展,从而提升软件交付的效率。

    另一方面,对于面向互联网的企业来说,在用户体量增长时可能会面临大量问题,如果不用微服务会导致架构到某个阶段被迫重构。微服务所倡导的松耦合、高内聚与容器的轻量化、可移植性、快速集成的特点相辅相成,在实际应用中,容器+微服务,组合拳的力量不容忽视。

    兵来将挡水来土掩,云与 DevOps 其实天然相依,让 DevOps 的工作由大模块拆分成小模块再更好地重组,其实就是 DevOps 理念所讲的工具让业务更敏捷,实现持续集成与持续发布。

    而另外一个“工具”——人工智能,机器学习算法、算力、海量数据将让 DevOps 走向更高的山峰——AIOps,这也是我们常听到的词,其实就是让更多的机器学习工具来辅助或者主导整合开发运维交付过程,让原有的系统更有弹性,更加敏捷。特别是对于大厂来说,技术实力、经济实力、复杂变态的业务场景及运维场景,主动逼着 Ops 走向智能也许更加容易。

    除了工具,在文化因素层面,企业内部 DevOps 文化更多是从上而下,领导或团队负责人如何培育团队文化,由点到面,由工具链平台到协作文化,但其实文化讲起来容易做起来难。

    信通院云计算开源产业联盟今年发布《中国 DevOps 现状调查报告(2019年)》,在 1549 份有效问卷及专家访谈支持下,分析提到:多因素造成企业难以推行 DevOps,其中各部门之间目标的不同是企业首选的主要原因。近半数企业认为各部门之间目标的不同是导致 DevOps 推行失败的主要原因。近 3 成企业认为个人优先效忠于自己的部门其次才是组织。

    归根结底,今天 IT 行业的业务需求推动是首要原因,要让用户体验好,不被时代抛弃,技术人在探索这些新的技术、工具、协作方法、文化,DevOps 被广泛讨论及实践其实也说明了它的前沿性和正确性。

    京东云为什么要做 DevOps

    回到京东云,2016 年京东云正式商用,在国内其实算起步较晚,但是让云更好地服务自身及客户是使命,整个云计算的基础生态建设是必须要做的,而做云计算的基础生态建设离不开 DevOps。

    我们也可以这样说京东云在做并且能做,离不开自身的“超级电商”场景,离不开大量的人才资金投入,我们都爱关注和参加大促活动,大大小小活动也几乎每天都有,为了响应业务需求,势必要求开发敏捷,而伴随电商业务的海量数据、丰富的运营策略,要求开发团队在短时间内快速迭代,持续时间甚至不超过两周,同时也要求运维敏捷实践,于是 DevOps 必须要做。

    在早期的京东,是采用“HumanOps”的方式去发布产品,随着京东业务的不断扩展,线上环境也越来越复杂,这就要求京东的发布系统、监控系统、日志系统等基础设施的建设能够满足业务增长的场景,于是京东开始逐步构建 DevOps 平台,通过不断的迭代,在 2016 年京东云正式商用,也同时把自身业务的实践经验,形成了京东云 DevOps 方案正式发布。

    京东云推进 DevOps 的决心

    “京东云 DevOps 平台在内部经历过几次迭代,才发展到今天这样一套平台,为大家提供能力。”

    最早期的时候,京东云内部分别构建了部署、监控、日志的系统能力,但发现各个系统虽然能支撑京东云业务的研发运维的需求,但是无法做到很好的一体化支撑。

    因此京东云构建了最基础的 CMDB,CMDB 的建设可以说决定了京东云 DevOps 平台的最基础的底座,早期 CMDB 会有一些模型上的问题,以及数据准确性的问题,导致了 DevOps 平台能力有各种数据不一致的问题,或者模型不匹配的问题。

    由此京东云构建了“以 APP 为中心,向上构建业务模型,向下构建资源模型”的 CMDB 模型,京东云内部称为服务树,以服务树为基础进行研发运维能力建设。服务树打通了各个系统之间的元数据,解决了信息孤岛问题,但这时分散的运维系统导致了监控、部署、日志等操作的分散,各种研发角色之间很难紧密协同,不利于 DevOps 的实施。

    而后京东云在服务树基础之上进一步构建了 DevOps 平台——云翼,从而统一了操作入口,提升了用户体验和操作效率。如今的云翼 DevOps 平台有四大优势:

    • 跨平台混合云管理——私有云、公有云和各种虚拟化平台。如VMware、OpenStack、物理机资源的统一接入;
    • 服务容错,永不掉线——自动为宕机服务器上运行的容器(云主机)重新迁移并生成新的实例,保障业务不掉线;
    • 全链路监控服务——缩短异常 MTTR,保障业务正常运行
    • DevOps 提升企业交付能力——统一操作平台,打破开发和运维团队之间的障碍。

    系统构建完成后如何更好地被内部接受,推广的形式十分重要,怒吼发展 DevOps 文化是正确的,需要在组织文化上进行变革,在企业内部实施过程中把文化和技术的方法论结合。当然也不能空谈文化,要有工具的结合,工具链平台也很重要。

    “毕竟在企业内部,文化的转变,难度之大超乎想象,因此 DevOps 的落地推动,更应该是通过工具链去引导文化, DevOps 应该像流水线一样,把各个角色的人员连接在一起。推动在内部跨团队跨角色的落地实施。”郑永宽提到。

    谈到京东云在 DevOps 的研发投入与研发团队情况,郑永宽说:“京东是一家重视技术的企业,在今年的 JDD 大会上,京东宣布开启京东技术服务元年,我们会把技术作为我们的核心能力,我们 DevOps 研发团队大部分都曾服务过 BAT 一线互联网企业,都拥有非常扎实的研发能力,近期我们也在不断引入行业内最优秀的 DevOps 专家。”

    而京东云不仅仅在研发上投入资源,另外针对大客户使用 DevOps 的情况,还提供了专门的服务团队,包括客服、技术中台以及大客户专属架构师服务团队,目前服务团队大概规模近百人。

    京东云 DevOps 成果与优势

    Alt
    京东云 DevOps 产品图览

    在整个软件交付过程中,对于开发和运维来说,代码的版本化管理至关重要,代码提交的效率和代码的安全也非常重要,京东云构建了自己的代码托管平台 Code Commit,版本库多地部署,保证代码在京东云的安全性和可靠性。同时它可以无缝对接京东云的云编译产品,实现从编写源代码到输出构建结果的一站式服务,保证持续交付全流程。

    整个产品层面,京东云 DevOps 提供了代码托管、云编译、云部署、流水线、日志服务、云监控、云拨测、性能测试、测试管理、云翼 DevOps 平台等能力,京东云通过自身产品的能力进行整合,也形成了部署、测试、日志、监控方向的技术解决方案。

    在软件交付效率和软件交付质量提升上,京东云 DevOps 提供了从代码、构建、部署一条流水线式的方式来实施交付,同时提供测试管理、性能测试等测试方向的管理工具,来保证企业的软件交付效率与质量。

    我们在了解或使用一项技术一款产品的时候,总会问为什么值得,它好在哪里?对于京东云来说,DevOps 最大的优势是源于京东自身业务实践,京东云 DevOps 目前提供的多重产品以及解决方案都是经过验证的成熟的产品。经受多次 6.18、11.11 电商大促的严峻考验,保证了高效高质的交付和对流量压力的灵活应对。同时不仅可以实现工具链产品与平台化产品的结合,提供 DevOps 工具链产品与平台化产品两种形态,帮助不同的客户需求灵活定制方案,助力企业数字化转型与产业互联网发展。

    此外,基于电商互联网的基因,京东云 DevOps 相对于竞品,在 Ops 部分投入了更多的精力,更具备可以满足各种复杂场景的自动化运维能力,具体表现在:

    • 与京东云深度集成,提供统一的运维入口,一站式解决业务生命周期内服务管理闭环,可以满足各种复杂运维场景一键式作业,实现真正的自动化研发运维;
    • 运维管理可以与企业组织结构匹配,基于角色的权限管理,满足企业层次化运维管理;
    • 智能监控提供基础-存活-性能-业务全链路监控,确保监控覆盖,提供丰富异常检测手段和报警策略,降低故障 MTTR;
    • 统一的元数据管理平台,统一运维入口,有效提升运维效率和降低运维复杂度,进一步降低稳定性风险;
    • 从保障用户业务稳定性的角度,DevOps服务可自动为宕机服务器上运行的容器(云主机)重新迁移并生成新的实例,保障业务不掉线,高可靠运行。系统自动监控服务健康状态,动态调整集群,实时调度相关预案,实现故障自愈。

    而其实在去年,“2018 GOLF金牌运维峰会”上,京东云翼 DevOps 就荣获“运维行业2018年度明星产品”。

    京东云在 DevOps 上的未来规划

    针对未来的规划,京东云有三个方向的策略:

    1完善标准化产品+解决方案
    京东云作为行业内极具产业属性的云智能厂商,会在标准产品能力基础上,结合京东集团在零售、物流、数字科技等方面的组合生态优势,在助力业务自身实现持续迭代、发展的同时,立足产业特点与京东集团深厚行业经验,将 DevOps 产品结合其他云产品服务以解决方案形式落地输出。

    2依托京东云开发者社区,进一步推广 DevOps 产品
    面对大众开发者、重点开发者与合作伙伴群体,从内容支持,布道师技术支持,到代码、数据级交流提供持续服务,为京东云客户提供更好的上云体验。

    3完善核心生态体系
    有关渠道拓展,京东云将在充分发挥自身销售能力、品牌输出的同时,进一步利用渠道打造开放环境,构建产业生态圈、吸引更多的开发者和合作伙伴,完整建立起围绕京东云公有云、私有云云平台的核心生态体系。

    京东云一直在致力于产品的研发和完善,产品也比较少对外发声,后续在推广上将会加大力度,让更多的企业及开发者了解其能力。包括举办 DevOps 专项活动(如:京东云 DevOps 自动化运维技术实践·上海站),开发者社区的布道,与外部咨询机构合作,通过专业客观的评估,来向外传达京东云 DevOps 的相关能力。

    结语

    “故事的开头总是这样,适逢其会,猝不及防。故事的结局总是这样,花开两朵,天各一方。“,用恋爱关系打个比方,对于发展 DevOps 来说,开发和运维同学们,也别天各一方了,还是并蒂双开吧。

    点击“阅读”了解更多关于京东云翼

    欢迎点击“京东云”了解更多精彩内容

    Alt

    Alt

  • 相关阅读:
    开发一个delphi写的桌面图标管理代码
    web颜色转换为delphi
    delphi RGB与TColor的转换
    用Delphi制作仿每行带按钮的列表
    Delphi 之 编辑框控件(TEdit)
    numEdit
    DropDownList添加客户端下拉事件操作
    19个必须知道的Visual Studio快捷键
    asp.net线程批量导入数据时通过ajax获取执行状态
    详解JQuery Ajax 在asp.net中使用总结
  • 原文地址:https://www.cnblogs.com/jdclouddeveloper/p/12068170.html
Copyright © 2020-2023  润新知