大牛教你来学分布式系统开发实战:常见的Serverless架构有哪些?

大牛教你来学分布式系统开发实战:常见的Serverless架构有哪些?_第1张图片

常见的Serverless架构

以下是常见的Serverless架构。

大牛教你来学分布式系统开发实战:常见的Serverless架构有哪些?_第2张图片

AWS Lambda

在2014年11月14日的AWS re:Invent大会上,Amazon WebServices(以下简称“AWS”)发布了AWS Lambda。AWS Lambda是如今市面上最早、最成熟、稳定的Serverless架构之一。这项服务最初支持Node.js,现在支持Java和Python。移动和物联网开发人员之所以喜欢Lambda,是由于它带来了强大功能和灵活性。它与Alexa Skills Kit紧密集成,成为在为Amazon Echo开发语音应用程序的开发人员当中最受青睐的平台。亚马逊提供交互式控制台和命令行工具,以便上传和管理代码片段。

Google Cloud Functions

Google站在微服务架构的最前沿。除了有力地推动了Kubernetes,Google还投资了AWS Lambda的竞争对手——Cloud Functions,该架构可在其公共云基础设施上运行。Google Cloud Functions是用JavaScript编写的,目前支持Node.js运行环境,不过预计在将来会添加更多的语言。

只有几项服务与Cloud Functions进行了集成,比如Google Cloud Storage和Google Cloud Pub/Sub。考虑到Google API的覆盖面颇为广泛,该架构将会支持另外多项服务,比如Gmail、Cloud Messaging、Maps及其他服务。

Iron.io

Iron.io的初衷就是为企业级应用提供微服务。Iron.io的后台是用Go编写的,用于处理高并发、高性能计算服务。最近,Iron.io“拥抱”Docker,并集成现有的服务,提供一种连贯完整的微服务平台。

Iron.io的Serverless平台的代号为Project Kratos,旨在将AWS Lambda引入企业。Project Kratos可以在包括公共云和私有云在内的多个环境下,运行包装成Docker容器的现有AWS Lambda功能。Iron.io平台由IronWorker、IronMQ、IronCache以及IronDashboard等组件组成。

IBM OpenWhisk

在2016年2月的InterConnect大会上,IBM发布了OpenWhisk,这种事件驱动型开源计算平台旨在与AWS Lambda一较高下。IBMOpenWhisk是一种可替代AWS Lambda的开源架构。OpenWhisk平台让广大开发人员能够迅速构建微服务,从而可以响应诸多事件,比如鼠标点击或收到来自监视摄像头的传感器数据,执行软件代码。事件发生后,代码会自动执行。开发人员不需要为预先配置基础设施之类的事情(比如服务器或系统运行)操心——他们只需专注于代码,因此显著加快了工作流程。OpenWhisk与AWS Lambda等解决方案的不同点在于它是开源的。另外OpenWhisk包括诸多功能,比如“链接”,这项功能让开发人员可以构建一系列微服务,以后将它们连接起来,可以让事件来触发它们。该系统基于Docker容器。

Serverless Framework

Serverless Framework是无服务器应用架构和生态系统,旨在简化开发和部署AWS Lambda应用程序的工作。这种开源架构最初名为JAWS,一亮相就引起了开发人员的关注。2015年,Amazon邀请开发人员在re:Invent大会上展示该架构。Serverless Framework作为Node.js NPM模块来提供,填补了AWS Lambda存在的许多缺口。它提供了多个样板模板,可以迅速启动AWS Lambda的开发。借助诸多插件,这种架构让用户很容易将AWS服务与其他第三方服务集成起来。

Azure WebJobs

WebJobs是一项Azure Web应用功能,可在与Web、API应用相同的上下文中运行程序或脚本。我们可以上传并运行可执行文件,如cmd、bat、exe(.NET)、ps1、sh、php、py、js和jar。WebJobs提供SDK,用于简化针对Web作业可以执行的常见任务(例如图像处理、队列处理、RSS聚合、文件维护和发送电子邮件)编写的代码。WebJobs SDK中的内置功能使用Azure存储空间和Service Bus,用于计划任务和处理错误,以及用于许多其他常见方案。此外,它还设计为可扩展的。

WebJobs SDK是开源的,并且有用于扩展的开源存储库。WebJobs SDK包括以下组件。

·NuGet程序包。为添加到Visual Studio控制台的应用程序项目NuGet包提供一个架构,代码可通过使用WebJobs SDK属性修饰方法来使用此架构。

·仪表板。Azure Web应用中包含WebJobs SDK部分,它可针对使用NuGet程序包的程序提供丰富的监视和诊断功能,无须编写代码就可以使用这些监视和诊断功能。

本文给大家讲解的内容是分布式系统开发实战:常见的Serverless架构

写在最后

如果你觉得自己学习效率低,缺乏正确的指导,可以加入资源丰富,学习氛围浓厚的技术圈一起学习交流吧!
[Java架构群]
群内有许多来自一线的技术大牛,也有在小厂或外包公司奋斗的码农,我们致力打造一个平等,高质量的JAVA交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。
在这里插入图片描述

码字不易,如果觉得本篇文章对你有用的话,请给我一键三连!关注作者,后续会有更多的干货分享,请持续关注!

你可能感兴趣的:(java,大数据,编程语言,人工智能,spring)