京东统一发布平台J-one | 高效交付的秘诀就是Ta

来这里找志同道合的小伙伴!

导读

自2016年7月份上线以来,京东统一发布平台J-one已经经历了京东4次大促洗礼,支撑全公司服务端业务系统90%以上的发布,从编译、配置、到发布,提供完善的发布功能及各种支撑上线的小工具。前段时间,J-one团队与公有云精诚合作,重磅推出了发布新功能-镜像部署,可大幅提升京东研发的发布效率,本文以本次升级作为切入点,介绍京东J-one的建设与未来。

京东的业务发展,一直呈现着业务扩展迅猛、体量飞速增长的态势,为了能够敏捷适应市场变化,将京东的业务能力通过研发力量快速地从开发推向给用户,2016年开始我们将原有的depoy 和 老J-one 整合成统一发布平台 J-one,从底层架构上进行全新设计,原来的架构是单机部署,架构不能水平扩展,现在可以根据负载情况实现自助扩缩容,研发上线排队的问题被彻底解决。

几次升级改造围绕的重要核心主要有以下三点:

1) 提高研发同学部署效率;

2) 提高部署成功率;

3) 加强部署平台能力,诸多排障小工具。

>>>> 找到阻挡研发人的痛点

京东原有的部署方式比较偏向于传统,从申请虚机、准备环境再到部署,在准备阶段占用了大部分时间,尤其是在业务扩张太快,资源却十分紧张的情况下,无形中拉长了全公司研发部署上线的战线。如今的J-one平台不仅提供公有云资源的申请入口,还在流程上简化了申请资源的过程。另外,容器能在部署时快速扩容,也能按需缩容,实现资源利用率最大化。

再结合业界最先进的理念和技术潮流,J-one提供镜像部署的功能。先构建出一个可以部署的镜像,然后再发布到生产环境中,在镜像部署中线下测试验证,保证测试环境和生产环境的环境一致性,同时日志和监控自动同步对接,省去研发不少麻烦。如果说原有传统部署平均时效是3个小时,那么现在通过镜像部署,可以分分钟之内搞定部署任务。

>>>> CI/CD全流程打通,打造统一平台

在应用类型多种多样,技术百花齐放的研发环境里,成百上千个应用往往涉及不同的编程语言、中间件、数据库等等,以及众多针对软件开发的方法论,例如:敏捷开发、精益开发等,这些给J-one平台带来了很多挑战,也对平台的基础设施建设要求越来越高。

从技术角度来说,更推崇研发人使用最顺手的开发语言、最高效的方式来开发最完美的产品,所以J-one首先实现了可定制化的容器编译,借助 k8s 弹性伸缩能力,可以根据需要弹出需要的编译镜像,编译完成后进行资源的回收,充分压榨物理机的资源。目前仅用了10 台支持了全公司每日上万次的编译需要,之前编译机约30台,已经支持了 c++(4.4.7) 、go(golang-1.9)、nodejs(node:8.9.4)等等,可以为编译提供多种场景,解决多样化的需求,保持编译环境的干净独立,使编译时长至少缩短到原来的一半。

现在开发的频率越来越快,平台突发性、集中上线的诉求在减少,无形中为J-one提供了一个打通部署/发布各环节的机会。如何才能使CI到CD更加无缝衔接,保障开发高效快速的流转到生产环节。关键还是要加强J-one的基础设施建设,没有基础设施就是无根之木。

在研发过程中所依赖的整个链条上的工具和平台要做到畅通可靠。专属的编译平台、专属的代码评审平台、专属的需求平台、专属的测试平台,包括监控平台须得相互连通、打破壁垒。研发最希望得到的是一个能够只关注于本职开发工作,通过代码提交来触发一系列的交付流程,达到持续集成,持续测试,持续部署的目的,让 idea变现周期性更短。 因此J-one平台正在有计划地向这方面靠拢,搭建所有环境里面能够涉及到的、能够以自动化方式解决的基础设施。

>>>> 更多的自动化工具,更快速地响应业务

在原有功能基础上,本次J-one升级添加了很多实用的小工具:

  • 包依赖对比。源自于京东研发发展的历史背景,待上线包需要和上线包作对比,如果有出入,可以提前避免上线过程中会出现的问题;
  • 包依赖管理。京东业务背后涉及的业务应用包之间依赖关系错综复杂,引入包依赖分析能够迅速的梳理出应用背后的包依赖关系,如果出现问题能够自动定位问题源,反馈给相应的运维人员;
  • 包应用的依赖分析。应用分析通过第三方的服务接口,当业务应用出现问题时,通过依赖分析会自动排查系统中那个部分出现故障,定位上、中、下游,减少运维人员绕弯子查找;
  • 系统/应用导出功能。满足各部门对本部门系统和应用的导出需求,将权限下放,导出相应部门的一级部门系统信息/应用信息;
  • 重启更新配置。权限下放给系统负责人,有系统负责人控制是否需要开启该功能,做到系统层级开启该功能,根据需求和场景,随时开启/关闭。
  • 研发自主操作Nginx文件。工作区,线上实例中增加Nginx文件的启停和编辑功能,无需运未介入即可启停NG,快速切断流量;

性能优化,部署速度提升5倍。提升发布、回滚速度。在5分钟左右并行发布300台机器;

……

对于J-one平台,各环节基础设施的完善有迹可循,但更重要的在于对平台稳定性、可靠性的建设,不懈追求服务功能的强大也不能忘记对“美”的追求,这种“美”来自于使用者的依赖和信赖,做到能真正服务用户、提升用户的好平台。

原文发布于微信公众号 - 京东技术(jingdongjishu)

原文发表时间:2018-09-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算D1net

公有云供应商加入无服务器计算的浪潮

无服务器计算正在所有云服务供应商间流行着,而AWS Lambda之类的工具将可能改变资源的利用方式,尽管这一切还在萌芽阶段。 无服务器架构是云服务提供商之间最新...

3466
来自专栏ThoughtWorks

打造企业级移动测试云平台 | 洞见

移动技术发展到现阶段,原生、混合式技术发展的足够成熟,可以无缝融合。而随着移动技术的发展和革新,移动领域的测试技术和实践也有了一定发展:工具不再像早期一样几家独...

2085
来自专栏云计算D1net

IBM与微软在云平台方面达成合作协议

IBM与微软已经达成一项在云计算领域合作的协议,微软Azure云服务将能够使用IBM中间件,IBM Cloud云服务也能够使用Windows Server和SQ...

3035
来自专栏PPV课数据科学社区

2014年大数据和预测分析市场值得关注的趋势

企业高层管理人员一直希望能够从其IT部门收集的客户数据中获得可操作的洞察力。很多人已经有些等得不耐烦,他们现在就像看到结果。 Ovum公司预...

2764
来自专栏Java学习网

如何定位与唤醒沉睡用户

典型的沉睡用户定义,是指一段时间没有使用你的 App 的人。App 的目标是鼓励用户更频繁地使用,对于大多数 App而言,「一段时间」相对较短:几个星期或者一个...

3226
来自专栏WeTest质量开放平台团队的专栏

移动应用的“红海”时代,靠什么突出重围?

2016年,对于移动应用产业来说,是颇为艰难的一年,国内移动应用行业增速整体放缓。流量获取成本增高,App/手游同质化严重,很难轻松打造一款现象级移动应用。与此...

1392
来自专栏WeTest质量开放平台团队的专栏

远离服务器宕机,腾讯WeTest正式推出服务器深度性能测试服务

原文链接:https://wetest.qq.com/lab/view/415.html

1652
来自专栏张善友的专栏

ASP.NET MVC的SNS软件Spacebuilder

SpacebuilderV4.0 展示了全新构建的微博、贴吧、群组、日志、问答、相册、积分商城等社区功能,Spacebuilder开发团队却在V4.0正式版发布...

2016
来自专栏技巅

毕业工作五年的总结和感悟(中)

2345
来自专栏云计算D1net

避免在云迁移过程中宕机

在公共云迁移期间,IT团队需要采取谨慎的步骤,以避免听到“系统宕机”这种可怕的提示。 随着组织迁移到基于云计算的基础设施,IT团队需要在迁移过程中保持可用性。...

36610

扫码关注云+社区

领取腾讯云代金券