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

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
性能测试 PTS,5000VUM额度
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 首届阿里巴巴在线技术峰会(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

相关文章
|
2天前
|
弹性计算 运维 持续交付
探索Docker容器化技术及其在生产环境中的应用
探索Docker容器化技术及其在生产环境中的应用
14 5
|
3天前
|
Cloud Native 持续交付 Docker
探索Docker容器化技术及其在软件开发中的应用
探索Docker容器化技术及其在软件开发中的应用
16 7
|
6天前
|
持续交付 开发者 Docker
掌握 Docker:容器化技术在现代开发中的应用
Docker 是一个开源容器化平台,使开发者能够将应用程序及其依赖项封装在轻量级容器中,确保跨平台的一致性。本文介绍了 Docker 的基本概念、核心组件及优势,并展示了其在快速部署、一致性、可移植性和微服务架构中的应用。通过示例说明了 Docker 在本地开发环境搭建、服务依赖管理和 CI/CD 流程中的作用,以及多阶段构建、资源限制和网络模式等高级特性。掌握 Docker 可大幅提升开发效率和应用管理能力。
|
4天前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
12 3
|
8天前
|
Cloud Native 持续交付 云计算
云原生之旅:从传统应用到容器化微服务
随着数字化转型的浪潮不断推进,企业对IT系统的要求日益提高。本文将引导你了解如何将传统应用转变为云原生架构,重点介绍容器化和微服务的概念、优势以及实施步骤,旨在帮助读者掌握将应用迁移到云平台的关键技巧,确保在云计算时代保持竞争力。
16 5
|
11天前
|
负载均衡 大数据 测试技术
docker容器技术有哪些应用场景?
docker容器技术有哪些应用场景?
22 5
|
16天前
|
容器 C# Docker
WPF与容器技术的碰撞:手把手教你Docker化WPF应用,实现跨环境一致性的开发与部署
【8月更文挑战第31天】容器技术简化了软件开发、测试和部署流程,尤其对Windows Presentation Foundation(WPF)应用程序而言,利用Docker能显著提升其可移植性和可维护性。本文通过具体示例代码,详细介绍了如何将WPF应用Docker化的过程,包括创建Dockerfile及构建和运行Docker镜像的步骤。借助容器技术,WPF应用能在任何支持Docker的环境下一致运行,极大地提升了开发效率和部署灵活性。
29 0
|
2天前
|
存储 缓存 安全
【Java面试题汇总】多线程、JUC、锁篇(2023版)
线程和进程的区别、CAS的ABA问题、AQS、哪些地方使用了CAS、怎么保证线程安全、线程同步方式、synchronized的用法及原理、Lock、volatile、线程的六个状态、ThreadLocal、线程通信方式、创建方式、两种创建线程池的方法、线程池设置合适的线程数、线程安全的集合?ConcurrentHashMap、JUC
【Java面试题汇总】多线程、JUC、锁篇(2023版)
|
13天前
|
监控 Java 调度
【Java学习】多线程&JUC万字超详解
本文详细介绍了多线程的概念和三种实现方式,还有一些常见的成员方法,CPU的调动方式,多线程的生命周期,还有线程安全问题,锁和死锁的概念,以及等待唤醒机制,阻塞队列,多线程的六种状态,线程池等
74 6
【Java学习】多线程&JUC万字超详解
|
6天前
|
Java 调度 开发者
Java并发编程:深入理解线程池
在Java的世界中,线程池是提升应用性能、实现高效并发处理的关键工具。本文将深入浅出地介绍线程池的核心概念、工作原理以及如何在实际应用中有效利用线程池来优化资源管理和任务调度。通过本文的学习,读者能够掌握线程池的基本使用技巧,并理解其背后的设计哲学。