无服务器计算如何帮助您的生产基础架构?

在过去的几年中,无服务器计算架构一直受到关注,因为它专注于应用程序的主要组件之一:服务器。 这种体系结构采用了不同的方法。

在下面的文章中,我们将解释无服务器的含义,并尝试了解它是否以及何时可以为您的应用程序提供帮助。 系好安全带。

云的新衣

无服务器计算的概念谈论的是部署代码,而不是服务器。 一开始听起来可能有些混乱,因为这意味着您可以将服务器整体丢弃,并在没有服务器的情况下运行应用程序。 但您可以猜到,事实并非如此。

云提供商无需购买,管理和扩展它们,而是处理对VM的请求的提供商。 因此,您仍然需要服务器,但是这种新模型使您无需承担责任。 换句话说,处理服务器上的部署或任何类型的已安装软件都没有麻烦。 基本上,您需要的只是托管的云服务和计算机。

输入AWS Lambda

该模型由Amazon作为AWS Lambda于2014年首次引入。该公司是第一个提供无服务器服务的人,它是Amazon Web Services套件的一部分。

AWS Lambda基于事件驱动的平台,由注册,更新等事件触发。 当事件发生时,它将调用相关函数,依次运行代码。 所有这些,同时管理和计算运行和仅使用它们所需的资源。

换句话说,基本工作流程保持不变:编写代码,将其上传到服务器以使其运行,并消除对响应时间,操作等方面的担忧。

AWS Lambda有时被称为功能即服务(FaaS),因为这些事件触发了处理请求所需的相关功能,从而使我们能够轻松运行我们的功能。

与FaaS一起,无服务器体系结构也称为后端即服务(BaaS),它消除了很大一部分数据库管理开销,并为不同的用户和级别提供了授权。

AWS Lambda总经理Tim Wagner 共享了一个图表,该图表说明了组件及其连接:一个Lambda函数作为计算资源(“后端”)和一个直接与其连接的移动应用程序,以及提供API HTTP端点的Amazon API Gateway静态的Amazon S3托管网站:

无服务器架构图。 资料来源:亚马逊

照顾好你的代码

AWS Lambda的主要目标是允许开发人员以简单的方式构建较小的,按需和事件响应型应用程序。 它为您工作,并管理“计算团队”,以平衡内存,CPU,网络,应用安全补丁,监视运行状况以及任何其他所需的资源和操作。

外包服务是一种很好的看待方式。 它不仅可以“重新安置IT”,而且甚至可以帮助您降低运营成本,因为您可以消除基础架构成本,甚至可以减少维护服务器所需的团队成员数量。

说到成本,您只需要根据使用的功能和代码执行的时间来支付使用的费用。 重要的是要声明免费层每月包括100万个免费请求,每月最多有320万秒的计算时间。

从请求开始作为对事件或调用的响应开始执行时开始计算。 而且还包括来自控制台的测试。

据亚马逊称,AWS Lambda是许多应用程序场景的平台。 但是,当然有一个陷阱,该语句仅与AWS Lambda支持的语言有关:Node.js,Java和Python。

从好的方面来说,可以使用您已经知道的工具Maven或Gradle完成使用Java构建AWS Lambda函数的过程,并且构建过程几乎相同。

给我看代码

完成基本设置后,调用AWS Lambda函数非常简单,您可以在此处查看完整说明。

它包括定义代表输入和输出JSON的POJO,指定代表我们的微服务的接口,并使用被调用时调用的Lambda函数的名称对其进行注释。

下一步将使用LambdaInvokerFactory创建此接口的实现。 这将使我们能够调用Lambda上运行的服务。 然后,我们可以使用此代理对象简单地调用我们的服务,例如……计数猫:

CountCatsInput input = new CountCatsInput();
input.setBucketName("pictures-of-cats");
input.setKey("three-cute-cats");int cats = catService.countCats(input).getCount();

在你开始之前…

当然,没有什么是完美的,主要选择代码的选项也有一些缺点。 由于它仍然是一项相当新的技术,因此很容易找到用户不太满意的问题列表,例如:

控制 –您正在“移交”服务器,希望您的云主机将以最佳方式处理它们。 但是您可能会遇到一些重大问题,您必须坐下来等待它们解决,甚至可能包括停机时间和不满意的客户。

锁定 –说到将所有内容交给云主机,使用AWS Lambda意味着您必须使用AWS。 现在可能不是问题,但是如果您考虑迁移到Google或仅使用自己的服务器,它将成为一个问题。

灵活性 –您将无法登录到计算实例或自定义操作系统或语言运行时。

安全性 –使用第三者也意味着使用其安全性。 我们并不是说AWS并不安全,而是您将这项责任完全转移给了可能不太理想的第三方。 。

监视 –使用AWS Lambda,您只能使用内部工具CloudWatch监视和调试系统。 尽管您仍然可以创建自定义警报,但可以查看请求率和错误率–这是一个非常基本的工具,它可能无法帮助您了解问题的根本原因。

这只是该体系结构缺点的一小部分(但很重要)。 还必须指出,如果您已经有一个应用程序,并且想要将其迁移到无服务器架构,则可能会发现自己是从头开始编写的。 因此,您可能需要考虑一下,或者只是将其积压到计划中的下一个新应用程序中。

最后的想法

亚马逊从AWS Lambda开始了无服务器的发展,如今,微软,谷歌,IBM等其他公司以及小型公司和初创公司都提供这种模式。

如果必须赌博,我们会说无服务器是未来。 如果您考虑一下,这是云计算发展的下一步,这使我们对云以及除我们自己以外的提供商完全信任。

目前,最好保留当前的云或本地服务器。 它仍然是一项新技术,在我们放弃服务器之前,亚马逊,谷歌和其他公司需要经历一些挑战。 可能是婴儿的脚步,但不管我们是否喜欢,我们都朝着这个方向前进。

翻译自: https://www.javacodegeeks.com/2016/08/aws-lambda-serverless-java-developers-whats.html

适用于无服务器Java开发人员的AWS Lambda:它为您带来了什么?相关推荐

  1. aws lambda_适用于无服务器Java开发人员的AWS Lambda:它为您提供了什么?

    aws lambda 无服务器计算如何帮助您的生产基础架构? 在过去的几年中,无服务器计算架构一直受到关注,因为它专注于应用程序的主要组件之一:服务器. 这种体系结构采用了不同的方法. 在下面的文章中 ...

  2. aws搭建java项目_开发人员指南 - AWS SDK for Java 1.x - 适用于 Java 的 AWS 开发工具包...

    本文属于机器翻译版本.若本译文内容与英语原文存在差异,则一律以英文原文为准. 开发人员指南 - AWS SDK for Java 1.x 适用于 Java 的 AWS 开发工具包为 Amazon We ...

  3. 适用于Java开发人员的微服务:管理安全性和机密

    关于麦洛 麦洛是 Java 开发者和技术爱好者. 对 Java 相关技术特别感兴趣,包括 javaee. Spring系列. 微服务等 作者:Andrey Redko 原文:Microservices ...

  4. 适用于Java开发人员的Groovy吗? 认识Gradle,Grails和Spock

    Java开发人员最感兴趣的Groovy用例有哪些? 尽管已经存在了一段时间,但是似乎只有Groovy最近才开始使用Groove. 对于某些人来说,它基本上只是另一种深奥的JVM语言,但是由于一些流行的 ...

  5. gradle groovy_适用于Java开发人员的Groovy吗? 认识Gradle,Grails和Spock

    gradle groovy Java开发人员最感兴趣的Groovy用例有哪些? 尽管已经有一段时间了,但似乎只有Groovy最近才开始使用Groove. 对于某些人来说,它基本上只是另一种深奥的JVM ...

  6. 适用于Java开发人员的Elasticsearch:简介

    本文是我们学院课程的一部分,该课程的标题为Java开发人员的Elasticsearch教程 . 在本课程中,我们提供了一系列教程,以便您可以开发自己的基于Elasticsearch的应用程序. 我们涵 ...

  7. 适用于Java开发人员的Elasticsearch:Java的Elasticsearch

    本文是我们学院课程的一部分,该课程的标题为Java开发人员的Elasticsearch教程 . 在本课程中,我们提供了一系列教程,以便您可以开发自己的基于Elasticsearch的应用程序. 我们涵 ...

  8. 适用于Java开发人员的Elasticsearch:命令行中的Elasticsearch

    本文是我们学院课程的一部分,该课程的标题为Java开发人员的Elasticsearch教程 . 在本课程中,我们提供了一系列教程,以便您可以开发自己的基于Elasticsearch的应用程序. 我们涵 ...

  9. 适用于Java开发人员的Elasticsearch教程

    课程大纲 Elasticsearch是基于Lucene的搜索引擎. 它提供了具有HTTP Web界面和无模式JSON文档的分布式多租户全文搜索引擎. Elasticsearch是用Java开发的,并根 ...

最新文章

  1. C++ 笔记(23)— STL vector 类(实例化 vector、末尾插入、指定位置插入、数组方式访问元素、指针方式访问元素、删除元素、大小与容量区别)
  2. Java中的浅拷贝与深拷贝
  3. 基于深度学习的交通标识别算法对比研究-TensorFlow2实现
  4. SpringBoot实现OAuth2认证服务器
  5. php mvc多态实例,asp.net mvc-多态模型绑定
  6. Adobe Illustrator CS6 绿色简体中文版下载地址
  7. 安卓窗口动画修改制作心得
  8. 宝塔执行sh文件_宝塔面板无法访问权限被锁 Linux面板
  9. php字符串和数组基本方法,PHP字符串和数组
  10. 用GVIM/VIM写Verilog——VIM配置分享
  11. 牛听听 总是获取音频流出错_又开学了!是时候提醒孩子背诵小学英语必背单词(含音频)...
  12. Python_learn_飞机大战
  13. 【YOLOV5-5.x 源码解读】yolo.py
  14. word如何删除某一页的页眉
  15. python画一棵树的心理测试_心理测验:空白纸上画棵树,破除心防从这里开始
  16. 【题解】【PTA里的Python题库】7-1 身份证校验_python
  17. 电大考试计算机应用基础考试试题,电大计算机应用基础网络教育统考考试(2013真题卷)...
  18. cmap参数 plt_[转]matplotlib - plt.rcParams、matshow/cmap/坐标轴设置
  19. 15. Linux系统中的磁盘管理
  20. 计算机网络是计算机科学技术和结合的产物,计算机网络是计算机技术和什么

热门文章

  1. Java IO: File
  2. java打开文件(Windows exe,应用文件exe,以及其他任何格式的文件)
  3. laravel部署到服务器显示Permission denied
  4. Failed to load http://localhost:3000/products: The 'Access-Control-Allow-Origin' header has a value
  5. Hibernate中使用Criteria查询及注解——(Dept.java)
  6. Cookie和Session 登录
  7. 2014蓝桥杯-B-省赛-五-圆周率
  8. Linux中打包和解压到的方法
  9. 1分钟学会python_快速入门:十分钟学会Python
  10. opencv立方体的画法_用opengl立方体的画法