阿里中间件技术专家魏鹏:基于Java容器的多应用部署技术实践

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
云原生网关 MSE Higress,422元/月
MSE Nacos 企业版免费试用,1600元额度,限量50份
简介: 首届阿里巴巴在线技术峰会(Alibaba Online Technology Summit),将于7月19日-21日 20:00-21:30 在线举办。本次峰会邀请到阿里集团9位技术大V,分享电商架构、安全、数据处理、数据库、多应用部署、互动技术、Docker持续交付与微服务等一线实战经验。

首届阿里巴巴在线技术峰会(Alibaba Online Technology Summit),将于7月19日-21日 20:00-21:30 在线举办。本次峰会邀请到阿里集团9位技术大V,分享电商架构、安全、数据处理、数据库、多应用部署、互动技术、Docker持续交付与微服务等一线实战经验,解读最新技术在阿里集团的应用实践。

7月20日晚8点,阿里巴巴集团技术专家魏鹏将在线分享《基于Java容器的多应用部署技术实践》。为了帮助更多技术伙伴了解他,也更加深入了解技术分享的背景,云栖社区对他进行了采访并整理了这篇文章。

阿里巴巴在线技术峰会专题:https://yq.aliyun.com/activity/97
峰会统一报名链接:https://yq.aliyun.com/webinar/join/23


魏鹏,阿里巴巴集团技术专家。2009 年硕士研究生毕业加入阿里巴巴中国网站技术部,曾担任中国网站交易平台架构师,主导了交易系统服务化工作,设计实现的数据迁移系统高效的完成了阿里巴巴中国网站交易数据到阿里巴巴集团的迁移工作。目前在阿里巴巴中间件技术部的应用容器与服务框架组从事 Java 应用容器 Pandora 和服务框架 HSF 的相关工作,其中 Java 应用容器 Pandora 是阿里巴巴中间件运行的基础,而服务框架 HSF 则是阿里巴巴集团实现服务化的主要解决方案,二者在阿里巴巴拥有最为广泛的使用量。

技术提升“三件事”:从普通到创新,从被动到主动,从现在到未来

云栖社区:您自2009年硕士毕业就加入阿里,能和我们分享下您一路走来的技术之路吗?有哪些值得纪念的里程碑?

魏鹏:分享技术之路不敢这么说,我就是感觉公司和团队能够给予你很多机会去做自己喜欢的事,能做自己喜欢和认可的事情是非常幸福的。

我这里不去详细讲述这些年的工作,只说三件事吧:

第一个,从普通到创新;记得当时刚加入阿里在1688交易团队工作,主管交给我一个改造任务:将现有的消息组件迁移到公司新开发的分布式消息组件上。一个普通的迁移工作只是改动一下既有的代码看起来非常简单,但是经过分析,发现现有的交易消息系统设计的不利于未来业务的扩展,便有了改造已有消息系统的想法,经过和团队同学们的沟通,新设计的消息系统除了能够支持已有的业务以外,还简化了新业务的接入过程。其实如果带着审视的眼光去看简单而又普通的工作,兴许就会发现许多可以改善和创新的地方。

第二个,从被动到主动;在2012年做1688交易服务化工作的开始阶段,总会想所做的工作能够有多大的价值,后来发现所做工作最大的价值在于用户对你的肯定。因此我们从开始被动的接受需求完成开发,到主动的找寻系统数据上有价值的点进行服务提供,服务化工作在顺利的推进过程中,和其他业务方的配合也变得越发的顺畅。

第三个,从现在到未来。2013年底来到中间件技术部之后,开始接触中间件产品,和一群技术非常牛X的小伙伴们一起工作,这个过程充满了乐趣。由于负责的产品大都是技术产品,使用的对象都是公司内部的工程师,所以很多技术细节的取舍、产品的设计都必须非常仔细,因为我们的角色不仅仅是开发也是产品经理,对自己的要求变得更高。在中间件工作,你的一个想法可能会改变非常多工程师的开发方式和使用习惯,因此在中间件工作感觉就像面向未来工作。

中间件技术就像“一座桥”:要稳、要宽、跨度大

云栖社区:您目前在阿里中间件技术部,可以简要介绍下阿里中间件的研发初衷和历程吗?现阶段发展如何?

魏鹏:按照我的理解,当阿里开始尝试使用自己的分布式技术时,阿里中间件的雏形就开始出现了,它研发的初衷就是从用户角度出发,将分布式技术带给我们的开发同学,让他们能简单、安全并可靠的使用分布式技术(比如:RPC框架HSF、分布式数据访问层TDDL和分布式消息系统Notify等)。

现阶段阿里中间件是阿里巴巴集团生态系统的技术基石,为集团各大业务群提供可靠、高效、易扩展的技术基础服务。这里有世界一流的中间件产品和场景,这里有世界最大的电商交易业务场景,这里有世界领先的企业互联网架构平台。阿里中间件的愿景是打造世界一流的中间件产品,打造世界一流的高可用架构基础设施,打造世界一流的企业级互联网架构平台。

云栖社区:中间件从起源之时到伴随着互联网发展和分布式系统的兴起,中间件的概念也在发生演变,那么您是如何理解中间件技术的?

魏鹏:在我的理解里,中间件技术像一座桥,它联通着业务的现在和未来,能够为业务提供更加方便、安全、可靠和高效的解决方案,使业务能够不在受限于技术和规模的限制,提供给业务更加稳定的支撑。衡量一座桥,首先看它稳不稳,然后再看宽不宽,最后看跨度够不够大。中间件这座桥一定需要稳,因为它是技术基石;同时它也需要很宽,因为它需要高效的解决一些通用问题;最后它的跨度要大,因为它需要面向未来支撑更大的量级。

云栖社区:在中间件大团队中,您主要是做哪些方面的工作?主要成就有哪些?

魏鹏:我目前在中间件技术部-基础中间件-应用容器与服务框架小组,主要负责隔离容器Pandora和服务框架HSF的开发工作。所负责的Pandora与HSF的架构演进,立足现有的产品,面对未来的挑战,通过架构演进来应对挑战。

业务发展带来“四大”系统问题:性能、成本、效率、扩展

云栖社区:首届阿里巴巴在线峰会上,您分享的主题是《基于Java容器的多应用部署技术实践》。核心技术内容有哪些?什么样的用户适合来倾听本场分享?

魏鹏:随着业务的发展,机器的数量和系统复杂性不断提升,较之简单系统的开发部署,大规模分布式系统将会面对以下新问题:

  • 性能问题,系统之间通过远程调用来进行数据交换,一个用户请求所涉及的系统越来越多,远程调用的开销随之变大,如何降低远程调用开销,提升调用链路稳定性;
  • 成本问题,系统服务器数量不断增加,单个集群规模变大的同时带来了资源的浪费,如何提升资源利用率,优化成本;
  • 效率问题,拥有上千台服务器的系统,在每次发布过程中容易造成客户端的抖动,常规做法是多批少量发布,但这种发布方式延长了发布时间,如何能做到大集群快速全量发布;
  • 扩展问题,平台化系统对模块化有很强的需求,现行的Java模块化技术对于开发者而言显得过于复杂,如何降低模块化技术门槛,适合已有的运维部署体系。

阿里Java容器,能够支持多应用部署并将阿里中间件以服务的形式提供给托管的应用,应用之间的调用从远程自动转换为本地调用,以淘宝商品详情为例,综合对比性能提升40%以上,对外服务能力不变的情况下,节约近千台服务器。在提升性能、降低成本的同时,容器支持主子应用部署的形式使得平台化系统的搭建变得简单许多,平台方和下游业务方的部署变得更加灵活自由。容器还支持单应用多版本部署,使得应用发布时不再重启进程,而是做应用版本的上下线以及流量的切换,发布和系统规模束缚被打破,整个发布过程进入分钟级。

对Java中间件、应用容器、服务框架以及运维感兴趣同学都适合听。

技术成长之道:重在积累

云栖社区:我们了解到,您本人平时喜欢阅读技术书籍,与同事合著了《Java 并发编程的艺术》一书,并翻译一些国外优秀文档,对 Java 应用容器、多线程编程以及分布式系统感兴趣,对于广大开发者们的成长,您有哪些建议?或者请您推荐一本最喜欢的技术书籍(或书单)?

魏鹏:技术在平时工作中的运用来自于平时自己的积累,就像我在做1688交易数据迁移工作时一样,由于自己平时对于多线程编程非常感兴趣,做了一些积累,当问题真正来临之时,平日的积累就给了自己非常多的帮助,能够更好的完成系统的设计和开发,让自己体会到学有所用的乐趣。

我最喜欢的技术书籍是读书时候看的《Beginning Java Objects》,很喜欢那时看完每章都觉得收获颇丰的感觉。


7月20日晚8点,欢迎分享到朋友圈,不见不散!

1573fa3f3ab373a493f2be1cff18c3247ea6e813"

议题:《基于Java容器的多应用部署技术实践》

议题简介:随着业务的发展,机器的数量和系统复杂性不断提升,较之简单系统的开发部署,大规模分布式系统将会面对以下新问题:

  1. 性能问题,系统之间通过远程调用来进行数据交换,一个用户请求所涉及的系统越来越多,远程调用的开销随之变大,如何降低远程调用开销,提升调用链路稳定性;
  2. 成本问题,系统服务器数量不断增加,单个集群规模变大的同时带来了资源的浪费,如何提升资源利用率,优化成本;
  3. 效率问题,拥有上千台服务器的系统,在每次发布过程中容易造成客户端的抖动,常规做法是多批少量发布,但这种发布方式延长了发布时间,如何能做到大集群快速全量发布;
  4. 扩展问题,平台化系统对模块化有很强的需求,现行的Java模块化技术对于开发者而言显得过于复杂,如何降低模块化技术门槛,适合已有的运维部署体系。

阿里Java容器,能够支持多应用部署并将阿里中间件以服务的形式提供给托管的应用,应用之间的调用从远程自动转换为本地调用,以淘宝商品详情为例,综合对比性能提升40%以上,对外服务能力不变的情况下,节约近千台服务器。

在提升性能、降低成本的同时,容器支持主子应用部署的形式使得平台化系统的搭建变得简单许多,平台方和下游业务方的部署变得更加灵活自由。容器还支持单应用多版本部署,使得应用发布时不再重启进程,而是做应用版本的上下线以及流量的切换,发布和系统规模束缚被打破,整个发布过程进入分钟级。

听众受益:

  1. 阿里Java容器的整体架构与部署形式;
  2. 如何转换远程调用到本地调用,提升性能,优化成本;
  3. 如何通过多版本部署来提升发布效率;
  4. 如何支撑应用平台化。

附图:阿里巴巴在线技术峰会整体议程

8ca125440fcce3b5bdad1d15f41b2263565b3f89

峰会统一报名链接:https://yq.aliyun.com/webinar/join/23

相关文章
|
12天前
|
安全 Java API
Java 17 及以上版本核心特性在现代开发实践中的深度应用与高效实践方法 Java 开发实践
本项目以“学生成绩管理系统”为例,深入实践Java 17+核心特性与现代开发技术。采用Spring Boot 3.1、WebFlux、R2DBC等构建响应式应用,结合Record类、模式匹配、Stream优化等新特性提升代码质量。涵盖容器化部署(Docker)、自动化测试、性能优化及安全加固,全面展示Java最新技术在实际项目中的应用,助力开发者掌握现代化Java开发方法。
53 1
|
12天前
|
缓存 安全 前端开发
Java 核心知识点与实战应用解析
我梳理的这些内容涵盖了 Java 众多核心知识点。包括 final 关键字的作用(修饰类、方法、变量的特性);重载与重写的区别;反射机制的定义、优缺点及项目中的应用(如结合自定义注解处理数据、框架底层实现)。 还涉及 String、StringBuffer、StringBuilder 的差异;常见集合类及线程安全类,ArrayList 与 LinkedList 的区别;HashMap 的实现原理、put 流程、扩容机制,以及 ConcurrentHashMap 的底层实现。 线程相关知识中,创建线程的四种方式,Runnable 与 Callable 的区别,加锁方式(synchronize
|
13天前
|
存储 安全 Java
从基础语法到实战应用的 Java 入门必备知识全解析
本文介绍了Java入门必备知识,涵盖开发环境搭建、基础语法、面向对象编程、集合框架、异常处理、多线程和IO流等内容,结合实例帮助新手快速掌握Java核心概念与应用技巧。
29 0
|
15天前
|
Java Shell Maven
【Azure Container App】构建Java应用镜像时候遇无法编译错误:ERROR [build 10/10] RUN ./mvnw.cmd dependency:go-offline -B -Dproduction package
在部署Java应用到Azure Container App时,构建镜像过程中出现错误:“./mvnw.cmd: No such file or directory”。尽管项目根目录包含mvnw和mvnw.cmd文件,但依然报错。问题出现在Dockerfile构建阶段执行`./mvnw dependency:go-offline`命令时,系统提示找不到可执行文件。经过排查,确认是mvnw文件内容异常所致。最终通过重新生成mvnw文件解决该问题,镜像成功构建。
|
20天前
|
Cloud Native 中间件 调度
云原生信息提取系统:容器化流程与CI/CD集成实践
本文介绍如何通过工程化手段解决数据提取任务中的稳定性与部署难题。结合 Scrapy、Docker、代理中间件与 CI/CD 工具,构建可自动运行、持续迭代的云原生信息提取系统,实现结构化数据采集与标准化交付。
云原生信息提取系统:容器化流程与CI/CD集成实践
|
1月前
|
SQL JSON 安全
Java 8 + 中 Lambda 表达式与 Stream API 的应用解析
摘要:本文介绍了Java 8+核心新特性,包括Lambda表达式与Stream API的集合操作(如过滤统计)、函数式接口的自定义实现、Optional类的空值安全处理、接口默认方法与静态方法的扩展能力,以及Java 9模块化系统的组件管理。每个特性均配有典型应用场景和代码示例,如使用Stream统计字符串长度、Optional处理Map取值、模块化项目的依赖声明等,帮助开发者掌握现代Java的高效编程范式。(150字)
44 1
|
1月前
|
XML JSON Java
Java 反射:从原理到实战的全面解析与应用指南
本文深度解析Java反射机制,从原理到实战应用全覆盖。首先讲解反射的概念与核心原理,包括类加载过程和`Class`对象的作用;接着详细分析反射的核心API用法,如`Class`、`Constructor`、`Method`和`Field`的操作方法;最后通过动态代理和注解驱动配置解析等实战场景,帮助读者掌握反射技术的实际应用。内容翔实,适合希望深入理解Java反射机制的开发者。
106 13
|
15天前
|
存储 监控 测试技术
如何将现有的应用程序迁移到Docker容器中?
如何将现有的应用程序迁移到Docker容器中?
134 57
|
15天前
|
缓存 Java Docker
如何对应用代码进行优化以提高在Docker容器中的性能?
如何对应用代码进行优化以提高在Docker容器中的性能?
138 1
|
15天前
|
存储 监控 Java
如何对迁移到Docker容器中的应用进行性能优化?
如何对迁移到Docker容器中的应用进行性能优化?
119 58
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等