安卓服务器端开发,

  安卓服务器端开发,

  如果说曾经有过“无服务器”这个词,那是一个令人困惑的流行词,因为服务器有点让人痛苦。在你的收件箱里,一百万封电子邮件中用数十亿字描述了所有这些安全漏洞的补丁吗?如果你能摆脱服务器,你就能忘记那些补丁。你必须记住在防火墙上保持所有这些端口关闭?他们不再是你的烦恼。无服务器世界会让你自由。至少这是这个世界的承诺。

  无服务器世界看起来轻松而丰富,专注于你真正的使命:不管你的衣服告诉你什么。但是不要被骗了。你将为这种无忧无虑的自由付出代价,那就是牺牲你漫游或改变的自由。亚马逊、微软和谷歌云中的无服务器平台通过专有界面传递魔力。每当你把一些烦恼转移到等待上,你就会上瘾。被博格吸收。“自己”这个词太强了,但你可能会发现同样难以逃脱。

  [开发人员指南: 无服务器:AWS,Google Cloud和Microsoft Azure 。然后学习如何使用Microsoft的Azure功能以及如何使用AWS Lambda进行无服务器计算。]

  程序员讨厌这样的约束,这就是为什么他们中的许多人试图构建开源包。这些包提供了基于云的无服务器平台的部分甚至大部分功能,但它们包含了大量可以在任何地方使用的代码。这不仅使调试和测试更容易,而且使您能够将整个套件和kaboodle带到另一个价格更高、延迟更短或条件更好的云中。你甚至可以把它带到你以前称之为服务器机房的空调间。

  为了应对这个新兴的开源无服务器框架世界,我启动了一些机器,写了一些简单的逻辑。现在得出任何明确的结论还为时过早,因为这些项目喜欢说它们是“预测试版本”,但有很大的希望将我们从锁定中解放出来。

  主要有四个作业——裂变、Fn、Kubeless和OpenWhisk。当然,更多的事情很快就会发生。

  裂变是Platform9的开源无服务器解决方案。它使用一些带有动态加载器的标准容器将运行在Kubernetes中的容器编织在一起。您的函数将被提取到适当的标准容器中,并被加载以回答来自容器中现有Web服务器的查询。

  标准环境包括主要模型(Node.js、Python和Go)和一些老式的解决方案,比如PHP、Net,Ruby甚至Perl。当然,只要生成一个可以响应HTTP请求的二进制文件,也可以用任何语言滚动显示自己的名字。

  对于想使用容器协调器提供的自动缩放选项直接跳到Kubernetes级别的人来说,裂变可能是最有用的。裂变在Kubernetes集群内部运行,使用Kubectl、Helm和Tiller等标准工具。

  美国国际数据集团(International Data Corporation)

  一个简短的五行示例展示了如何使用裂变的命令行界面将简单的函数转换成运行的容器。

  如果不能依靠HTTP调用来调用函数,那么裂变可以从Crontab或者两个支持的排队工具(Azure队列存储或者NATS流)之一的消息中触发它们。还有一个在YAML文件中定义“工作流”的选项,它将依次运行多个任务。

  裂变提供的最大服务是维护一组可以动态加载代码的标准容器。它们基本上都是预先配置好的,因此省去了添加必要代码以便在集群中正确运行的麻烦。

  Fn Project Oracle进入无服务器领域Fn将一些模板、主流语言的标准构建例程和一些标准Docker容器粘合在一起。Fn比其他的更以Java为中心,所以当你认为Oracle拥有Java的时候并不奇怪。只要以Docker为基础,Fn就应该组合构建大部分语言的例程。有些甲骨文文档说“一个依赖:Docker”。

  一组更有趣的特性是一组包装器,它使您能够在Oracle本地堆栈而不是本地堆栈中运行AWS Lambda代码。使用这些包装器来映射核心功能相对容易,但这通常只是一部分。大多数人使用Lambda作为其他亚马逊云服务的粘合代码。这些包装器只帮助你带来Lambda代码本身,所以你必须为AWS API的繁琐工作找到其他解决方案。包装器很棒,但是它们的效用取决于你如何设计架构以及你的代码使用了多少Amazon服务。

  和所有这些工具一样,Fn的界面也全是命令行。键入fn,然后添加命令来创建新模板、生成结果代码或最终部署它。你写的简单函数是一个单独的文件,然后fn把它和正确的模板捆绑在一起,这样它就可以在某个地方的Docker容器中运行。

  Go、Java、Python、Ruby和Node.js的预建模板被捆绑在一起作为Fn开发工具包(FDK),但你不必专注于它们。它们都要求你构建一个函数,将一个字符串作为参数,并返回该字符串作为结果。再简单不过了。

  这个在IDG的实验性用户界面展示了如何将许多不同的功能链接到一个工作流程中。

  部署代码时,Fn将其连接到HTTP触发器,后者绑定所有参数,并将其提供给Docker容器中运行的函数。几乎其他一切都向你的梦想和设计敞开大门。是的,Fn让你摆脱了所有的部署问题,但是你还是要在一个函数里写所有的代码。

  你可以修改Fn内部的机制。内务信息存储在基本数据库(SQL3)中,用于跟踪路由和其他部署信息,但是您可以直接使用MySQL或Postgres。消息队列还有一个可配置的选项,可以帮助不同版本的Fn协调。您可以保留这些内容,但如果您需要更多选项,可以使用它们。

  Fn感觉很轻很简单,毫无疑问是由于设计的原因。它需要一些标准的构建工具和一些标准的Docker模板,并将它们链接在一起,因此编写一些代码并看到它们在Docker容器中运行更容易。

  无籽Kubeless来自Bitnami,这是帮助我们使用几种不同类型的手持产品提取云的所有功能的公司之一。像裂变一样,Kubeless的目标是将无服务器的所有乐趣带入Kubernetes集群。这个名字有点开玩笑的味道,因为这个技术无非就是Kubernetes。如果有什么不同的话,那就是使用Kubernetes的内置功能来构建一个快速的无服务器基础设施。

  Kubeless把你的功能变成定制资源,Kubernetes的目标是根据需要创建和扩展这些内容。开发人员似乎最喜欢Python,只是因为大多数示例都是用Python编写的,但也有Node.js、Ruby、PHP、Go和。网。虽然文档的某些部分缺少Java 1.8,但是根据我安装的版本,Java包含在可用运行时列表中。

  基本功能比其他框架复杂。您编写的每个函数都有两个参数,一个带有事件的对象和另一个带有元数据或上下文的对象。与只将字符串传递给函数的方法相比,这允许一个稍微更复杂和自我感知的编程模型。最后,必须返回一个字符串,该字符串将返回给所有开始滚动的HTTP请求。(在一些堆栈中有一些更好的助手函数,Node.js运行时接受一个对象并将其序列化。)

  IDG Kubeless有一个用户界面,允许你编辑功能,然后一键部署。

  如果不想从HTTP请求触发函数,也可以配置Kubeless在特定时间响应Kafka或NAT消息或预定调用。您还可以通过为事件创建自定义资源来扩展事件。

  对于那些完全接受Kubernetes并且习惯于集群和自动扩展的人来说,Kube-free方法将是最有吸引力的。Kubeless主要是一个把一些基本代码快速转换成可以响应请求的Kubernetes集群的工具。

  OpenWhisk OpenWhisk是IBM的官方工具,用于在IBM Cloud中构建云功能。这也是Apache软件基金会托管的一个开源项目(处于孵化状态)。OpenWhisk实际上是几个流行的Apache项目的综合,它们被缝合在一起占据了几行代码,包装在Docker容器中,并通过REST API调用它们的执行。Nginx处理请求,将其转换为Kafka消息,然后传递给容器。认证和管理信息存储在CouchDB中。就像阿帕奇基金会的聚会。

  代码本身可以用JavaScript、Java、Python、PHP、Go,甚至你所知道的Swift来编写,对于那些不想花时间写iPhone应用的人来说。当然,只要函数参数可以被stdin接受,并且结果通过stdout传递,那么几乎可以使用任何可以捆绑到Docker容器中的东西。

  OpenWhisk开发人员基本上为每一种主要语言建立了一系列标准框架,这些框架将接受一些文本输入,并使用一些预先配置的库吐出一些文本输出。当编写一个简短的函数时,OpenWhisk会将其粘贴到这个标准容器中,一切都会好的,如果你已经按照说明正确编写了函数的话。

  皱纹总是有的。Java代码期望Google GSON库可用。Swift代码的容器会运行开源版本的Swift,所以有时候代码行为可能和你在iOS世界经历的一模一样。JavaScript可能是每个人最受欢迎的选项,您的JavaScript代码将在Node 6或Node 8中运行,这是众所周知和可预测的。

  Apache Software Foundation open whisk请求的路径。请求到达HTTP网关后,会通过Kafka到达正确的Docker包。

  然而,在IBM精心规划的云中使用OpenWhisk和在我自己的电脑上运行OpenWhisk有着巨大的区别。IBM的Web界面使得编写几行代码并使其成功运行变得很容易。从零开始将文本存储在IBM Cloudant数据库的运行界面中,只用了半个小时。

  当我试图用开源发行版做任何类似的事情时,我总是遇到障碍,比如配置API主机。这份文件远未达到应有的完整程度。这里有一些指向不同快速入门路径的指针,你会不断猜测和填补漏洞。

  很快就清楚了,要让它们都在自己的计算机上运行,需要大量的配置。对打包的Swift功能的描述是一个很好的例子,说明了如何通过配置和编写脚本来运行几行代码。

  服务器和简单这四个项目占据了相当狭窄的位置。“无服务器”一词并没有被尽可能广泛地使用,还有许多其他选项可以提供同样的灵活性和自由,而无需使用流行的“无服务器”一词。人们通常认为数据库是最初的无服务器选项,而许多开源系统(如WordPress、Drupal和Magento)实际上是无服务器的。您可以通过添加适合大型框架的PHP代码片段来扩展它们。我们以前称之为插件或模块的,可以称之为“无服务器”。

  在这种情况下,这些工具没有一个比那一代技术更省心。这四个无服务器平台更接近于Kubernetes或Docker集群的增强管理器。它们更像是管理工具,简化了设置和运行这些集群所需的所有配置。或者像自动构建工具一样,它可以包装你的函数,让它在集群上运行。

  他们的角色的局限性是由他们的架构决定的。工具创建者的目标是提供最大的灵活性。它们都有一长串受支持的语言,但是尽量达成一致,说它们将用于任何遵循输入和输出格式规则的二进制文件。所以,他们能做的就是把零件粘在一起,吐出一个容器。

  事实证明,将零件放入容器仍然是一大挑战。所有的文献都说你可以通过写一个函数来让这些任务或者动作运行。但是能有什么作用。因此,您将无法处理容器中的所有工作。在移交控制权之前,您必须首先获取其中的库和代码。然后,您必须处理所有其他部分,如数据库和API。

  来自:https://www . infoworld . com/article/3279781/开源-无服务器-裂变-fn-kubeless-and-open whisk . html

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • videospeedy手机视频加速器,videospeedy安卓版
  • progress进度条安卓,progressbar进度条控件如何使用
  • progress进度条安卓,
  • progressbar进度条控件如何使用,progress进度条安卓
  • app傻瓜式开发软件,人人都能开发安卓app
  • app傻瓜式开发软件,人人都能开发安卓app,人人都是开发者:7款傻瓜式APP开发工具
  • 电脑恢复手机数据的软件哪个好,安卓系统数据恢复软件
  • 安卓模拟器怎么安装游戏,itools模拟器安装失败
  • 安卓系统11可以玩饥荒吗,windows10
  • android退出整个程序,安卓手机关闭所有进程的APP
  • android退出整个程序,安卓手机关闭所有进程的APP,Android 实现彻底退出自己APP 并杀掉所有相关的进程
  • android检测手机多点触摸点数的方法有哪些,安卓手机多点触控测试
  • android检测手机多点触摸点数的方法有哪些,安卓手机多点触控测试,Android检测手机多点触摸点数的方法
  • android 震动,如何让安卓手机持续震动
  • android 震动,如何让安卓手机持续震动,Android实现手机震动效果
  • 留言与评论(共有 条评论)
       
    验证码: