JavaOne 主题演讲:Oracle 谈论区块链、机器人以及无服务器架构

  • Matt Raible
  • 周元昊

2017 年 10 月 18 日

话题:Java语言 & 开发架构

Oracle 于 10 月 10 日举办的 JavaOne 开发者主题演讲主要集中于其通信和云产品。Oracle 更新了 Oracle 开发者社区及去年 JavaOne 上重新启动的 OTN 的状态,并提供了一些 Oracle 云的概述及演示,其中包括 Oracle 与其收购的两家公司ApiaryWercker的整合情况,并谈及其机器人平台、区块链技术及“无服务器架构”产品。来自 Slack 的 Buster Benson 也介绍了 Slack 的 API 和个性化定制功能。完整的主题视频可在这里获得,本文摘要了演讲中的一些关键信息。

主题演讲以Bruno BorgesStephen Chin谈论 Oracle Code 开场。Oracle Code是一年前在旧金山开始的一系列活动。此后,该活动涉及 17 个国家和 20 个城市,有近 10,000 名开发者参与,并吸引了 350,000 名线上观众。

谈完 Oracle Code,Chin 转而讨论了 Oracle 技术网络,又称 OTN。OTN 团队想要更多地与用户、社区和开发人员进行接触。他们不是泛泛地谈论技术,而更专注于 JavaScript、Java、DBA 和 DevOps,希望在这些领域发布更多的内容。因此,他们将 OTN 重新命名为 Oracle 开发者社区(Oracle Developer Community)。该社区的网址developer.oracle.com已于去年的 JavaOne 上推出。在上面会定期发布技术文章以及在 Oracle 云和其他产品中实现和使用不同语言的演示,也可以很好地通过该网站了解 Oracle Code 及其所有活动。

他们还创建了该品牌的社交媒体,可以在TwitterMediumYouTubeFacebook上找到 @OracleDevs。除了文章之外,其中还提供了许多其它学习工具:

  • 完全免费的 MOOC(大规模开放式线上课程)。
  • Code Online 网络广播以及 DevLive 的采访。
  • 每月更新的开发者新闻。
  • Oracle Zip Labs,一个可以轻松上手的开发者实验室,其中提供了一些挑战以及奖励。
  • Oracle 的冠军开发者(Developer Champion)、传奇开发者(Developer Legend)及杰出讲师(Luminary Speaker)的采访。

Oracle 已经认识到与客户沟通是至关重要的,这也解释了为什么其会花费如此多的精力在沟通上。

为了进一步强调这点,Chin 邀请了 Slack 平台产品负责人Buster Benson来到台上。Benson 首先就解释了“什么是 Slack?”。他将其描述为具有 50,000 名付费客户的消息平台,这些用户每天平均工作 10 小时以上。Slack 就是他们工作上的交互工具。

Slack 可以为这么多客户产生价值是因为它提供了一种很好的人与人之间的沟通方式。这正是 Slack 的核心。从宏观上来看,Slack 可用于:1)找到所需的人和信息、2)建立共享的理解形式,3)快速做出好的决策。

Slack 提供了超过 1,000 个应用程序。90%的付费团队正积极地使用这些应用。

通过企业版 Slack,他们发现每家企业都有各自的独到之处,然而,所有公司都有一个共同点,那就是希望做得更好。

  • 用例#1:及时获得重要事项的通知。获知业务进展情况,而不只是在事情发生状况时才得到通知。
  • 用例#2:当重要事件发生时能及时获得通知并可以从 Slack 直接进行批准或拒绝操作。
  • 用例#3:将相关上下文引入会话。通过链接来引入信息往往会有难度。解决方案是 Slack 的“应用程序中展开”。
  • 用例#4:无缝传递结构化信息。Slack 的方案是 Dialogs。
  • 用例#5:随时就绪的大量聊天机器人。其中他最喜欢的一个是 Donut。它为你连接其他人,相约一起喝咖啡或吃甜甜圈。它知道你会与谁沟通,并会将你与相关的新人联系起来。

将所有这些组合起来,就形成了会话的全貌。

Slack 旨在提供大量自定义选项,使组织中的人员更轻松地构建大家使用的流程和工具。可以在api.slack.com上找到 Slack 的 API 文档及其应用目录slack.com/apps

下一个上台的是 Oracle 云平台高级副总裁Amit Zavery

Zavery 一开始就表示当下对于开发者来说是一个极好且激动人心的时代。近年来发生了不少巨大的变化。我们曾经使用硬编码的元素,现在我们可以使用支持多平台的动态组合。曾经的应用开发周期会长达 12-18 个月,现在只需要一个极短的开发周期,可能是几天甚至是几个小时。以前是一个集中式的团队,现在会包含不同的团队且各有各的偏好。独立应用程序也让位于较小的组件,如微服务。我们正在为移动和聊天机器人创建互动界面,而不仅仅是构建一个新的应用程序。许多开发人员也在拥抱 API 优先的设计理念。

这一切就产生了新的应用开发需求。开发人员想要写多个微服务,并使用 Docker 部署容器化的应用,使用 Gradle、Maven 和 Git 等云端工具进行 DevOps。DevOps 团队需要弹性扩展、智能性能监控,并希望可以快速地发布应用。

Zavery 描述了一个题为“购车的艺术”的演示。他展示的幻灯片中包含了一个应用程序的截图,该应用程序可以使用 Facebook Messenger 作为用户交互界面来为用户在手机上展示一辆汽车的历史记录。用户可以上传一张车牌照片,几秒钟内就可以获取该车的历史记录。然后聊天机器人会提示是否需要购买,并根据用户的邮编列出其所在地区相似的汽车信息。Zavery 将此称为“API 优先,面向移动端的开发模式”

谈到 API 优先的开发,Zavery 邀请Jakup Nesetril上台。Nesetril 是 Oracle 云平台的 API 服务产品开发副总裁。他原来就职于 Oracle 所收购的 Apiary。

Nesetril 主要谈论了如何在设计和开发上做到 API 优先。

他同时提到当下有 300,000 位开发者正在使用Apiary。Apiary 让用户通过 Markdown 来描述自己的 API。只要编写完文档,就可以对服务进行模拟调用。用户可以将代码直接推送到 GitHub,并进行双向同步。在 apiary.io 或 GitHub 上都可以编辑这些文件。

这个演示展示了 Oracle 提供的完整的 API 生命周期管理。用户可以从头到尾对自己的 API 进行分析、设计、消费、管理、安全和营利。

接下来谈论了微服务的构建、部署和迭代,Anand Kothari走上台。Kothari 是 Oracle 云平台,云原生应用的产品管理高级主管。

微服务首先要做的是提供具备持续集成(CI)、持续部署(CD)的完整开发生命周期管理。用户需要管理和跟踪敏捷开发的进程,还需要改进团队的合作并进行源代码管理。他说 Oracle Cloud 云提供了所有这些功能,并且它包含了一些优秀的附加功能,如 Slack 集成及一键部署到任何容器。

Oracle 开发者云是一个具有自动化容器管理的多维度运行时。它提供了一个弹性和高可用的容器运行时,专为现代化、轻量级的多用途应用程序而设计。这可以让用户运用多项开发技能。其内置的容器编排和调度也非常智能。

之后,Kothari 演示了 Oracle 开发者云服务,其用户界面很像 GitHub 的源代码管理。它有一个“敏捷”选项卡,里面包含了后台日志、当前 sprint、报告、泳道和其他项目管理功能。“构建”选项卡提供了持续集成的功能,看起来很像重新布局的 Hudson。“部署”选项卡展示了部署历史记录和线上应用程序的统计信息,如内存使用率,还展示了如何通过该界面将应用程序绑定到数据库等其它服务上。

另一个展示的功能是系统提示更新到 Java 9。选择“是”就会进行滚动升级,这样可以没有停机时间地进行升级。

此演示展示了 Oracle 已支持容器原生应用程序的开发。

Oracle 云原生功能的大部分来自一家其收购的公司,Wercker,其拥有一个容器管道云服务。它不仅提供了 CI 和 CD,还可以向 Kubernetes 和 Registry 进行容器部署,因此用户可以在 Oracle 云的基础架构上管理 Kubernetes 和 Registry。Oracle 最近还加入了云原生计算基金会。Kothari 同时提到了微服务和无服务器功能,这将是未来的应用开发平台。

接下来Arun Goel谈了云端安全:保护和监控。Goel 是 Oracle 云平台,身份认证和云访问安全代理(CASB)的产品管理总监,该部门提供 Oracle 云的安全组件。

CASB 根据打分显示风险事件和风险用户。可以通过其看到从世界任何角落登录的用户的所在位置。

接下来Suhas Uliyar谈论了下一代的交互形式:机器人的兴起。

Uliyar 直接返回到前面提到的购买二手车的应用案例,展示了机器人交互界面。他通过 Facebook Messenger 与机器人对话。上传了一张照片之后,AI 程序就会处理该照片,会得到汽车的型号、年份和里程数,并将这些信息以及汽车的图片返回到聊天窗口。

然后机器人提示“你是否想看看有关该车历史的更多信息?”,如果您选择了“是”,则会给出之前的主人、已知的召回和事故记录。接下来会提示“你是否想购买?”,选择“是”,“你想听听我的价格建议吗?”,选择“是”,系统会查看你的邮编,并提示所在地区有类似的汽车。“你想看看么?”

机器人构建器是 Oracle 云平台的一部分。要开发一个机器人,分为三个不同部分:

  • 第 1 部分:配置和训练 MLU 引擎
  • 第 2 部分:设计对话
  • 第 3 部分:集成前端渠道,例如 Messenger,和后端

通过添加意图(intent)来启动此过程。在这个例子中有两个意图:问候和获取牌照号码。

之后对对象进行提取。系统尝试识别“特斯拉”或“明天”等单词。它们基本上就是不同的数据类型。其它还包括地址、金额、日期、时长、电子邮件、车牌、电话号码。作为开发者,无需编写代码,这些都由 MLU 引擎自动处理。

Uliyar 演示了这一切都是如何由基于 YAML 的脚本语言驱动的。可以添加一个与微服务或函数调用绑定的服务。最后一步是配置渠道。可以通过 webhook 来进行,频道之间会有很多差异。

在演示的最后,Uliyar 又宣布了几件事情:

  • 会话 AI 平台:用于增强会话互动的体验
  • 区块链云服务
  • 增强的大数据平台

同时他还展示了 Oracle 云的最新状态。

Stats. #OracleCode pic.twitter.com/zbOEbF5Bkq

— Sharat (@Sharat_Chander) October 4, 2017

本场主题演讲压轴的是 DevOps 运动的创始人、Zender.tv 的首席执行官Patrick Debois。他的发言题为“从无服务器到全服务(ServiceFull),DevOps 的演变过程”。可以在SlideShare上找到其幻灯片。

他的演讲主要围绕着很多公司采用的都是“ServiceFull”。他们购买现有服务,而不是搭建自己的服务。Netflix 使用了 AWS 服务、Slack 使用了 Google 的服务。无服务器是虚拟机和容器的下一阶段,每一次只部署一个功能。继 AWS Lambda、Azure 后,Oracle 现在也有自己的云服务。

如今 Oracle 在Fn 项目中也有自己的无服务器架构。Fn 项目是一个可以在任何地方运行的容器原生无服务器平台。它采用 Apache 许可,使用 Go 语言编写,并在JavaOne 的 Java 主题演讲上进行了开源。

总结与思考

从 Oracle Code 和 Oracle 开发者社区可以看到 Oracle 认识到了开发者的重要性。

由于 Oracle 演示了一些令人印象深刻的应用程序和产品,此次演讲还是值得观看的。诚然,其中许多技术来自他们所收购的公司,但是对于一家历史上持续在努力为内部开发商开发良好产品的公司来说,购买其他公司也增加了其可靠性。

Oracle 云有一些引人注目的产品,但进入市场相对较晚,可能会要与 Cloud Foundry 和 AWS 等已经存在的对手进行竞争。

查看英文原文:JavaOne Keynote: Oracle Talks Blockchain, Bots and Serverless


感谢周元昊对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

Java语言 & 开发架构