构架的演进|学习笔记

简介: 快速学习构架的演进

开发者学堂课程【建立 Serverless 思维:构架的演进】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/644/detail/10715


构架的演进

内容介绍

一、应用架构的演进

二、云原生

一、应用架构的演进

1、单体架构:

(1)主要应用于十多年前

(2)部署形式:一台服务器加一个数据库;

(3)缺点:一是当这个服务器出现故障时会导致整个服务无法使用,这是一个可溶性风险,二是当业务增长以后,服务流量变大,一台服务器无法支撑整个服务

(4)解决方法:一是退距伸缩,代价比较高昂,而且会有瓶颈,二是水平伸缩。由于水平伸缩会更好,所以架构会演进成单体架构上的水平伸缩的形式。

image.png

2、单体架构(水平伸缩):

(1) 部署形式:通常会在流量入口添加一个负载均衡,在均衡下加入更多的服务器;

(2)优点:可以解决以上两个问题,一是当一台服务器出现故障时,由于有更多的服务器,不会导致整个服务的不可用,二是当流量上升时,原本的一台服务器不足以支撑的问题,由于有了更多的服务器也就得以解决,因此这一种基于单体架构上的水平伸缩会给整个架构提供一个更好的可溶性保障;

(3)缺点:单体架构上去做一些研究时,随着研发会出现研究人员越来越多,研究人员之间的冲突会加剧,因为单体架构下面的代码是没有明确的物理学边界的,所以通常引入微服务架构。

image.png

3、微服务架构:

(1)优点:能够帮忙解决的问题,一般来说团队变大以后,研究人员为了更好的进行研发并做一些开发、测试、部署、运维的一些工作,就会把一个架构拆分成以下样式。

(2)缺点:微服务架构下的分布式问题变为默认问题,由此为了服务与服务之间进行通讯,分布式会引入一些新的如GRPC、DUBBO等一些其他协议进行通讯,还会引入分布式缓存如Redis、分布式追踪服务等,这些都是分布式的一些转型。

除了分布式环境带来的挑战之外,微服务架构给运维环境也带来了新的挑战。研发人员原本只需要运维一个应用,现在可能需要运维十个甚至更多的应用,这意味着安全patch升级、容量评估、故障诊断等事务的工作量成倍增加。这时,应用分发标准、生命周期标准、观测标准、自动化弹性等能力的重要性也更加凸显。

image.png


二、云原生

1、基于云产品架构:

判断一个架构是否是云原生,就看这个架构是否是长在云上的,这是对“云原生”的简单理解。

这个长在云上不是简单地说用云的 laaS 服务,比如 ECS、OSS 这些基本的计算存储;而是应该理解成有没有使用云上的分布式服务,比如 Redis、Kafka 等,这些才是直接影响到业务架构的服务。在微服务架构下,分布式服务是必要的,原来大家都是自己研究开发这样的服务,或者基于开源版本自己运维这样的服务。而到了云原生时代,这些业务可以直接使用云服务。

另外两个不得不提的技术就是 Docker和Kubenetes ,其中,前者标准化了应用分发的标准,不论是 Spring Boot 写的应用,还是 NodeJS 写的应用,都以镜像的方式分发;而后者在前者的技术上又定义了应用生命周期的标准,一个应用从启动到上线,再到健康检查,再到下线,都有了统一的标准。

2、应用生命周期托管

有了应用分发的标准和生命周期的标准,云就能提供标准化的应用托管服务,包括应用的版本管理、发布、上线的观测、自愈等。

例如对于无状态的应用来说,一个底层物理点的故障根本不会影响到研发,因为应用托管服务是基于标准化,应用生命周期可以自动完成腾挪工作,在故障物理节点上将应用的容器下线,在新的物理节点上将启动同等数量的应用容器。可以看出,云原生进一步释放了价值红利。

在此基础上,由于托管服务能够感知到应用运行的周期的数据,例如业务流量的并发、cpuload、内存占用等,业务就可以配置基于这些指标的伸缩规则,再由平台执行这些规则,根据业务流量的实际情况增加或减少容器数量,这就是最基本的 auto scaling 自动伸缩。这些能够帮助用户避免在业务低峰期限制资源,节省成本,提高运维效率

相关文章
|
5月前
|
监控 负载均衡 安全
构建高效微服务架构的五大核心技术实践
【4月更文挑战第2天】 在当今软件开发领域,微服务架构已成为构建复杂系统的首选模式。它通过将大型单体应用拆分成一系列小型、自治的服务来提高可维护性和扩展性。本文深入探讨了构建高效微服务架构的五大核心技术实践,包括服务拆分策略、API网关设计、服务发现与注册、熔断机制以及分布式追踪与监控。文章不仅分享了实践中的经验教训,还提供了实施这些技术时的具体建议和最佳实践。
|
运维 Cloud Native 架构师
【组装式架构设计】架构演进简史
一步一步从单体到 SOA,从微服务再到云原生的科普后端架构演进史
28029 12
【组装式架构设计】架构演进简史
|
2月前
|
监控 云计算 开发者
探索后端开发中的服务架构演变
【8月更文挑战第22天】在数字化浪潮不断推进的今天,后端开发作为技术支撑的核心,其服务架构经历了从单一应用到分布式微服务的深刻变革。本文将带你走进后端世界,一探究竟,看看那些影响深远的架构模式是如何塑造我们的数字生活的。我们将一起思考,如何在不断变化的技术环境中找到适应之道,以及这些架构变迁给开发者带来的启示和挑战。
|
2月前
|
Cloud Native 持续交付 开发者
云原生之旅:从传统到现代的架构演化
本文将通过一次虚拟的旅行,带领读者穿越回过去,探索软件架构的发展脉络。我们将从单体应用开始,一路经过服务化拆分,最终抵达云原生的乐土。这不仅是一段技术演进的历史,也是对如何在不断变化的技术浪潮中保持初心与创新的启示录。
35 2
|
4月前
|
运维 Cloud Native 开发者
云原生技术:构建未来软件架构的基石
【6月更文挑战第13天】随着云计算的不断演进,云原生技术已成为推动现代软件开发、部署和运维的关键力量。本文深入探讨了云原生的核心概念、优势以及它在企业中的应用,旨在揭示如何借助云原生技术实现更高效、灵活和可靠的软件解决方案。
303 2
|
5月前
|
运维 Cloud Native 持续交付
构建未来:云原生架构的演变与实践
【5月更文挑战第17天】 在数字化转型的浪潮中,企业正迅速采用云原生技术来构建和部署应用程序。本文将深入探讨云原生架构的核心概念、发展历程以及如何在现代IT环境中实现敏捷、可扩展和高效的服务。通过对容器化、微服务、持续集成和持续部署(CI/CD)等关键技术的分析,我们将揭示如何利用云原生方法论来优化资源利用、加快产品上市速度,并提高系统的可靠性。
67 3
|
10月前
|
监控 Cloud Native 容灾
下一代软件架构该如何搭建微服务核心能力
随着数字化时代的来临,各种架构设计思想确实如雨后春笋般涌现,给软件开发领域带来了百家齐放的局面,但是软件开发领域也正面临着前所未有的挑战,比如微服务架构、云原生架构、Serverless架构、事件驱动架构、中台架构、容灾架构等,都在不同场景下展现出了独特的优势。尤其是从事云原生领域的开发者来说更有发言权,因为在裁员潮来临的时候,科技公司先要“下手”的就是云原生、容器化等领域。但是话又说回来,传统的单体应用架构已经无法满足现代软件需求的快速变化和高可靠性要求,在这种情况下,微服务架构作为一种分布式系统设计方法,逐渐受到技术圈的关注和应用。那么本文就来简单聊聊下一代软件架构如何搭建微服务的核心能力
69 2
下一代软件架构该如何搭建微服务核心能力
|
存储 缓存 运维
【云原生】软件架构的演进以及各个架构的优缺点
软件架构是指在设计和构建软件系统时,对系统的组织结构、组件、模块、接口以及它们之间的关系和行为进行规划和定义的过程。它描述了软件系统的整体结构和组成部分之间的关系,以及系统的行为和功能。
|
存储 调度
架构:第五章:分布式架构的演进
架构:第五章:分布式架构的演进
386 0
架构:第五章:分布式架构的演进
|
存储 运维 前端开发
浅谈架构演进
绪论设计原则千万条,高聚松耦第一条,架构设计不规范,开发运维两行泪!1.单体架构在单体架构之前的上古时代,所有的东西(应用程序,文件系统,数据库,web)都被部署并运行在一台服务器上,随着业务逻辑的逐渐复杂,数据存储开始变的低效,整个系统全部揉杂在一起,相互影响,耦合度极高。随着软件规模的扩大,单台服务器已经不能满足软件运行的需求,开始出现了软件的单体架构。单体架构的风格就是简单意味着一个程序中包
248 0
浅谈架构演进
下一篇
无影云桌面