开源Fn项目―Oracle下一代无服务器计算

栏目: 数据库 · Oracle · 发布时间: 7年前

内容简介:从2017年开始Oracle在云开发和开源方面逐渐加大了力度,17年9月份Oracle以铂金身份加入CNCF。 Oracle的开源策略主要从几个维度出发,第一是支持开源,所有在CNCF中列出的技术我们都是支持的。第二是云中立,开发者所开发的应用可以应用在任意的云平台上。第三是容器原生,Oracle未来所有的开发路线都将是在Docker和Kubernetes环境中。在这样的一个大环境下,我们再回过头来看下Java。从17开始Oracle会将J2EE开放给Eclipse基金会,J2EE 8之后的所有技术标准和

云开发开源策略

从2017年开始Oracle在云开发和开源方面逐渐加大了力度,17年9月份Oracle以铂金身份加入CNCF。 Oracle的开源策略主要从几个维度出发,第一是支持开源,所有在CNCF中列出的技术我们都是支持的。第二是云中立,开发者所开发的应用可以应用在任意的云平台上。第三是容器原生,Oracle未来所有的开发路线都将是在 Docker 和Kubernetes环境中。

Oracle Java新战略

在这样的一个大环境下,我们再回过头来看下Java。从17开始Oracle会将J2EE开放给Eclipse基金会,J2EE 8之后的所有技术标准和规范由Eclipse基金会进行制定,Oracle和其他厂商一样也是一个参与者。这样就给微服务开发带来了更多的敏捷性、灵活性、开放性、兼容性。

在微服务敏捷开发快速迭代的时代下,为了让 Java 更好的支撑未来的技术发展,Java 9 于17年9月21号发布。Java 9 中有个关键的项目——Jigsaw,它主要是在微服务方面增加了很多的敏捷开发支持。在Java 9 之后Java将进入一个快车道,我们会每隔6个月发布一个版本,也就是说之后的版本发布是在18年3月份和18年9月份。大家都知道Oracle有OpenJDK和OracleJDK,OpenJDK是OracleJDK的一部分,也就是开源出去的那部分JavaJDK。在某些方面OpenJDk仍然不满足企业级客户的要求,这主要是在安全性方面。因此我们准备之后慢慢的将OracleJDK开源出来,让OpenJDK 功能将和 OracleJDK 功能迈向一致。

容器原生云平台策略

在容器原生云平台方面Oracle的定位也是基于开源策略。大致有以下几个方向。首先是提供完整、集成、开发的容器原生云套件,容器平台选择的是Docker,容器的编排 工具 选择的是Kubernetes,在CI CD方面是Wercker,该套件有着持续集成、持续交付,编排、调度,管理、运维,分析等特性。第二个是社区驱动,云中立和开源。最后是提供差异化的服务质量和卓越运营,Oracle提供全面、透明的管理,同时和Oracle的IaaS服务进行无缝集成。

容器原生云平台架构

开源Fn项目―Oracle下一代无服务器计算

开源在企业上的应用和互联网公司的开源化方式还是有着一定差异。在这部分的解决方案中,Oracle的容器原生云平台架构和一般所理解的架构稍微有些不同,Oracle所理解的是API驱动。在所有Oracle的解决方案中都是API驱动的,云平台中提供的所有的服务也都是API。云平台底层的技术架构中采用了Docker、kubernetes、镜像仓库,在这些基础组件之上是微服务架构Server Mesh,同时还提供Serverless。使用这样架构的底层平台其实可以认为是容器原生,它可以支持客户端的任意语言,同时还确立了云中立。在性能优化以及安全性方面Oracle针对Java做了一些特殊的增强,可以看图中最右侧,主要是监控和诊断方面。

Oracle容器引擎

在整个平台上我们还对Docker和Kubernetes进行了包装,向外提供Oracle容器引擎。不同于直接安装Kubernetes,Oracle容器引擎可以打造强大的跨可用域分布式集群管理,它主要和Oracle的IaaS结合在一起。

Oracle的IaaS叫做裸金属服务器,你可以认为它是在某个城市的数据中心,每隔几十公里建一个AD,每个AD之间的传输速度是几百微秒,利用这样的服务就可以实现同城容灾。Oracle的解决方案提供了一键部署,Kubernetes可以实现跨AD域之间的集群, Oracle的环境其实是将Kubernetes环境、Docker环境和企业级的可用域结合在一起。

目前开源的技术有很多,到底什么样的技术才能成为将来的流行趋势?

我这里有两个观点,虽然不一定正确,但还是可以关注。第一是否被CNCF立项,没有的立项的可以关注但不一定参与,第二已经立项同时又有像微软、Google等大公司参与的,成功几率会更大。

开源Fn项目―Oracle下一代无服务器计算

上图展示的就是Oracle完整的容器原生云平台所包含的内容,有容器流水线、容器引擎、微服务以及Serverless和Java。

Fn项目介绍

Serverless是继Docker之后下一代将要爆发的热点。一般来说如果开发人员既要编写代码还要对服务器、存储、网络进行调度的话,运作起来还会非常困难。理想情况是开发人员只需要发布指令就能够接收到反馈,无需关心后端的网络、服务等。Serverless所实现的就是这种基于事件或触发的形式。

Serverless的理念就是给出input后马上接收到output,input可以是任何一种语言,重要的是能够不关心语言马上给出响应。Serverless运行的最佳环境是在云上,只有云上才能够更好的实现Serverless。

Function as a Serverless

Serverless的实现技术各不相同,有的公司采用的是Function as a Serverless(函数即服务)。它是以Paas为基础提供的一种更微型的云计算架构,代码的运行环境和计算能力都由云服务商提供。云服务商会动态管理机器资源的分配。

FaaS一般按应用运行实际产生的资源消耗来收费,也就是从API调用时开始计费,调用返回时结束。应用程序可以实现单纯的无服务器发布,也可以通过微服务的方式和传统部署结合起来。

所有的这种无服务计算的Serverless框架都是通过事件驱动,同时也是无状态,高可用的。执行时间相对来说比较短,性价比比较高。高度抽闲极大地减缓应用开发。

FaaS的市场现状

Iron.io最早提出Serverless,并实现多云平台任务队列(taskqueuing),使用Docker容器技术实现云部署和本地架构上相似的体验。

亚马逊(Amazon)在2014年的AWSre:Invent大会上宣布推出 AWS Lambda,是最早提供FaaS Runtime这类服务的商业供应商。一旦将代码上传至Lambda,该服务会处理基础设施的全部容量、规模伸缩、补丁 安装以及管理工作,从而为代码运行提供必要环境。

目前Iron.io的创始人以及整个Serverless研发团队都已经加入Oracle,成立了Oracle的Serverless项目组,该项目就是Fn项目,已于17年11月初正式开源。

Fn项目的开源目标是支持各种编程语言,目前主要还是Java和 Go 以及其他一些流行语言。

Fn项目主要有四大组件:Fn服务、Fn FDK’s开发套件、Fn负载均衡、Fn Flow。

详细介绍

开源Fn项目―Oracle下一代无服务器计算

Fn可以提供无容器化的体验。首先是一键安装,开箱即用。开发者可以在自己的环境环境中使用Fn,只要满足Docker版本为17.0.5的版本之上,安装通过一条命令就能够完成。

开源Fn项目―Oracle下一代无服务器计算

运行也非常简单,使用Fn start 就可以在 linux 环境中启动Docker引擎,第一次运行的时候会下载Fnserver需要的一些镜像库。

开源Fn项目―Oracle下一代无服务器计算

开源Fn项目―Oracle下一代无服务器计算

上图展示的就是如何在Java环境下使用Fn,通过Fn初始化命令指定运行环境后会自动的生成一些脚本和文件。

开源Fn项目―Oracle下一代无服务器计算

然后就可以在类似上图的环境中根据需要进行开发。另外还可以定义版本或者一些特性的信息,比如和远端和本地的server交互。

开源Fn项目―Oracle下一代无服务器计算

通过上图的方式执行之后server端就会返回相应的响应或请求。其实在这一块最主要的就是当你用最简单的Serverless框架去设计的时候,在将来云服务平台里面就可以基于事件触发或者基于一些事件调用,去做无状态处理,就可以发起很多请求。而后台也是基于Docker运行的,所以可以利用分布式或伸缩性去做自动的一些扩展。

开源Fn项目―Oracle下一代无服务器计算

在基本部署的时候,还可以定义一些服务的脚本控制,比如打包成App发送到后台。

Fn中还存在一个简单的,单艺主线的web UI,让开发者可以通过GUI来监控应用情况。

Fn特点

最后这里来总结下Fn的特点。首先Fn是开源、云中立的。其次它支持各种语言,但是我们会对Java做特殊优化,毕竟目前J2SE的部分还是有Oracle来开发。第三它有着容器原生,本地开发的体验,因为Fn Server是运行在Docker环境中,所以并不需要在意开发环境。第四是调度独立,Fn支持Kubernetes、Mesos、Swarm、etc,一般我们建议选择Kubernetes,毕竟它的市场份额摆在那里,Oracle的Serverless版本发布之后也会针对Kubernetes进行集成。最后还有一个特点就是可以无痛迁移Amazon Lambda程序

开源Fn项目―Oracle下一代无服务器计算


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Beginning XML with DOM and Ajax

Beginning XML with DOM and Ajax

Sas Jacobs / Apress / 2006-06-05 / USD 39.99

Don't waste time on 1,000-page tomes full of syntax; this book is all you need to get ahead in XML development. Renowned web developer Sas Jacobs presents an essential guide to XML. Beginning XML with......一起来看看 《Beginning XML with DOM and Ajax》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试