微服务器和无服务器可改变应用交付

日期: 2017-09-29 作者:CHRIS MOYER翻译:陈德文 来源:TechTarget中国

云服务已经改变了IT基础设施,但最新的云趋势表明了重组作业更根本性的转变。较新的云服务和应用程序设计理念(如微服务,无服务器计算和函数即服务)对IT运营人员和开发人员都有重要的影响。 然而,了解这些服务之间的差异以及它们如何影响应用程序部署可能会令人困惑,特别是因为大多数云提供商只会告诉您他们的服务是最好的。我们来看一下每个服务的特征,以及他们如何使用DevOps方法。

微服务的崛起 2011年,微服务架构的概念才刚刚开始。到2015年,每个开发人员都在谈论它。大型公司都在微服务中,宣传代码可重用性的好处,降低升级风险以及团队可以部署新功能的速度。微型服务使开发人员能够轻松地在小团队中工作,同……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

云服务已经改变了IT基础设施,但最新的云趋势表明了重组作业更根本性的转变。较新的云服务和应用程序设计理念(如微服务,无服务器计算和函数即服务)对IT运营人员和开发人员都有重要的影响。

然而,了解这些服务之间的差异以及它们如何影响应用程序部署可能会令人困惑,特别是因为大多数云提供商只会告诉您他们的服务是最好的。我们来看一下每个服务的特征,以及他们如何使用DevOps方法。

微服务的崛起

2011年,微服务架构的概念才刚刚开始。到2015年,每个开发人员都在谈论它。大型公司都在微服务中,宣传代码可重用性的好处,降低升级风险以及团队可以部署新功能的速度。微型服务使开发人员能够轻松地在小团队中工作,同时还可以为能够管理任何单个微服务器的中断的大型产品做出贡献。

微服务有三个关键因素:

•它是独立可扩展和可部署的。

•每个服务负责尽可能小任务。

•如果都正常运行,服务质量会更好,但如果其中之一出现问题,也不会影响到全局。

例如,Netfix在其整体产品中使用了几个微服务,其中包括一个用于观看视频的建议。如果该推荐服务停止,则流式传输平台的其余部分将继续运行,好像没有发生任何事情。

微服务有助于推出Docker,这使得开发商能够通过容器化进一步隔离其独立组件。 Docker可帮助开发人员更快地部署应用程序,而不必担心底层硬件甚至操作系统。

无服务器计算用例

无服务器计算概念的前提是,开发人员不必再担心底层硬件。亚马逊网络服务(AWS)Lambda在Google App Engine后也提供了无服务器的计算。虽然Google App Engine是一项惊人的技术,但开发人员放弃对底层硬件的控制为时过早,部署成熟度不高。

无服务器使用的三个因素:

•没有空闲费用,这意味着没有被使用的时间不会产生费用。

•没有必要配置。基础架构自动缩放。

•您不需要管理任何操作系统,硬件或不相关的软件。

一些提供商可能会对您可使用的容量进行保护或限制,而无需手动请求更多的容量。重点是确保自动缩放的情况下,不会出现意外高的开销。

某种程度上,无服务器的计算环境也可以用作函数云服务(FaaS)。例如,AWS Lambda和Auth0的Webtasks都是无服务器的FaaS。

AWS CodeBuild和Google App Engine是无服务器的,但不是FaaS。

按需的函数即服务云

亚马逊在2015年推出了AWS Lambda。Lambda将用户推向无服务器计算,并介绍了功能即服务的概念。 AWS Lambda既是无服务器,无管理配置、闲置费用或硬件管理,同时也是FaaS。

FaaS有三个关键因素:

•它按需执行代码(无空闲执行)。

•它会自动缩放。

•它运行一个特定的功能,而不用担心操作系统,硬件等。

使用FaaS,用户能够运行轻量级的按需代码块,并能轻松创建和移除。在这种环境中运行的函数需要最少的运行时间(通常小于分钟),通常最适合直接响应用户交互的应用程序。例如,开发人员可以为供应动态网站的FaaS编写代码,或者检查用户对给定API的权限。 FaaS通常用作中间件,以应用业务逻辑规则来与数据库进行用户交互。它也常用于Webhook或其他基于事件的触发器。

FaaS并不意味着无服务器。例如,Docker函数要求您运行承载Docker的服务器(或VM);但允许使用一点代码快速触发单个存储器。 FaaS只意味着代码仅在响应事件时被执行。不要求底层的基础设施在等待用户代码时保持空闲。

平台即服务的应用场景

平台即服务(PaaS)是一个较旧的概念。虽然与FaaS类似,因为它不需要任何手动配置,PaaS通常涉及一些空闲的运行时,并不是真正被认为的微服务器。 PaaS提供商包括Google App Engine和Heroku。这些提供商通常提供一个框架,如Express.js,或者一个自定义的Python框架,如Google App Engine,并根据应用需求自动扩展基础架构 —— 添加服务器。

PaaS有两个关键条件:

•是一个单一的端到端平台,可以构建整个应用程序。

•不需要配置,没有硬件,没有操作系统,没有其他软件。

许多开发人员已经从PaaS转变到FaaS,因为后者提供了更高水平的抽象,而没有太多的供应商锁定。然而,Google Firebase是个变得越来越流行的PaaS。 Google Firebase作为一个简单的数据库即服务开始,但已经变成了一个更广泛的平台,提供了许多连接的部件。 Firebase是独一无二的,因为它是一个全面的PaaS,可以将FaaS作为其产品之一。

软件即服务的多种用法

除了任何用户管理要求,最高级别的抽象是软件即服务(SaaS)。

数据库即服务是一种提供服务的SaaS,可以帮助开发人员在不管理数据库的情况下构建更好的应用程序。

为了成为SaaS,软件需要满足以下标准:

•在没有任何安装的情况下运行;

•无需开始编码;

•可以从任何有互联网连接的地方访问

•根据用户需求进行自动扩展。

SaaS有许多类型,包括Salesforce和Gmail等产品。开发人员和IT运营专业人员使用基于SaaS的工具进行应用程序性能监控,数据库和安全性。

重要的是要注意,开发者需要的不仅仅需要SaaS来创建一个应用程序,而SaaS产品不能被加入到一个新的应用程序中。任何需要编码将东西连接在一起的东西不是SaaS。典型的无服务器应用程序将使用类似FaaS的方式连接到多个SaaS产品,以确保不必运行任何服务器,例如在AWS Lambda上运行FaaS并连接到作为数据库SaaS的Amazon DynamoDB。

DEVOPS连接

云服务为运营人员移除了大量工作,谁可以专注于管理服务而不是硬件。随着云计算越来越受欢迎,组织需要运营的IT人员从仅仅管理硬件到学习开发,以便管理虚拟化硬件。这是DevOps开始的地方。运营人员需要学习在新的云时代生存的额外技能。在一些组织中,运营团队转变为DevOps团队,需要运营专业人员学习一些编码,以保持和保持相关性。

微服务,无服务器计算和FaaS,引入了新的根本变革。现在,我们正在将更多的应用程序移植到无服务器平台上,开发人员转而更多地了解操作。如果云提供商为我们自动处理一切,我们就不能依靠运营人员来管理云资源。这并不意味着无服务器功能将立即无限制地缩放。传统的架构不像运营团队只能添加额外的虚拟实例或者要求更多的容量。知道瓶颈存在很重要。开发人员在开发面向网络规模架构的服务之前,需要注意限制。

例如,DynamoDB是一种服务,开发人员几乎可以进行规模化。然而,实际规模受到哈希密钥的限制。在构建应用程序后,哈希键难以更改,因此开发人员在开始开发之前需要了解这些限制。否则,他们最后会重写代码。


翻译

陈德文
陈德文

TechTarget中国特约编辑

相关推荐