首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >京东统一发布平台J-one | 高效交付的秘诀就是Ta

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

作者头像
京东技术
发布2018-10-23 09:53:19
2.5K0
发布2018-10-23 09:53:19
举报
文章被收录于专栏:京东技术京东技术

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

导读

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 京东技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • >>>> 找到阻挡研发人的痛点
  • >>>> CI/CD全流程打通,打造统一平台
  • >>>> 更多的自动化工具,更快速地响应业务
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档