亚马逊AWS Lambda平台介绍和拥有的特性 支持Java、Python和node.js

   02/29/2016 10:50 pm   大 中 小 简体 繁體 字体:
1 颗星2 颗星3 颗星4 颗星5 颗星 (点击来评价哦~_~)
    494人参与

AWS Lambda是一个允许开发人员运行代码响应特定事件(如上传一张图片)的服务。这些代码中的函数充当事件处理程序。当事件发生时,AWS负责启动运行代码所需的实例,并根据需要进行扩展。开发人员完全不知道操作细节。

Kratos项目在代码和基础设施之间另外引入了一层,旨在提供一个云平台无关的平台。该层由Iron.io自定义的容器构成。现有的Lambda函数可以运行在这些容器中。Iron.io计划针对谷歌“云函数(Cloud Functions)”做相同的事情。Iron.io首席执行官兼联合创始人Chad Arimura是这样介绍Kratos容器的作用的:

容器打包了所有必要的组件,使代码平台无关,用户可以控制和选择如何及在哪里运行工作负载。我们发现,这就是现代企业希望采用的应用架构方式。

Kratos项目已经创建了工具,用于将Lambda函数封装和打包到容器中。据Iron.io首席技术官Travis Reeder介绍,虽然它可能不支持实际的Lambda API,但这些函数可以使用Kratos端点完成相同的事情。

AWS Lambda于2014年11月发布,支持Java、Python和node.js。事件可以由各种数据源产生,如Amazon S3(比如新增或修改一个对象)、Amazon Kinesis(比如记录流数据)和Amazon DynamoDB(比如记录表更新)。AWS负责自动扩展运行事件处理程序代码的基础设施。Lambda处理程序代码可以在AWS控制台的编辑器中编辑,也可以打包为zip文件上传。代码使用AWS特有的结构,因此,如果要运行在AWS之外的基础设施上就需要修改。谷歌最近宣布了一个类似的产品,名为云函数。

在Kratos项目中,容器会运行专有组件,那这是否会导致客户被Iron.io的平台锁定?对此,Arimura解释说:

我们也可以使用webhook(比如SNS/PubSub)连接到所有的AWS/谷歌服务,但是之后,你就可以控制在哪里运行工作负载,包括使用vSphere或OpenStack的私有数据中心。

Arimura进一步补充道,“我们提供了导入程序,可以简化Lambda函数的打包和运行,但将来,我们也会包含API兼容性,真正实现工具重用”,从而将现有的Lambda函数迁移到Kratos。Kratos将提供一个CLI工具,负责打包及向Iron.io的平台推送和注册函数。

亚马逊AWS服务特点总结:

o S3 – Simple Storage Service
面向Web的独立存储服务,通过http或者https进行访问,随时可以从Web存储和检索任意的数据,并且可靠、快速和持久。
o EBS – Elastic Block Store
面向文件系统的存储服务,需要挂载到EC2上来发挥它的作用;可以在任何时刻做快照(snapshot),当需要恢复数据时,直接使用那个时间点的快照即可复原。
o EC2 – Elastic Computing Cloud
所有操作都是通过网络,用自动化的工具,实现自动根据系统的负担去增减机器。费用方面,真正达到“用多少,付多少”。
o SimpleDB
简单数据库就是NoSQL的数据库服务,没有数据纲要(schema),开发工作可以快速地反应多变的需求。数据备份在不同的可用区中,避免数据丢失。
o RDS – Relational Database
不需要依赖于其他服务,通过网络服务访问,使用RDS可以减少大量的管理、备份和维护的工作。

关键词: , , , , , 

最多人阅读内容