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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 微服务和 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 理念则深刻的改变了用户的上云方式和云服务厂商的底层技术实现。

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
20小时前
|
缓存 运维 监控
探索微服务架构中的API网关模式
在微服务架构的海洋中,API网关是连接客户端与众多微服务群岛之间的桥梁。本文将深入探讨API网关的设计原则、核心功能以及在现代软件架构中的关键作用,同时分析其在实际应用中的效益和面临的挑战。
|
1天前
|
Kubernetes 监控 Cloud Native
云原生架构下的微服务治理实践
【6月更文挑战第23天】在云计算的浪潮中,云原生架构以其弹性、可扩展性和高效性成为企业数字化转型的重要推手。本文将深入探讨如何利用云原生技术实现微服务的治理与优化,确保系统的稳定性和高可用性。我们将从微服务的基本概念出发,通过具体案例分析,揭示云原生环境下微服务治理的关键策略,并分享实践经验,旨在为读者提供一套完整的微服务治理解决方案。
|
18小时前
|
架构师 API 持续交付
探索微服务架构的演进与挑战
【6月更文挑战第24天】在软件开发领域,微服务架构作为一种灵活、可扩展的设计模式,已经引领了多年的技术潮流。本文将深入探讨微服务架构从兴起到成熟的发展路径,揭示其在现代应用中面临的主要挑战,并提供针对性的解决策略。通过分析微服务的设计理念、实践案例和未来趋势,我们旨在为开发者和架构师提供一份实用的指南,帮助他们在构建和维护复杂系统时做出明智的决策。
|
23小时前
|
运维 负载均衡 Cloud Native
云原生架构下的微服务治理实践
【6月更文挑战第24天】在云原生的浪潮下,微服务治理成为确保系统弹性、可维护性和可观测性的关键。本文通过深入分析微服务治理的核心要素与挑战,结合前沿技术和工具,提出一套实用的微服务治理策略,旨在帮助开发者和架构师构建更加稳定、高效且易于管理的分布式系统。
|
1天前
|
存储 负载均衡 NoSQL
微服务架构中的服务发现与注册中心
【6月更文挑战第23天】随着微服务架构的日益流行,服务发现和注册中心作为其核心组件,确保了服务的高可用性和伸缩性。本文将深入探讨服务发现机制的重要性、注册中心的工作原理以及它们在现代分布式系统中的应用,同时通过一个实际案例来展示如何在微服务环境中实现高效的服务管理。
|
1天前
|
监控 Java 微服务
从单体到微服务:Java架构演进之路
从单体到微服务:Java架构演进之路
|
16小时前
|
NoSQL Java 数据库
优化基于阿里云的微服务架构下的数据库访问性能
在应对大型电商项目中数据库访问性能瓶颈问题时,团队通过阿里云工具分析发现高QPS、慢查询和不合理数据交互是关键。优化措施包括:1) 索引优化,针对慢查询添加或调整索引;2) 开启读写分离,使用RDS读写分离功能和DRDS进行水平拆分;3) 引入Redis缓存热点数据,减少直接数据库访问;4) 服务化数据访问,降低跨服务数据库调用;5) 使用Sentinel进行限流和熔断,保护数据库资源。这些改进显著提升了系统响应速度和用户体验。
|
1天前
|
监控 Cloud Native API
云原生架构下的微服务治理实践
【6月更文挑战第23天】在数字化转型的浪潮中,云原生技术以其灵活性、可扩展性和弹性成为企业IT架构升级的首选。本文将深入探讨云原生架构下微服务治理的关键策略与实践,包括服务发现、配置管理、流量控制等核心组件的应用,旨在为读者提供一套完整的微服务治理解决方案,以支撑业务的快速迭代和高可用性需求。
|
2天前
|
设计模式 监控 持续交付
深入理解微服务架构:从理论到实践
【6月更文挑战第22天】微服务架构作为现代软件开发的基石,其理念和实践已经深入人心。本文将通过一个实际案例,探讨如何将微服务架构的理论应用到实践中去,包括设计原则、技术选型、以及实施过程中可能遇到的挑战和相应的解决策略。我们将看到,尽管微服务带来了许多优势,但在实际应用中也不可避免地会遇到一系列问题,需要开发者具备深厚的技术功底和丰富的实践经验才能妥善应对。
|
3天前
|
监控 持续交付 数据安全/隐私保护
Python进行微服务架构的监控
【6月更文挑战第16天】
27 5
Python进行微服务架构的监控

相关产品

  • 函数计算