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

存储架构 2017-10-19 阅读原文

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 )关注我们。

InfoQ

责编内容by:InfoQ阅读原文】。感谢您的支持!

您可能感兴趣的

When Even Histograms Can’t Help Here is an interesting optimizer case where updated statistics and histograms cannot solve the performance problem. This...
Service Mesh模式起源 分布式系统帮助我们解决了很多过去甚至无法思考的用例,但同时也带来了诸多新的问题。 当系统规模较小、架构较简单时,开发者通过减少远程交互数量来降低额外的复杂性。像处理分发的最安全方法是尽可能避免它,即使这意味着产生跨系统的重复逻辑和数据。...
Ask HN: What the worst Oracle can do to OpenJDK? I've recently started a project using Java. From a technical perspective and after careful analysis of alternative techn...
OCILIB 连接Oracle数据库——插入数据 二、进阶教程 参看 官方文档实例 ,有详细的说明,包括:查询获取数据、绑定向量、数据库连接池、12c隐式结果集、使用Oracle对象和数据库通知等例子。这里只做一个最简单的插入数据演示。 1、简单的封装 void C...
大规模分布式环境下的企业架构治理之道... 现代互联网企业,随着业务的井喷,对系统的可维护性、可用性和并发性三个方面都提出了相当高的要求。在这三个维度的要求下,互联网企业的架构都会走上从单体应用拆分到多应用、多系统、多环境、多主机、多机房的大规模分布模式。 系统的拆分往往伴...