Serverless 下的微服务实践|学习笔记

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: 快速学习 Serverless 下的微服务实践

开发者学堂课程【Serverless 与微服务:Serverless 下的微服务实践】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/844/detail/14014


Serverless 下的微服务实践


内容简介:

一、 微服务架构介绍

二、 云原生时代下微服务架构的发展

三、 微服务 +Serverless 最佳实践

 

一、微服务架构介绍:

(一)微服务架构诞生背景

1. 互联网早期 (Web 1.0)

l 门户时代

l 单体应用

l 研发团队小

2. 新世纪互联网

l 社交&电商

l 流量&复杂度大增

l 研发团队扩大

l SOA/ 微服务架构

3. 移动互联网

l 生活全面互联网化

l 流量&复杂度爆发

l 研发团队大

l 效率要求高

l 微服务架构

4. 全面数字化

l 社会全面互联网化

l 流量&复杂度挑战

l 研发团队更大

l 效率要求更高

l 版本极速迭代

l 微服务架构

(二)业务架构改造

1. 单体时期架构

图片11.png

2.微服务时期架构

图片12.png

3. 单体架构与微服务架构对比

l 单体架构

l 共享代码库,容易冲突

l 边界不清,模块耦合

l 团队效率低


l 微服务架构

l 拆分:解耦研发态

l 拆分:解耦部署态

l 拆分:释放团队效率

 

二、云原生时代下微服务架构的发展

(一) 微服务的云原生化

云原生是一个很大的概念,而如果我们以微服务为起点,来看云原生给微服务代练的变化与演进,可以帮助我们更好的理解什么是云原生。

1. 生命周期管理

l 曾经的单体应用与资源之间的关系十分简单,单体应用的协同也都是一些内部协同,不存在外部动态的依赖。

l 架构转换到微服务之后,由于外部依赖与节点数量的爆炸。整个体系会变成网状,管理起来十分复杂。

l 如今,比较公认的一点就是,云原生的根基就是在于容器与容器的管理编排 (K8S).

l 而容器与 K8S 的技术就能帮助我们解决微服务体系存在的异常复杂的运维问题。

Pod :一组容器的集合,与微服务实体的生命周期的耦合。Sidecar :为主容器提供辅助功能。

图片13.png

l 容器平台或者云平台的应用引擎也能帮助我们便利的进行微服务应用的更新、发布、扩缩容等操作。

2. 流量治理

l 微服务将曾经单体时代的(通常是在编译时确定的)静态通信关系,通过拆分编程了动态运行时。

l  因此,服务之间的通信与协同需要单独管理,而这样一个作为每个服务的通用功能,通过微服务框架帮我们进行了抽象与实现。

l 但是不同的微服务框架的实现方式是不一样的。默认情况下是,不同框架之间的服务无法直接调用。

l 而类似上述异构情况,正是云原生想要支持与解决的。并且,容器、Pod 这些抽象就很好的提供了一个解决思路。

l  Service Mesh 服务网格就是为了解决流量治理在多语言,多环境下的问题。

l  数据层面,Sidecar 负责流量劫持转发以及管理,该功能典型的 Sidecar 实现就是Envoy。

l  管控层面,也需要一个组件来实现原微服务体系中的策略规则的管理,经典实现有Istio。

图片14.png

3. 编程模型

l 请求驱动,是基于请求的动态弹性伸缩。

l 请求驱动模型:

l 请求标准化

l 请求路由

l 处理管理

l 将请求标准化、请求路由、处理管理组合起来,其实就是 Serverless 的概念了。

 

三、微服务+Serverless 最佳实践

(一) Serverless 的发展进程

(二) Serverless 市场概况

(三) 微服务架构痛点

l 容器与 K8S 自身复杂性

l 容器镜像部署方式差异

l K8S组件运维的复杂

l 学习成本

(四)理想状态-Serverless 应用引擎

l 专注业务逻辑

l 不改变原有开发方式

l 无需关心与运维底层资源

l 具备弹性能力可以降低闲时成本

l 优秀的工具链

(五)微服务体系在不同时代的实践

相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
11天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1236 5
|
1月前
|
运维 监控 Cloud Native
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
国诚投顾携手阿里云,依托Serverless架构实现技术全面升级,构建高弹性、智能化技术底座,提升业务稳定性与运行效率。通过云原生API网关、微服务治理与智能监控,实现流量精细化管理与系统可观测性增强,打造安全、敏捷的智能投顾平台,助力行业数字化变革。
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
|
1月前
|
运维 监控 Cloud Native
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
通过与阿里云深度合作,国诚投顾完成了从传统 ECS 架构向云原生 Serverless 架构的全面转型。新的技术架构不仅解决了原有系统在稳定性、弹性、运维效率等方面的痛点,还在成本控制、API 治理、可观测性、DevOps 自动化等方面实现了全方位升级。
|
5月前
|
存储 运维 Serverless
千万级数据秒级响应!碧桂园基于 EMR Serverless StarRocks 升级存算分离架构实践
碧桂园服务通过引入 EMR Serverless StarRocks 存算分离架构,解决了海量数据处理中的资源利用率低、并发能力不足等问题,显著降低了硬件和运维成本。实时查询性能提升8倍,查询出错率减少30倍,集群数据 SLA 达99.99%。此次技术升级不仅优化了用户体验,还结合AI打造了“一看”和“—问”智能场景助力精准决策与风险预测。
511 69
|
5月前
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
339 12
|
7月前
|
Kubernetes 监控 Serverless
基于阿里云Serverless Kubernetes(ASK)的无服务器架构设计与实践
无服务器架构(Serverless Architecture)在云原生技术中备受关注,开发者只需专注于业务逻辑,无需管理服务器。阿里云Serverless Kubernetes(ASK)是基于Kubernetes的托管服务,提供极致弹性和按需付费能力。本文深入探讨如何使用ASK设计和实现无服务器架构,涵盖事件驱动、自动扩展、无状态设计、监控与日志及成本优化等方面,并通过图片处理服务案例展示具体实践,帮助构建高效可靠的无服务器应用。
|
7月前
|
监控 Kubernetes Cloud Native
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
|
8月前
|
搜索推荐 NoSQL Java
微服务架构设计与实践:用Spring Cloud实现抖音的推荐系统
本文基于Spring Cloud实现了一个简化的抖音推荐系统,涵盖用户行为管理、视频资源管理、个性化推荐和实时数据处理四大核心功能。通过Eureka进行服务注册与发现,使用Feign实现服务间调用,并借助Redis缓存用户画像,Kafka传递用户行为数据。文章详细介绍了项目搭建、服务创建及配置过程,包括用户服务、视频服务、推荐服务和数据处理服务的开发步骤。最后,通过业务测试验证了系统的功能,并引入Resilience4j实现服务降级,确保系统在部分服务故障时仍能正常运行。此示例旨在帮助读者理解微服务架构的设计思路与实践方法。
424 17
|
7月前
|
监控 Cloud Native Java
基于阿里云容器服务(ACK)的微服务架构设计与实践
本文介绍如何利用阿里云容器服务Kubernetes版(ACK)构建高可用、可扩展的微服务架构。通过电商平台案例,展示基于Java(Spring Boot)、Docker、Nacos等技术的开发、容器化、部署流程,涵盖服务注册、API网关、监控日志及性能优化实践,帮助企业实现云原生转型。

相关产品

  • 函数计算