Go 语言项目开发实战
孔令飞
腾讯云专家工程师,前 Red Hat、联想云工程师
41031 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 61 讲
Go 语言项目开发实战
15
15
1.0x
00:00/00:00
登录|注册

44|技术演进(下):软件架构和应用生命周期技术演进之路

Pilot、Citadel、Galley
数据平面、控制平面
限制多、使用场景局限
服务碎片化的软件架构模式
非侵入式,应用程序无感知
轻量级网络代理
服务间通讯的中间层
问题:服务部署复杂、调用链难以追踪、测试困难、服务雪崩效应
优点:单一原则、轻量协议传输、独立的业务开发活动和周期、独立部署
RESTful等轻量的传输协议
彻底组件化和服务化
适用于大型软件服务企业对外提供服务的场景
服务提供者、服务消费者、ESB企业服务总线
面向服务的软件架构
缺点:开发效率低、发布周期长、维护困难、稳定性差、扩展性差
优点:简单、测试、部署相对简单
表示层、业务逻辑层、数据访问层、数据库
构建方式、效率、可维护度、性能
CI/CD/CO模式
微服务架构、FaaS架构
CI/CD的开发模式、微服务架构
敏捷开发模式、SOA架构
瀑布开发模式、单体架构
instrument、jaeger-client、jaeger-agent、jaeger-collector、Data Store、jaeger-ui、jaeger-query
分布式追踪系统
Kibana
FlieBeat
Elasticsearch
多种可视化图表及仪表盘支持
不依赖分布式存储,单主节点工作
强大的多维度数据模型
Istio
FaaS架构
Service Mesh
微服务架构
SOA架构
单体架构
搭建Prometheus服务并配置Grafana
Kubernetes的声明式API机制
应用生命周期管理技术
Serverless阶段
容器阶段
虚拟机阶段
物理机阶段
调用链跟踪组件:Jaeger
统一日志管理框架:EFK
监控告警组件:Prometheus
Service Mesh
应用软件架构
虚拟化技术的演进
云的所有诉求
课后练习
总结
应用生命周期管理技术
应用维度和应用生命周期管理维度的技术演进
系统资源维度
应用、系统资源、应用生命周期管理
软件架构和应用生命周期技术演进之路

该思维导图由 AI 生成,仅供参考

你好,我是孔令飞。
应用、系统资源、应用生命周期管理这 3 个维度,构成了我们对云的所有诉求。上一讲,我从系统资源维度,介绍了虚拟化技术的演进之路。这一讲,我会介绍下应用维度和应用生命周期管理维度的技术演进。
应用软件架构是用来构建应用的,不同的软件架构,构建应用的方式、效率,以及所构建应用的可维护度、性能都是不同的。随着技术的不断更新迭代,应用软件架构也在不断往前演进。这一讲我们就来看看,应用软件架构都有哪些,这些软件架构都有什么特点,以及它们之间是如何演进的。
至于应用生命周期管理维度,我在 09 讲 中已经介绍了应用生命周期管理技术的演进,这一讲也会再补充一些核心的技术,比如日志、监控告警、调用链等。
接下来,我们就先来看下软件架构的演进之路。

软件架构的演进

软件架构技术演进如下图所示:
最开始,我们使用单体架构来构建应用,后面逐渐演进为 SOA 架构。不管是单体架构,还是 SOA 架构,都很难满足互联网时代应用快速迭代的诉求。所以,在互联网时代,应用软件架构又演进成了微服务架构。当前我们正处在微服务架构阶段,也有很多团队的业务正在尝试使用 Service Mesh 替代微服务架构中的一些功能。
随着 Serverless 云函数的诞生,也诞生了一种新的软件架构,FaaS 架构。这里我先简单介绍下它,后面再详细讲。FaaS 架构因为限制多、使用场景局限,目前还仅仅适用于云函数这种系统资源形态,我个人认为它不会成为未来主流的软件架构。还要说明下,业界目前并没有 FaaS 软件架构这个说法,大家说到 FaaS,一般指的都是云函数这种技术形态。这里为了方便描述,我们先这样表达。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

软件架构和应用生命周期技术的演进之路是一场不断变革与完善的历程。从单体架构到微服务架构的发展,以及解决开发效率低、发布周期长、维护困难等问题的技术演进,本文深入探讨了这一过程中的关键技术。其中,监控告警组件Prometheus以其强大的多维度数据模型和灵活的查询语言成为Kubernetes集群中的标配;统一日志管理框架EFK解决方案成为分布式日志解决方案的事实标准;调用链跟踪组件Jaeger则帮助排查系统问题和系统性能。这些技术的不断演进和完善,为软件架构和应用生命周期管理技术的发展提供了新的思路和解决方案。整个云技术的演进之路也得到了概括,展现了各种技术相互促进的关系。在当前阶段,容器技术得到了大规模普及,业界也在积极探索Serverless技术,并取得了卓有成效的结果。读者还被鼓励了解Kubernetes的声明式API机制,并思考微服务架构之后的软件架构可能的发展方向。文章内容丰富,为读者提供了深入了解和实践的机会。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 语言项目开发实战》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(5)

  • 最新
  • 精选
  • fliyu
    Envoy Proxy这个网关是不是很出名,大佬平时工作会用到吗

    作者回复: 如果用Istio会用到,这个工作中还没用到

    2022-01-21
    1
  • fliyu
    Prometheus 是不是需要在go语言代码中引入Prometheus包来push数据呢

    作者回复: 需要的,有现成的包直接引用就可以了

    2022-01-21
    1
  • types
    Faas是serveless的一种实现方式,例如aws lambda 个人的理解也是faas方式有很多受限,对于复杂逻辑的业务支撑性较弱。 请问serveless房展方向是什么,会基于什么样的技术发展,支撑复杂业务场景

    作者回复: serverless我觉得未来重点还是serverless容器,可以了解下腾讯云的EKS、阿里云的SAE。云函数短时间内还不能支撑复杂的业务

    2021-09-23
  • 随风而过
    真个微服务演进过程的概念讲解,问题嘛就很简单咯,Prometheus官方有example

    作者回复: 因为云原生内容太多,所以这里主要是从宏观上让大家了解云计算技术的发展

    2021-09-10
  • yandongxiao
    总结: 应用架构的演进:单体架构、SOA架构、微服务架构、Service Mesh、FaaS SOA和微服务的区别:SOA中服务属于某个应用,SOA强调尽可能共享,服务之间ESB通信;微服务中,服务可以被多个应用公用;尽量少共享;通过HTTP、GRPC通信; Java中的微服务框架有:dubbo、spring cloud; 微服务架构 VS Service Mesh:后者与具体的语言解耦,通过 sidecar 的模式对微服务进行治理。
    2021-12-05
收起评论
显示
设置
留言
5
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部