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 优秀的工具链

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

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
1月前
|
搜索推荐 NoSQL Java
微服务架构设计与实践:用Spring Cloud实现抖音的推荐系统
本文基于Spring Cloud实现了一个简化的抖音推荐系统,涵盖用户行为管理、视频资源管理、个性化推荐和实时数据处理四大核心功能。通过Eureka进行服务注册与发现,使用Feign实现服务间调用,并借助Redis缓存用户画像,Kafka传递用户行为数据。文章详细介绍了项目搭建、服务创建及配置过程,包括用户服务、视频服务、推荐服务和数据处理服务的开发步骤。最后,通过业务测试验证了系统的功能,并引入Resilience4j实现服务降级,确保系统在部分服务故障时仍能正常运行。此示例旨在帮助读者理解微服务架构的设计思路与实践方法。
94 16
|
1月前
|
负载均衡 Serverless 持续交付
云端问道9期实践教学-省心省钱的云上Serverless高可用架构
详细介绍了云上Serverless高可用架构的一键部署流程
57 10
|
2月前
|
Serverless 开发工具 开发者
活动实践 | 西游再现,函数计算一键部署 Flux 超写实文生图模型部署
这些图片展示了阿里巴巴云开发者生态的多个方面,包括开发工具、技术文档、社区交流、培训认证等内容,旨在为开发者提供全方位的支持和服务。
|
2月前
|
存储 弹性计算 关系型数据库
活动实践 | 告别资源瓶颈,函数计算驱动多媒体文件处理测评
本方案介绍了一种高效处理文件的方法,适用于企业办公和社交媒体应用。通过阿里云的函数计算、对象存储OSS和轻量消息队列,实现文件的异步处理,如格式转换和水印添加,有效减轻了核心应用的负担,提高了业务稳定性和资源利用率。方案包括云服务器ECS、云数据库RDS、OSS存储等组件,支持快速部署和资源清理。
|
2月前
|
运维 监控 Java
后端开发中的微服务架构实践与挑战####
在数字化转型加速的今天,微服务架构凭借其高度的灵活性、可扩展性和可维护性,成为众多企业后端系统构建的首选方案。本文深入探讨了微服务架构的核心概念、实施步骤、关键技术考量以及面临的主要挑战,旨在为开发者提供一份实用的实践指南。通过案例分析,揭示微服务在实际项目中的应用效果,并针对常见问题提出解决策略,帮助读者更好地理解和应对微服务架构带来的复杂性与机遇。 ####
|
2月前
|
算法 NoSQL Java
微服务架构下的接口限流策略与实践#### 一、
本文旨在探讨微服务架构下,面对高并发请求时如何有效实施接口限流策略,以保障系统稳定性和服务质量。不同于传统的摘要概述,本文将从实际应用场景出发,深入剖析几种主流的限流算法(如令牌桶、漏桶及固定窗口计数器等),通过对比分析它们的优缺点,并结合具体案例,展示如何在Spring Cloud Gateway中集成自定义限流方案,实现动态限流规则调整,为读者提供一套可落地的实践指南。 #### 二、
84 3
|
2月前
|
消息中间件 运维 安全
后端开发中的微服务架构实践与挑战####
在数字化转型的浪潮中,微服务架构凭借其高度的灵活性和可扩展性,成为众多企业重构后端系统的首选方案。本文将深入探讨微服务的核心概念、设计原则、关键技术选型及在实际项目实施过程中面临的挑战与解决方案,旨在为开发者提供一套实用的微服务架构落地指南。我们将从理论框架出发,逐步深入至技术细节,最终通过案例分析,揭示如何在复杂业务场景下有效应用微服务,提升系统的整体性能与稳定性。 ####
59 1
|
2月前
|
监控 安全 持续交付
构建高效微服务架构:策略与实践####
在数字化转型的浪潮中,微服务架构凭借其高度解耦、灵活扩展和易于维护的特点,成为现代企业应用开发的首选。本文深入探讨了构建高效微服务架构的关键策略与实战经验,从服务拆分的艺术到通信机制的选择,再到容器化部署与持续集成/持续部署(CI/CD)的实践,旨在为开发者提供一套全面的微服务设计与实现指南。通过具体案例分析,揭示如何避免常见陷阱,优化系统性能,确保系统的高可用性与可扩展性,助力企业在复杂多变的市场环境中保持竞争力。 ####
61 2
|
2月前
|
消息中间件 运维 API
后端开发中的微服务架构实践####
本文深入探讨了微服务架构在后端开发中的应用,从其定义、优势到实际案例分析,全面解析了如何有效实施微服务以提升系统的可维护性、扩展性和灵活性。不同于传统摘要的概述性质,本摘要旨在激发读者对微服务架构深度探索的兴趣,通过提出问题而非直接给出答案的方式,引导读者深入
57 1
|
2月前
|
负载均衡 监控 API
后端开发中的微服务架构实践与挑战
本文深入探讨了微服务架构在后端开发中的应用,分析了其优势和面临的挑战,并通过案例分析提出了相应的解决策略。微服务架构以其高度的可扩展性和灵活性,成为现代软件开发的重要趋势。然而,它同时也带来了服务间通信、数据一致性等问题。通过实际案例的剖析,本文旨在为开发者提供有效的微服务实施指导,以优化系统性能和用户体验。

相关产品

  • 函数计算