写点什么

与 WildFly 项目经理 Jason Greene 谈 WildFly 8

  • 2014 年 2 月 14 日
  • 本文字数:2599 字

    阅读完需:约 9 分钟

Red Hat JBoss 部门今天宣布 WildFly 8 正式发布,其前身是 JBoss Application Server,我们对此进行了报道。Jason Greene 是 Red Hat JBoss 部门的 WildFly 项目经理和 JBoss EAP 平台架构师。InfoQ 采访了 Jason Greene,以了解这个新产品的更多信息。由于 WildFly 包含了一个全新的 Web 服务器(Undertow),这是个很重要的产品,我们的采访从这开始,为什么会有这样一个决定?

嗯,正如你所知,最近几年,Web 应用取得了显著的发展,对 Web 服务器的需求远超以往。由于计算设备的增长,Web 应用现在面对巨大数量的客户端,对富界面的需求已经导致更频繁的、更多面向数据的流量。使用 WebSocket 一类的技术进行全双工通讯已经成为普通应用。面对这些挑战,我们觉得最好的解决方案是重新设计一个高性能的服务器。

此外为了满足现代应用的需求,我们也希望解决一些通常使用替代原生 Web 服务器解决的基础服务问题。举例来说,通过 Undertow,WildFly 现在不需要 Apache 或者 Nginx 就能够扮演高效的非阻塞反射代理角色。

另一个因素是在云环境中减少端口数量的需求。在云环境中,一个系统可能运行了几百个甚至几千个 WildFly 实例。基于 HTTP 使用 HTTP Upgrade 可以升级成多种协议,Undertow 提供了复用这些协议的能力。

最后,这也给了我们一个机会来构建一个超越 Servlet 规范、对开发人员非常友好的系统。最终产出的系统非常小,而且只有很少的依赖、很少的内存占用并且是可嵌入的。其易于使用的 API 同时支持非阻塞式和更传统的面向阻塞流的 Web 开发。

InfoQ:你能谈谈 WildFly 8 中审计日志的详细信息吗?

WildFly 的审计日志功能之前是在 EAP 6.2 中增加的,后来我们把它引入到了上游产品中。如果启用 RBAC,只有审计员或超级管理员角色能够修改审计日志配置。任何针对管理模型的操作都会被记录在日志中。由于像 CLI 的 tab-completion(译注:按 tab 键自动完成填充)功能会导致大量的读操作,因此你可以配置只记录那些模型状态发生变化的操作。同时,在 MBeanServer 内部或者在核心控制器中,当我们的 JMX 门面调用核心管理模型时,我们记录所有的 JMX 访问。

我们支持日志写到本地文件或者写到系统日志服务。系统日志服务可以是本地的,也可以是远程的,我们支持通过 UDP 和 TCP 协议发送日志。同时还支持 TLS(对 rsyslog 测试),包括可选的客户端授权认证。作为对我们社区和客户需求的回应,现在 Syslog 记录只以 JSON 格式输出,这样就可以更容易地增加日志字段。但是,按照它现在的写入方式,将来也可能增加其它输出格式。

日志记录的信息包括:
- 该操作是否修改了管理模型
- 该操作是否在服务完全启动后立即执行。
- 认证的用户名
- 操作的来源接口,也就是说它是来自 Web 接口、JMX 接口还是原生接口
- 调用者的地址
- 操作是否成功
- 操作本身
- 域模式下的 UUID,用于跟踪其从域控制器到主机控制器然后到管理服务器的操作。

示例记录

复制代码
- - - - - - - - - - ----
2014-01-23 10:30:16 - {
"type" : "core”,
"r/o" : false,
"booting" : false,
"version" : "8.0.0.Final-SNAPSHOT",
"user" : "$local",
"domainUUID" : null,
"access" : "NATIVE",
"remote-address" : "127.0.0.1/127.0.0.1",
"success" : true,
"ops" : [{
"address" : [{
"system-property" : "xxx"
}],
"operation" : "remove",
"operation-headers" : {
"caller-type" : "user",
"access-mechanism" : "NATIVE"
}
}]
}

InfoQ:你能介绍一下补丁系统吗?它是否能向一个正在运行的系统打补丁?

补丁功能是我们最早为 JBoss EAP 用户开发的,但我们开源模型的一个关键元素是,我们为企业产品开发的所有主要功能,都要移植到上游产品中。因此 JBoss EAP 6.2 和 WildFly 8 都有这个功能。该功能包括一组新的管理操作和 CLI 中一个名为“patch”的新命令。你可以使用此命令将 JBoss 产品补丁更新到一个单独的本地或远程服务器实例中。你可以对运行中的系统执行该命令,但它只是补丁阶段,必须重新启动才能让补丁生效。如果发现有问题,你可以回滚补丁。只要你愿意,系统能够保存所有的补丁历史记录,因此你可以回到任意时间点。如果你对其内部感到好奇,补丁基础服务建立在 WildFly 加载的模块类之上,本质上是通过增加额外的模块文件夹,扩展或替换那些初始安装时包含的模块。

我们计划在将来的版本中,继续开发此功能,包括提供界面,以向导方式更新这些补丁。

InfoQ:哪些 LDAP 目录可以用于保存 RBAC 凭据?活动目录可以吗?

可以。我们对 LDAP 的支持非常灵活,你可以调整过滤器来匹配目录提供者的 Schema。因此理论上它支持包括活动目录在内的任意 LDAP 服务器。举例来说,对于活动目录,你可以设置用户名过滤器指向 sAMAccountName。

InfoQ:除了品牌的变化,使用 WildFly 与 JBoss EAP 有什么不同?EAP 是否更加保守一些?

WildFly 倾向于以小步快跑的方式交付最新的技术。我们的目标是每年至少发布一个大版本,在大版本之间频繁地发布里程碑版本。WildFly 采用社区支持模型,开发者和用户在论坛中互相帮助,分享代码。但是他们关注的、感兴趣的,通常都是当前的产品和技术。

另一方面,EAP 更加保守,它关注的是长期运行的分支,会维护 7-10 年并保持补丁更新。这些分支上的功能更新是渐近式的,且更易于使用。(我们从上游树反向移植功能到老版本,重点是保持兼容性。)EAP 还有许多其它好处,除了订购中包含的分发外,还包括供应商认证和一致性、庞大的知识库和有保障的服务水平协议。

InfoQ:我们多久能看到满足 Java EE 7 规范的 JBoss EAP?

我现在还不能确定具体的日期,但我确定下一个将要发布的大版本 EAP 7 准备提供 Java EE 7 的支持。因为最终的 EAP 是继承自 WildFly,因此它会兼容 WildFly 8(以及 WildFly 的后续版本)。

InfoQ:对于 Oracle 决定停止 GlassFish 的商业支持,你认为会对 JBoss EAP 更广泛的应用产生多大影响?

我不想推测最终会发生什么,但我们已经注意到从 GlassFish 转到 WildFly 和 EAP 的兴趣在增加。尽管选择什么样的应用服务器需要考虑很多因素,但我们觉得致力于开源和社区是一个重要的因素。而这些一直是 Red Hat 基因的组成部分,我们写的每一行代码都是 100% 开源的。

更多信息请访问 WildFly 网站

原文英文链接: Interview with WildFly Lead Jason Greene on WildFly 8

2014 年 2 月 14 日 07:032839

评论

发布
暂无评论
发现更多内容

Android 集成讯飞SDK实现语音拨号、语音导航、语音启动应用

android 程序员 移动开发

android 实现 搜索保存历史记录功能

android 程序员 移动开发

Android 序列化(Serializable和Parcelable)

android 程序员 移动开发

Android 开发规范(完结版)

android 程序员 移动开发

Android 开发面试中,面试过最喜欢问那些问题?

android 程序员 移动开发

Android 开发,你遇上 Emoji 头疼吗?

android 程序员 移动开发

Android 拍照:如何使用已有相机应用捕获图片(Taking Photos Simply)

android 程序员 移动开发

基于 KubeVela 的 GitOps 交付

阿里巴巴云原生

阿里云 Kubernetes 云原生 gitops KubeVela

Android 开发者想咸鱼翻身并不是难事,只要你掌握这些……

android 程序员 移动开发

Android 性能监控系列一(原理篇)

android 程序员 移动开发

Android 获取设备信息

android 程序员 移动开发

Android 教你一步步搭建MVP+Retrofit+RxJava网络请求框架

android 程序员 移动开发

android 方式实现imageview圆角

android 程序员 移动开发

Android 横向ListView实现

android 程序员 移动开发

Android 自定义软键盘实现 数字九宫格(1)

android 程序员 移动开发

Android----Matrix-与坐标变换

android 程序员 移动开发

Android-ContentProvider实例详解(1)

android 程序员 移动开发

Android 实现系统深度休眠笔记

android 程序员 移动开发

Android 开发中,与屏幕有关的三个小众知识

android 程序员 移动开发

Android 开发艺术探索笔记(1)

android 程序员 移动开发

Android 性能优化:手把手带你全面了解内存泄露

android 程序员 移动开发

Android 自定义软键盘实现 数字九宫格

android 程序员 移动开发

Android 设置默认Launcher

android 程序员 移动开发

Android 面试必备 - 系统、App、Activity 启动过程

android 程序员 移动开发

加速SaaS规模化演进,餐道基于K8s的云上创新底座

阿里巴巴云原生

阿里云 Kubernetes 云原生 SaaS 智慧餐饮

Android-Handler机制详解

android 程序员 移动开发

Android 开发艺术探索笔记(21)

android 程序员 移动开发

Android 调用相机拍照,适配到Android 10

android 程序员 移动开发

Android 抖音爆红的口红挑战爬坑总结

android 程序员 移动开发

Android 程序员不得不收藏的 90+ 个人博客(持续更新

android 程序员 移动开发

Android 这座山,我一定要爬到顶

android 程序员 移动开发

与WildFly项目经理Jason Greene谈WildFly 8-InfoQ