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

本文涉及的产品
简介: 快速学习 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 优秀的工具链

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

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
2天前
|
存储 监控 API
构建高效微服务架构:后端开发的现代实践
【5月更文挑战第9天】 在本文中,我们将深入探讨如何在后端开发中构建一个高效的微服务架构。通过分析不同的设计模式和最佳实践,我们将展示如何提升系统的可扩展性、弹性和维护性。我们还将讨论微服务架构在处理复杂业务逻辑和高并发场景下的优势。最后,我们将分享一些实用的工具和技术,以帮助开发者实现这一目标。
|
2天前
|
监控 Java 测试技术
现代化软件开发中的微服务架构设计与实践
随着软件开发的发展,传统的单体应用架构已经无法满足现代化应用的需求。微服务架构作为一种新的设计理念,为软件开发提供了更灵活、可扩展的解决方案。本文将介绍微服务架构的设计原则、实践方法以及相关技术工具,并结合实例展示其在现代化软件开发中的应用。
|
2天前
|
消息中间件 Go API
基于Go语言的微服务架构实践
随着云计算和容器化技术的兴起,微服务架构成为了现代软件开发的主流趋势。Go语言,以其高效的性能、简洁的语法和强大的并发处理能力,成为了构建微服务应用的理想选择。本文将探讨基于Go语言的微服务架构实践,包括微服务的设计原则、服务间的通信机制、以及Go语言在微服务架构中的优势和应用案例。
|
2天前
|
监控 测试技术 持续交付
构建高效可靠的微服务架构:后端开发的现代实践
【5月更文挑战第14天】 随着数字化转型的浪潮,企业对于灵活、可扩展且高效的后端系统的需求日益增长。本文旨在探讨如何通过微服务架构来实现这些需求,涵盖微服务设计原则、开发流程以及持续集成和部署(CI/CD)的最佳实践。文中还将讨论监控、日志管理与容错机制,以确保系统的可靠性和性能。
|
2天前
|
Kubernetes Cloud Native 持续交付
构建高效稳定的云原生应用:容器编排与微服务治理实践
【5月更文挑战第14天】 随着企业数字化转型的深入,云原生技术以其弹性、敏捷和可扩展的特性成为现代应用开发的首选模式。本文将探讨如何通过容器编排工具如Kubernetes以及微服务架构的有效治理,构建和维护高效且稳定的云原生应用。我们将分析容器化技术的优势,并结合案例讨论在多云环境下实现持续集成、持续部署(CI/CD)的最佳实践,同时解决微服务带来的分布式复杂性问题。通过本文的阐述,读者将获得一套提升系统可靠性和业务连续性的策略框架。
7 0
|
2天前
|
监控 数据库 开发者
构建高效可靠的微服务架构:策略与实践
【5月更文挑战第11天】在当今软件开发的世界中,微服务架构已经成为构建可扩展、灵活且容错的系统的首选方法。本文深入探讨了设计、部署和维护微服务系统时面临的挑战,并提出了一系列实用的策略和最佳实践。我们将从服务的划分原则出发,讨论如何确保每个微服务的自治性,以及如何通过容器化和编排技术实现服务的高效运行。文章还将涉及监控、日志记录和故障恢复的策略,旨在帮助开发人员构建一个既高效又可靠的微服务环境。
13 1
|
2天前
|
缓存 负载均衡 API
微服务架构下的API网关性能优化实践
【5月更文挑战第10天】在微服务架构中,API网关作为前端和后端服务之间的关键枢纽,其性能直接影响到整个系统的响应速度和稳定性。本文将探讨在高并发场景下,如何通过缓存策略、负载均衡、异步处理等技术手段对API网关进行性能优化,以确保用户体验和服务的可靠性。
|
2天前
|
监控 API 持续交付
构建高效可靠的微服务架构:策略与实践
【5月更文挑战第8天】在当今快速演进的软件开发领域,微服务架构已经成为实现敏捷开发、持续交付和系统弹性的关键模式。本文将探讨构建一个高效且可靠的微服务系统所必须的策略和最佳实践。我们将从服务的划分与设计原则出发,讨论如何通过容器化、服务发现、API网关以及断路器模式来优化系统的可伸缩性和鲁棒性。此外,我们还将涉及监控、日志管理以及CI/CD流程在确保微服务架构稳定运行中的作用。
|
2天前
|
敏捷开发 持续交付 API
构建高效微服务架构:后端开发的现代实践
【5月更文挑战第8天】 在数字化转型的浪潮中,微服务架构已成为企业追求敏捷开发、持续交付和系统弹性的关键解决方案。本文将深入探讨微服务的核心概念,包括其设计原则、优缺点以及如何在后端开发中实现高效的微服务架构。我们将通过实际案例分析,展示微服务如何帮助企业快速适应市场变化,同时保持系统的可维护性和扩展性。
|
2天前
|
监控 负载均衡 数据安全/隐私保护
探索微服务架构下的服务网格(Service Mesh)实践
【5月更文挑战第6天】 在现代软件工程的复杂多变的开发环境中,微服务架构已成为构建、部署和扩展应用的一种流行方式。随着微服务架构的普及,服务网格(Service Mesh)作为一种新兴技术范式,旨在提供一种透明且高效的方式来管理微服务间的通讯。本文将深入探讨服务网格的核心概念、它在微服务架构中的作用以及如何在实际项目中落地实施服务网格。通过剖析服务网格的关键组件及其与现有系统的协同工作方式,我们揭示了服务网格提高系统可观察性、安全性和可操作性的内在机制。此外,文章还将分享一些实践中的挑战和应对策略,为开发者和企业决策者提供实用的参考。

热门文章

最新文章

相关产品

  • 函数计算