阅读原文请点击:
http://click.aliyun.com/m/23625/
摘要: 阿里云的函数计算(Function Compute)是基于Serverless这种理论框架下推出弹性海量计算平台,是Serverless的一种实现,函数计算主打的旋律是轻和快,从一定意义上来看也可以认为函数计算就是Serverless的一个Pass平台。
4月26日,阿里云正式推出了函数计算这个微服务产品,在此之前Serverless的概念被炒的极其火热,仿佛大家要欢天喜地进入了微服务的狂欢阶段,不过光有概念很容易晕,今天我带大家一起来细化一下Serverless的基本概念、Serverless跟传统IT架构的对比、Serverless和函数计算的区别,以及函数计算最典型场景都有哪些。
Serverless的基本概念
Serverless是一种基于互联网的技术架构理念,应用逻辑并非全部在服务端实现,而是采用FAAS(Function as a Service)架构,通过功能组合来实现应用程序逻辑。同时,Serverless架构能够让开发者在构建应用的过程中无需关注计算资源的获取和运维,由平台来按需分配计算资源并保证应用执行的SLA,按照调用次数进行计费,有效的节省应用成本。
我画个简单对比图来对比传统IT架构和Serverless的真正区别在哪里:
7852bc729a21269b8982e3bc813df94590ac1184
在该架构中,我们在云服务器上是部署了web容器来解析web图片处理应用,用户通过手机上的APP上传图片,应用程序对图片进行定制,例如按用户属性分类、按区域分类,审核鉴黄图片、以及建立图片索引等个性化数据处理后,把图片存储到云存储中,用户通过最近节点CDN可以读取经过处理的图片,达到图片分享的功能。
当应用上线后,在营销推广的高峰值就要考虑云服务器的负载均衡问题,架构就开始演变后的集群架构图:
67757e78c4ebd8040d609cf94a2ab768d2703dd2
在这个架构中,我们需要做如下事情:
1.管理云服务器。我们要关心CPU数量、内存大小、IP地址等等系统级的配置。
2.管理云服务器操作系统,为部署容器设置访问策略,操作系统版本以及容器安全补丁也不能忽视,否则竞争对手可能雇佣黑客来攻击我们的系统。
3.配置整套环境的弹性扩容的策略,应对高峰期突发访问量。
4.需要配置云存储、CDN。
5.编写WEB图片处理应用。
Serverless(函数计算)架构图:
在使用函数计算的用户可以设置云存储的触发器(PutObject事件),当用户上传图片到OSS会立即一个新的触发函数计算的执行,同样当业务访问量是峰值的时候,Function Compute会自动扩容来支撑整个业务处理。处理后的数据回传到OSS中,其他用户通过CDN可以访问被处理后的图片访问。
其中架构图如下:
fc26cb1220934679bab948d59c85915b03562b44
我随手摘录网文上介绍的Serverless的优势:
1、节约使用成本
在业务突发性极高的场景下,系统为了应对业务高峰,必须构建能够应对峰值需求的系统,这个系统在大部分时间是空闲的,这就导致了严重的资源浪费和成本上升。在Serverless架构下,服务将根据用户的调用次数进行计费,节省了使用成本,同时,用户能够通过共享网络、硬盘、CPU等计算资源,在业务高峰期通过弹性扩容方式有效的应对业务峰值,在业务波谷期将资源分享给其他用户,有效的节约了成本
2、简化设备运维
在原有的IT体系中,开发团队即需要维护应用程序,同时还要维护硬件基础设施;Serverless架构中,开发人员面对的将是第三方开发或自定义的API 和URL,底层硬件对于开发人员透明化了,技术团队无需再关注运维工作,能够更加专注于应用系统开发
3、提升可维护性
Serverless架构中,应用程序将调用多种第三方功能服务,组成最终的应用逻辑。
目前,例如登陆鉴权服务,云数据库服务等第三方服务在安全性、可用性、性能方面都进行了大量优化,开发团队直接集成第三方的服务,能够有效的降低开发成本,同时使得应用的运维过程变得更加清晰,有效的提升了应用的可维护性
Serverless和函数计算的区别
阿里云的函数计算(Function Compute)是基于Serverless这种理论框架下推出弹性海量计算平台,是Serverless的一种实现,函数计算主打的旋律是轻和快,从一定意义上来看也可以认为函数计算就是Serverless的一个Pass平台。下面来大致看看Function Compute的主要组成部分和基本概念:
阅读原文请点击:
http://click.aliyun.com/m/23625/
分享到:
相关推荐
本书旨在为 C++ 开发者提供一个全面、深入的学习资源,不仅介绍了 C++ Templates 的基本概念和语言特性,还涵盖了高级设计模式和编程技巧。无论是初学者还是经验丰富的开发者,都可以从本书中获得有价值的信息和灵感...
本章作为入门篇,旨在帮助读者快速掌握Java编程语言的基本概念,并熟悉其面向对象的特性。 1. **Java语言基础知识**: - **基本数据类型及运算**:介绍Java中的整型、浮点型、字符型等基本数据类型以及相关的算术...
《算法导论》是计算机科学领域内的一本经典教材,全面介绍了算法设计与分析的基本概念和技术。本书共分为两大部分:基础篇和排序与序统计篇。 ##### 基础篇 1. **第1章:算法在计算中的角色** - 算法定义及其重要...
- **1.1 算法**:介绍算法的基本概念,包括定义和分类。 - **1.2 算法作为一种技术**:讨论算法在实际应用中的重要性和作用。 - **第2章:入门** - **2.1 插入排序**:详细介绍插入排序算法的工作原理及其实现...
- **打印入门**:介绍了Windows程序中打印功能的基本概念和实现步骤。 - **打印图形和文字**:详细说明了如何在打印文档中绘制图形和文字。 #### 十、位图和Bitblt - **位图入门**:介绍了位图的基本概念和使用方法...
综上所述,这份文档涵盖了**IBM DB2**数据库管理和操作的多个方面,包括基本概念、数据查询、索引、存储过程、权限管理等核心知识点。对于希望深入了解**IBM DB2**及其**SQL**功能的学习者来说,是非常宝贵的资源。
#### 入门篇 **第一章:打开LabVIEW编程之门** - **1.1 从VI开始** - **如何创建VI**:介绍如何在LabVIEW环境中新建一个虚拟仪器(Virtual Instrument,简称VI)。用户通过选择“文件”->“新建VI”选项或使用...
- **6.1 堆**:讲解了堆数据结构的基本概念、性质和操作。 - **6.2 维护堆属性**:探讨了如何保持堆的性质不变。 - **6.3 堆排序**:介绍了如何利用堆数据结构实现高效的排序算法。 通过上述章节的详尽介绍,...
- **引言**:概述了排序算法和序统计的基本概念及其重要性。 - **第6章:堆排序**: - **6.1 堆**:定义了堆这种数据结构,并讨论了其性质。 - **6.2 维护堆属性**:介绍了如何在堆操作中保持堆的性质不变。 #...
- **1.1 算法简介**:介绍了算法的基本概念,包括算法的定义、特点以及如何评估算法的好坏。 - **1.2 算法作为技术**:探讨了算法在现代技术发展中的作用,包括其在软件工程、数据分析和其他领域的应用。 - **第二...
本书作为经典之作,不仅涵盖了算法的基本概念和发展历程,还深入探讨了各种算法的设计原则及其在实际问题中的应用。 #### 二、书籍结构与主要内容 1. **基础篇**(Foundations) - **第一章:算法在计算中的角色*...