内容简介:目前无服务器计算,也被称作无服务器架构,或无服务器,在计算领域是很热的话题。亚马逊,谷歌和微软(云计算的三巨头)都在无服务器架构领域做了大量投资,以提高对各类业务服务的持续集成能力。无服务器架构,跟普通的编程和网络书一样,日渐成为书架上常见的的主题。不过,即使你之前接触过无服务器架构,还是要再花些时间仔细想想,以正确理解它的概念。许多人想知道无服务器架构是什么,以及它目前有哪些最佳实践。跟许多革命性技术趋势一样,无服务器架构很难用简要的一两句话概括。它是一个正变得日益重要,并且在未来的云计算,特别是企业系
目前无服务器计算,也被称作无服务器架构,或无服务器,在计算领域是很热的话题。亚马逊,谷歌和微软(云计算的三巨头)都在无服务器架构领域做了大量投资,以提高对各类业务服务的持续集成能力。无服务器架构,跟普通的编程和网络书一样,日渐成为书架上常见的的主题。
不过,即使你之前接触过无服务器架构,还是要再花些时间仔细想想,以正确理解它的概念。许多人想知道无服务器架构是什么,以及它目前有哪些最佳实践。
什么是无服务器架构?
跟许多革命性技术趋势一样,无服务器架构很难用简要的一两句话概括。它是一个正变得日益重要,并且在未来的云计算,特别是企业系统,会扮演重要角色的技术。
无服务器架构是云服务提供商动态管理服务器资源分配的云计算技术。当某个条件或事件触发时,业务进程会被隔离运行。而运行业务进程需要的资源通常会由云服务商管理。通过将多样的触发器与第三方云服务、客户端逻辑和调用云服务的能力集成起来,无服务器架构可交付通常我们称为“函数即服务”(FaaS)。
开发者为何使用无服务器架构?
开发者采用无服务器架构有几个原因。但事实上,一些场景下使用传统服务器方式会有更好的效果。
不需要关心维护工作
传统服务器驱动的方式一直有本质上的业务问题和挑战。例如,应用和运行环境所在的远程服务器需要维护。维护工作包括应用补丁、安全更新和尽快纠正影响可用性的任何问题。而如果使用无服务器架构,你只需要将这些工作交给云服务商。所有的云服务商目前都提供大量的冗余或其它措施,来保证极高的可用率。
成本
对许多业务来说,无服务器架构最大的卖点是成本。与租用物理机和长期维护它们相比,无服务器架构非常节省。事实上,无服务器技术采用了与传统服务器架构完全不同的计费方式。
如果租用物理机,你要为相应配置的服务器及其可用资源的占用买单。 相反的,无服务器提供商是基于执行次数收费,即按资源计费。云服务商会按你选的套餐分配一定的时间。如果你要做更多执行,那段时间里可使用的内存也是可配的。每毫秒需求的内存越多,套餐也就越贵。
环境
无服务器云的配置很简单,配置多个不同环境跟配置一个一样容易。因为无服务器计算以每次执行为基础,在不同架构下使用不同执行调用就很容易。这也意味着你完全不需要担心不同环境的配置和状态监控。
缺点有什么?
没有一种技术是完美的。当然会有一些条件和场景下,传统服务器架构会比无服务器方案效果更好。
网络
在网络应用领域,无服务器架构有一个缺陷——即无服务器函数一般只能通过私有API来访问,那么就需要配置API网关。如果是无服务器环境,你不能通过普通的IP访问到这些服务。对于需要传统网络能力的应用,传统服务器架构无疑是正确的选择。
超时限制
无服务器架构中的超时限制指的是你可以执行函数的时长。大部分无服务器架构提供商给的最大时长是300秒。任何需要执行更久或可能执行更久的应用都不适合使用该架构。
使用场景
UI驱动的应用
想象一个连接在线零售商的电商应用,例如一个衣店。如果使用传统服务器架构,用户要使用其联网设备,连到该商店的服务器上,然后再访问部署在上面的数据库。该数据库会包含业务和产品等相关的所有信息。部署在服务器上的应用,会提供给用户一个访问服务器和下单的使用界面。
如果使用无服务器架构,结构会变得很不同。购买和搜索功能可被API网关分开来访问隔离的不同的函数,而不是由用户访问衣店的物理服务器。
APIs
无服务器计算的一个简单应用是配置给单页应用或其它服务提供数据的REST APIs.
REST APIs一般不难创建。往往你只需使用简单的web框架,将数据转换为你需求格式(一般是JSON)的库和提供后端数据访问的胶水代码。而如果使用无服务器架构,开发者只需关注API代码的编写和部署,而非其他。
在REST API里一般要人工配置的功能,如自动扩容以满足业务需求,在无服务器架构下可以被自动化地完成。而且,已成为云计算特征的按资源付费模式,意味着几乎接近与无部署的最小的API获取成本。
最佳实践
像其它任何技术应用,当你采用一些最佳实践时,才能从无服务器架构中获得最大的收益。以下是当考虑怎样设计和实现无服务器架构时,你应当了解的忠告。
1、使用一个计算服务,以实现按需部署。成为真正的无服务,你要确保你选的云服务提供商有可实现你目标的计算服务。只要你必须依赖物理机、虚拟机或你自己创建的容器,你就与无服务器架构背道而驰。
2、编写无状态和单一目的的函数。当你为无服务器架构编写函数时,请确保每个函数服务于单一的目的,并且正确的实现它。许多无服务器配置采用不同的函数以组成微服务。
3、基于PUSH和事件驱动的流水线。如果你要执行更复杂的计算任务,可创建事件驱动和基于PUSH的流水线,这样不同服务可轻易的访问彼此。
无服务器架构使我们窥见了云计算未来的样子。现在云上有大量服务,存储和能力,无服务器计算的发展具有无限的可能性。
原文链接: https://dzone.com/articles/lev ... cture ( 翻译:郭小波 )
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 一探究竟 | eBay流量管理之DSR在基础架构中的运用及优化
- Gradle系列-运用篇
- 如何运用DDD(四):聚合
- 灵活运用JavaScript开发技巧
- 如何运用DDD(二):实体
- 如何运用DDD(五):存储库
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
从规范出发的程序设计
[美] Carroll Morgan / 裘宗燕 / 机械工业出版社 / 2002-8 / 45.00元
本书详细论述了有关规范程序设计的内容,包括:程序和精化、谓词演算、选择、迭代、构造类型、模块和封装等,最后几章还包含了大量的实例研究和一些更高级的程序设计技术。本书提倡一种严格的程序开发方法,分析问题要用严格方式写出程序的规范,而后通过一系列具有严格理论基础的推导,最终得到可以运行的程序。 本书是被世界上许多重要大学采用的教材,适于计算机及相关专业的本科生和研究生使用。一起来看看 《从规范出发的程序设计》 这本书的介绍吧!