Serverless是当前软件架构模式中的热门话题之一,与软件工程中的许多其他术语或趋势一样,Serverless并没有明确的定义,因此在本文中我们将简要介绍服务器的基本概念,以及讨论围绕无服务器的几个问题。无服务器只是炒作吗?技术发展如何?什么是无服务器?根据MartinFowler.com的定义,无服务器架构是指主要依赖第三方服务(称为后端即服务或“BaaS”)或在临时容器中运行的自定义代码(功能即服务或“FaaS”)的应用程序。如上所述,如果您不维护或管理自己的基础架构来运行应用程序并根据使用情况付费(或不付费),同时自动从提供商那里获得所需级别的高可用性、可扩展性和容错性,那么您正在运行无服务器应用程序。作为在无服务器环境中运行的应用程序的所有者,您可以将所有注意力集中在应用程序业务逻辑上,而不必担心它运行的基础设施和应用程序周围的其他非功能性需求。无服务器只是炒作吗?如果您不熟悉无服务器并将其视为一种架构,那么这就是您需要面对的问题之一。没错,现在serverless是一个热门话题,但是结合前后的发展,我个人认为serverless不是短期的炒作,至少3-5年内不会,围绕serverless的技术可能会被淹没。改变,替换,但无服务器的概念没有。技术层面如何向Serverless发展?俗话说,鉴古知今,知古鉴今,所以在讲解serverless功能有多强大之前,我们先来看看它在过去几年的发展历程:1989年——1991-TimBerners-Lee爵士发明了万维网1991-1995-裸机时代1995年虚拟主机1999-Salesforce引入软件即服务(SaaS)概念2001-VMWare发布ESXi,“服务器虚拟化”成为热门话题2002-2006-AWS提出IaaS,人们开始谈论“云计算”2009Heroku提出“平台即服务”(PaaS)2011-Envolve/Firebase,实时数据库即服务2012-Parse.com和***后端作为aService(BaaS)2013-Docker,“容器优于虚拟机”2013-2015-Kubernetes/Swarm/Nomad/CoreOs(containersatscale)2014-AWSLambdalaunched(FaaS)AWSlambda诞生,无服务器一词出现和FaaS一起登台。虽然大多数人认为Lambda是Serverless的起点,但容器化将Serverless迁移推向了第一个高潮。随着容器化的出现,全球领先的云服务提供商Providers开始向客户提供“按需付费”的概念和最需要的非功能性需求,以支持使用其基础架构来运营其业务。无服务器应用程序的关键特征无服务器应用程序有四个关键特征:无服务器管理——顾名思义,对于无服务器应用程序,应用程序所有者不需要涉及任何物理服务器。如果您是应用程序所有者,那么您不知道有多少服务器代表您的应用程序及其物理位置在运行。灵活的扩展——因为你不需要知道物理服务器层,所以你不必担心可扩展性。应用程序将根据需要分配更多资源来管??理所需的容量级别。高可用性-冗余和容错是无服务器框架的内置功能,无需保留自己的服务器即可使您的应用程序具有高可用性。如果处理节点失败,框架会自动为您生成一个或多个新节点。成本控制-在无服务器环境中,您不需要花费更多时间,这是成本方面的主要优势之一。FaaS和Serverless是一样的吗?这是趋势类中的常见问题,有人声称FaaS是Serverless概念的技术实现,也有人认为Serverless不局限于FaaS,而是一个适用范围更广的概念。我个人比较认同后一种说法。FaaS只是无服务器架构的事件驱动处理部分。应用程序还有许多其他必需的构建块,例如数据持久性、数据流、消息传递、用户管理等,以提供一些端到端的功能。最重要的是,有些应用程序没有FaaS组件,但仍然可以被认为是无服务器的。例如,如果我们需要一些静态虚拟主机,我们可以做到这一点而不必考虑物理服务器。如果我们认为AWS是我们的云服务提供商,我们可以将我们的网页内容托管在S3存储桶中,并启用静态虚拟托管来托管网页。为了使其完整,您可以使用Route53作为DNS,使用CloudFront作为CDN。另一个示例是仅使用后端服务进行身份验证和数据持久化的胖客户端Web应用程序。您不需要拥有自己的物理服务器和FaaS组件来实现这种应用程序,有许多服务可用于身份验证和数据持久化。无服务器是未来吗?在回答这个问题之前,我建议你先看看AWS的产品页面,如果你仔细看,你会发现大约有100种“服务产品”,涵盖了从开发到部署和维护整个软件开发生命周期。您如何看待AWS的愿景?我坚信它会改变世界,让我们能够完全在解决方案的基础上开发、测试、部署和维护我们的应用程序。如果你现在还没有准备好,你可以看看过去两年AWS服务的增长情况。他们正在从基础架构的角度迅速扩展自己的版图和改进服务范围,以涵盖软件生命周期的几乎所有方面。要求。当然,其中一些服务尚未完全完成(过去两个月内发布的很少),是内部产品的完美替代品。但是,在未来2-3年内,他们将确保为云应用程序的开发、部署和维护提供服务。那么,这些云服务提供商在哪里进行软件开发和维护呢?他们的目标是以无服务器的方式覆盖所有可能的场景,让他们的客户处于舒适区,确保他们只需要专注于他们的业务逻辑并能够充分发挥其潜力。我们是否达到了我们现在需要的能力水平?到目前为止,您可能想知道如果我们要转向无服务器范式,FaaS如何提供所需的处理能力。我举一个FaaS产品AWSLambda的例子。当然,很多人很容易争辩说AWSLambda不具备促进几乎所有处理场景的能力(我仍然指的是基于事件的应用程序)。但对我来说,这些限制几乎都只是软限制,可以放宽,未来AWSLambda有信心覆盖至少90%的情况。根据最近的一份报告,到2021年,FaaS市场预计将增长到32.7%。这只是FaaS,如果你看看无服务器范式,你就会看到它有多大的潜力。结论“Serverless”是现在的热门话题,未来几年肯定会成为主流,你不用担心基础设施,整个软件生命周期都由云服务商来做。如果你渴望掌握最新的技术,那么欢迎你了解无服务器范式和云产品。如上所述,本文提出的所有问题都极具争议性,没有正确答案。欢迎大家针对以上问题在下方留言评论,共同分享交流。
