架构设计笔记-14-云原生架构设计理论与实践

server/2024/10/18 12:24:13/

知识要点

云原生(Cloud Native)架构原则

  1. 服务化原则:通过微服务架构,小服务(MiniService)架构把不同生命周期的模块分离出来,分别进行业务迭代,避免迭代频繁模块被慢速模块拖慢,从而加快整体进度和稳定性。同时服务化架构以面向接口编程,服务内部的功能高度内聚,模块间通过公共功能模块的提取增加软件的复用程度。强调使用服务化的目的在于从架构层面抽象化业务模块之间的关系,标准化服务流量传输,从而帮助业务模块进行基于服务流量的策略控制和治理。
  2. 弹性原则:系统的部署规模可以随着业务量的变化而自动伸缩,无须事先规划固定的硬件和软件资源。
  3. 可观测原则:主动通过日志/链路跟踪和度量等手段,使得一次点击背后的多次服务调用的耗时/返回值和参数都清晰可见,甚至可以下钻到每次三方软件调用,SQL请求,节点拓扑,网络响应等,这样的能力可以使运维/开发和业务人员实时掌握软件运行情况,并结合多个维度的数据指标,获得前所未有的关联分析能力,不断对业务健康度和用户体验进行数字化衡量和持续优化。
  4. 韧性原则:当软件所依赖的软硬件组件出现异常时,软件表现出来的抵御能力。韧性从多个维度诠释了软件持续提供业务服务的能力,核心目标时提升软件的平均无故障时间(Mean Time Between Failure,MTBF)。
  5. 所有过程自动化原则:通过IaC(Infrastructure as Code)、GitOps、OAM(Open Application Model)、Kubernetes Operator和大量自动化交付工具在CI/CD流水线中的实践,一方面标准化企业内部的软件交付过程,另一方面在标准化的基础上进行自动化,通过配置数据自描述和面向终态的交付过程,让自动化工具理解交付目标和环境差异,实现整个软件交付和运维的自动化。
  6. 零信任原则:核心思想是,默认情况下不应该信任网络内部和外部的任何人/设备/系统,需要基于认证和授权重构访问控制的信任基础,诸如IP地址、主机、地理位置、所处网络等均不能作为可信的凭证。本质诉求是,以身份为中心进行访问控制。
  7. 架构持续演进原则:非封闭式架构。

云原生主要架构模式

  1. 服务化架构模式
  2. Mesh化架构模式
  3. Serverless模式:适合于事件驱动的数据计算任务、计算时间短的请求/响应应用、没有复杂相互调用的长周期任务。
  4. 存储计算分离模式:在云环境中,把各类暂存数据(如session)、结构化和非结构化持久数据都采用云服务保存,从而实现存储计算分离。
  5. 分布式事务模式
  6. 可观测架构:包括Logging、Tracing、Metrics三分方面。
  7. 事件驱动架构 (EDA,Event Driven Architecture):本质是一种应用/组件间的集成架构模式。与传统消息不同,事件具有schema,可以校验event的有效性。EDA还具备QoS保障机制,能够对事件处理失败进行响应。

Storm 之父 Nathan Marz 提出了他认为大数据系统应该具有的属性,包括:鲁棒性和容错性、低延迟读取和更新能力、横向扩容、通用性、延展性、即席查询能力、最少维护能力、可调试性

 

案例分析

1.基于家庭网关/基于云平台的智能家居系统

2.web架构设计,分布式架构


http://www.ppmy.cn/server/131247.html

相关文章

无线费控智能水表:智能生活的守护者

在当今智能化日益普及的时代,无线费控智能水表作为一项重要的技术创新,正在逐步改变我们的生活方式。它不仅能够实现远程抄表,自动计费,还能有效监控用水情况,促进水资源的合理利用,是现代城市智慧化管理不…

Python Django ORM 的工作原理

在 Web 开发中,处理数据库是非常常见的需求,尤其是在构建动态应用程序时。Django 作为一个流行的 Python Web 框架,提供了一套强大的工具帮助开发者轻松管理数据库。Django 的 ORM(对象关系映射,Object-Relational Map…

【Jenkins】windows安装步骤

【Jenkins】windows安装步骤 官网使用WAR包方式运行浏览器访问Jenkinswindows-installer安装安装过程问题解决This account either does not hava the privilege to logon as a service or the account was unable to be verified 安装成功修改jenkins.xml启动jenkins访问jenki…

C语言内存函数详解

文章目录 memcpy函数memmove函数memset函数memcmp函数 memcpy函数 void * memcpy ( void * destination, const void * source, size_t num );内存函数头文件是#include<string.h> 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。 这…

npm 配置淘宝镜像

为了加速 npm 包的下载速度&#xff0c;尤其是在中国地区&#xff0c;配置淘宝的 npm 镜像&#xff08;也称为 cnpm 镜像&#xff09;是一个常见的方法。以下是如何配置淘宝 npm 镜像的步骤&#xff1a; 1. 使用 npm 命令配置镜像 你可以直接使用 npm 命令来设置淘宝的 npm 镜…

SwiftUI 在 iOS 18 中的 ForEach 点击手势逻辑发生改变的解决

概述 原本在 iOS 17 中运行良好的 SwiftUI 代码突然在 iOS 18 无法正常工作了&#xff0c;具体表现为原来视图中的的点击手势无法响应。 这是怎么回事呢&#xff1f; 且看分解&#xff01;Let’s go&#xff01;&#xff01;&#xff01;&#x1f609; 问题现象 从下面的演示…

深入Postman- 自动化篇

前言 在前两篇博文《Postman使用 - 基础篇》《玩转Postman:进阶篇》中,我们介绍了 Postman 作为一款专业接口测试工具在接口测试中的主要用法以及它强大的变量、脚本功能,给测试工作人员完成接口的手工测试带来了极大的便利。其实在自动化测试上,Postman 也能进行良好的支…

前端埋点学习

前端埋点 前端数据埋点是在前端页面中通过代码的方式手机用户行为数据和页面性能的过程&#xff0c;通过在页面中插入指定的代码&#xff0c;实现实时监控用户在页面上的操作行为。 通常包括一下事件 定义事件: 定义需要手机的数据事件&#xff0c;如点击&#xff0c;浏览等添…