微服务和 Serverless 架构-Serverless 理念的出现

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
可观测链路 OpenTelemetry 版,每月50GB免费额度
可观测监控 Prometheus 版,每月50GB免费额度
简介: 微服务和 Serverless 架构-Serverless 理念的出现

开发者学习笔记【阿里云云原生助理工程师认证(ACA)课程:微服务和 Serverless 架构-Serverless 理念的出现】

课程地址:https://edu.aliyun.com/course/3112075/lesson/19029


微服务和 Serverless 架构-Serverless 理念的出现

 

内容介绍:

一.云计算平台的优势和局限性1

二.云计算平台的优势和局限性2

三.需求催生新的架构升级

四.Serverless带来的产业模式升级

五.Serverless 的技术优势

六.Serverless 带来的技术升级

 

一.云计算平台的优势和局限性1

image.png

云原生中的另一个重要概念 Serverless 理念,2009年云计算方兴未艾之时,加州大学伯克利分校发布了一篇著名的论文:《在云之下,从伯克利的观点看云计算》,论文对云计算的发展方向和关键技术做了大量的预测和论证。
在论文中,伯克利大学对云计算的业态总结了六点优势,其中前四点优势包括:无限可用的计算资源、用户不需要承担服务器运维工作和责任、服务按需付费,超大型数据中心降低使用成本,这四点经过云计算厂商多年努力,结合新商业模式,已经从预测变为了现实,但第五点和第六点问题,即可视化资源管理运维操作难度大大降低,和分时复用硬件的利用率大大提高,虽在云计算环境下有所改善,但问题并没有得到完全解决。

 

二、云计算平台的优势和局限性2

image.png
与传统自建 IPC 模式相比,云计算着重解决数据中心商业模式变化和服务器虚拟化与上云。

在云计算模式下,用户不再需要自建 IPC 和购买实体服务器,而是转向云计算厂商租用虚拟服务器,但开发人员使用服务器的方式并没有太多改变。
具体来讲,都是通过远程连接登录服务器,然后在服务器上进行操作系统升级维护和应用运行环境配置,以及应用的部署、运行、调试,唯一的区别只是远程登录地址由自家IPC转到云服务厂商。

这样可以降低用户上云的迁移成本,并不需要对原有的服务器使用流程做过多修改,但这样做的缺点首先是无法完全消除不必要的运维经济消耗,虚拟机的操作系统和应用运行环境仍然需要开发者定期升级和检查安全漏洞,这些操作无形中增加了企业运维人员的精力消耗,而且一旦升级更新部署环境出现问题,潜在的安全风险也大大上升。

虚拟服务器一般使用按时长付费的方式租用,但在实际使用过程中,应用的消耗有着时间周期的变化,虚拟服务器往往为了应付短时间的大流量而在其他时间计算需求不足,导致资源的浪费,即物理计算资源利用率并没有得到更加深入的挖掘和提升。

 

三、需求催生新的架构升级

在这种情况下,2015年推出了一款名为 AWS Lambda的产品,在这款产品中亚马逊提出了 Cloud 和 Serverless理念。其中 Serverless 并不是指不再需要服务器,而是开发人员不再关注服务器,转而使用运营商提供的应用运行环境直接运行应用。
亚马逊的这一理念一经提出,就引起了业内的广泛关注,虽然 AWS Lambda 这款产品,在设计上仍显得有些粗糙,以致其并没有迅速成为主流,但是Serverless 的概念为业界提供了新的云资源管理思路。

image.png


Serverless的概念,如上图,在云计算模式下,要运行由代码编写的一个简单网络应用,需要做的最小操作是:首先编写简单代码,然后租用 ECS 服务器,并在服务器中配置代码运行环境,接下来为 ECS服务器配置 VPC ,配置公网弹性 IP。
当启动多实例时,开发者还需要配备SLB 作为负载均衡,如果再考虑到应用流量变化,还需配备弹性伸缩组件,相比较下,业务代码的编写在整体流程中的占比反而相对较低,而在 Serverless 中用户只需开发服务代码,然后将服务代码传入与运行环境相关的Serverless 平台上即可运行。
运行环境的准备、公网 IP的配置以及多实例的负载均衡和弹性伸缩都由 Serverless平台进行提供,这就大大降低了应用开发者的运维成本。

 

四.Serverless 带来的产业模式升级

image.png

Serverless 平台包含云计算平台下应用所需的全部资源,开发者不再需要关注 ECS 网络资源,应用平台等多种顶层资源,同时,Serverless 模式并不像传统的 ECS 服务器,采用按时长方式进行收费,而是提出新的商业模式,即按计算量进行收费,云服务厂商会提供一个容量庞大的集团资源池,当 Serverless 应用需要使用计算资源时,则动态的从资源池中请求资源。
而当资源使用结束后,则迅速将资源归还给公共资源池。Serverless 的资源使用时间可以精确到秒甚至毫秒,这种设计相较于 ECS 的租用模式,资源的使用效率又得到了明显的提升,同时,对企业资产管理来讲,这种完全按照计算量收费的模式,简化了计算方法,做到了费用和业务部门的计算量完全挂钩,计算即付费,不计算不付费,使得资产管理更加便利。

 

五.Serverless 的技术优势

 image.png经过四五年的发展,Serverless 理念逐渐在云原生中得到了广泛实践,2019年伯克利分校再次发表的论文对 Serverless 做出了三点总结:

1. 存储与计算分离:按需使用计算资源就意味着当计算停止时,对应的应用资源将得到释放,在这种情况下,如果存储和计算绑定,势必在计算释放计算资源时也会导致存储数据丢失。因此 Serverless的设计思路即是将数据存储和数据计算分开,存储放在可持久服务中,计算放在可释放服务中。

2. 代码的执行,即数据的计算不再需要手动分配和维护资源,只需要准备好应用程序,直接通过 Serverless平台向公共资源池申请资源即可。

3. 云服务厂商按照代码计算量精确付费,一旦计算资源结束,会在秒到毫秒间释放计算资源,保证计算资源的最大效率运用。

 

六.Serverless 带来的技术升级

 image.png 

Serverless 理念不仅带来了运维效率的提升和商业模式的变化,也为云计算的底层技术实现带来了变革的契机。
传统的云计算方式下,应用的部署环境一般为右图,底层是物理服务器,物理服务器之上是云计算操作系统,而云计算操作系统之上安装一层虚拟机,通过虚拟机将物理服务器虚拟成多台ECS 云服务器,在 ECS 云服务器之上会再安装ECS 操作系统, ECS操作系统之上才是云计算应用平台和云计算应用实例。这种在底层安装了两套工作系统和一套虚拟机的架构,虽然有助于实现 ECS的按需租用。但是虚拟底层造成的性能损失平均估计在10%-20%左右,而在Serverless 基础下,开发者不再关注操作系统和运行环境。应用也不再需要直接部署在操作系统上,云服务厂商可以完全抛弃虚拟机层,在服务器操作操作系统上直接安装应用平台层,通过应用平台层实现计算资源分配和应用之间的隔离。
这样的服务架构我们称为 ESB 弹性裸金属服务器,裸金属服务器的含义就是底层的物理服务器直接暴露给应用平台层,不再存在中间的虚拟层,一台底层物理服务器可以支撑大约几十个虚拟机,而弹性裸金属服务器架构下, Serverless 应用平台可以支持几百甚至数千个应用同时部署,操作系统和底层护理服务器的硬件架构都可以为 Serverless 平台做制定化的修改和设计。
因此,如果说容器技术是云原生的基础技术,微服务架构是云原生下的推荐架构,那么 Serverless 理念则深刻的改变了用户的上云方式和云服务厂商的底层技术实现。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
8天前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
18 3
|
12天前
|
监控 负载均衡 应用服务中间件
探索微服务架构下的API网关设计与实践
在数字化浪潮中,微服务架构以其灵活性和可扩展性成为企业IT架构的宠儿。本文将深入浅出地介绍微服务架构下API网关的关键作用,探讨其设计原则与实践要点,旨在帮助读者更好地理解和应用API网关,优化微服务间的通信效率和安全性,实现服务的高可用性和伸缩性。
31 3
|
15天前
|
存储 Java Maven
从零到微服务专家:用Micronaut框架轻松构建未来架构
【9月更文挑战第5天】在现代软件开发中,微服务架构因提升应用的可伸缩性和灵活性而广受欢迎。Micronaut 是一个轻量级的 Java 框架,适合构建微服务。本文介绍如何从零开始使用 Micronaut 搭建微服务架构,包括设置开发环境、创建 Maven 项目并添加 Micronaut 依赖,编写主类启动应用,以及添加控制器处理 HTTP 请求。通过示例代码展示如何实现简单的 “Hello, World!” 功能,并介绍如何通过添加更多依赖来扩展应用功能,如数据访问、验证和安全性等。Micronaut 的强大和灵活性使你能够快速构建复杂的微服务系统。
39 5
|
4天前
|
缓存 负载均衡 数据管理
深入探索微服务架构的核心要素与实践策略在当今软件开发领域,微服务架构以其独特的优势和灵活性,已成为众多企业和开发者的首选。本文将深入探讨微服务架构的核心要素,包括服务拆分、通信机制、数据管理等,并结合实际案例分析其在不同场景下的应用策略,旨在为读者提供一套全面、深入的微服务架构实践指南。**
**微服务架构作为软件开发领域的热门话题,正引领着一场技术革新。本文从微服务架构的核心要素出发,详细阐述了服务拆分的原则与方法、通信机制的选择与优化、数据管理的策略与挑战等内容。同时,结合具体案例,分析了微服务架构在不同场景下的应用策略,为读者提供了实用的指导和建议。
|
20天前
|
数据库 Java 数据库连接
Hibernate 实体监听器竟如魔法精灵,在 CRUD 操作中掀起自动化风暴!
【8月更文挑战第31天】在软件开发中,效率与自动化至关重要。Hibernate 通过其强大的持久化框架提供了实体监听器这一利器,自动处理 CRUD 操作中的重复任务,如生成唯一标识符、记录更新时间和执行清理操作,从而大幅提升开发效率并减少错误。下面通过示例代码展示了如何定义监听器类,并在实体类中使用 `@EntityListeners` 注解来指定监听器,实现自动化任务。这不仅简化了开发流程,还能根据具体需求灵活应用,满足各种业务场景。
28 0
|
20天前
|
前端开发 微服务 API
微服务浪潮下的JSF革新:如何在分散式架构中构建统一而强大的Web界面
【8月更文挑战第31天】随着微服务架构的兴起,企业将应用拆分成小型、独立的服务以提高系统可维护性和可扩展性。本文探讨如何在微服务架构下构建和部署JavaServer Faces (JSF) 应用,通过RESTful服务实现前后端分离,提升灵活性和适应性。
37 0
|
20天前
|
负载均衡 监控 JavaScript
探索微服务架构下的API网关模式
【8月更文挑战第31天】在微服务的大潮中,API网关不仅是流量的守门人,更是服务间通信的桥梁。本文将带你深入理解API网关的核心概念、设计要点及其在微服务架构中的重要作用,同时通过代码示例揭示如何利用API网关提升系统的灵活性与扩展性。
|
21天前
|
NoSQL API 数据库
揭秘!Flask如何一键解锁RESTful API高效微服务?打造未来互联网架构的隐形力量!
【8月更文挑战第31天】本文介绍如何使用 Flask 构建高效且易维护的 RESTful 微服务,涵盖环境搭建、基本应用创建及代码详解。通过示例展示用户管理系统的 CRUD 操作,并讨论数据库集成、错误处理、认证授权、性能优化及文档生成等高级主题,助力开发者打造强大的后端支持。
32 0
|
22天前
|
消息中间件 监控 Kafka
Producer 与微服务架构的集成
【8月更文第29天】在现代软件开发中,微服务架构因其灵活性和可扩展性而被广泛采用。这种架构允许将复杂的系统分解为更小、更易于管理的服务。消息传递是连接这些服务的关键部分,而消息生产者(Producer)则是消息传递中的重要角色。本文将探讨如何将消息生产者无缝集成到基于微服务的应用程序中,并提供一个使用 Python 和 Kafka 的示例。
27 0
|
23天前
|
Kubernetes Cloud Native Docker
云原生之旅:从容器到微服务的架构演变
【8月更文挑战第29天】在数字化时代的浪潮下,云原生技术以其灵活性、可扩展性和弹性管理成为企业数字化转型的关键。本文将通过浅显易懂的语言和生动的比喻,带领读者了解云原生的基本概念,探索容器化技术的奥秘,并深入微服务架构的世界。我们将一起见证代码如何转化为现实中的服务,实现快速迭代和高效部署。无论你是初学者还是有经验的开发者,这篇文章都会为你打开一扇通往云原生世界的大门。

相关产品

  • 函数计算