云计算架构设计6大原则,你遵循了吗?| 赠书

作者 | 吕昭波

2006年,第一个云计算(Cloud Computing)产品诞生,云计算的概念也被提出,现在云计算几乎已经渗入所有的行业和应用场景中。我们不一定能直接感受到云计算对日常生活、工作、学习的影响,但作为IT基础设施,它却悄然支撑着我们正在使用的各个应用。

我们可以从另一个角度去认识云计算的整体架构和服务能力,也就是云计算架构体系,如图1-2所示,其中概括了云计算从下到上的组成结构,包括基础设施、云计算操作系统、产品体系(包含安全与合规、监控与管理)、解决方案体系、服务体系。

c6e26e58dba17942e3a8e22c58b2cf57.png

完整的技术架构设计也是有步骤可循的,先是收集需求分析,根据需求分析进行架构设计,再进行评估改进及交付实施,然后持续运营,如图1-6所示。在架构设计的各个阶段中,每个阶段均导入前一个阶段的结果,经过当前阶段处理后输出设计方案或搭建环境,渐进式地推进完整解决方案的设计。

(1)需求分析阶段由用户输入需求痛点,经过分析后输出需求分析表。

(2)在架构设计阶段中,根据需求分析表来匹配合适的设计模式,形成完整的架构设计方案。

(3)在评估改进阶段,对已完成的架构设计方案进行评估,输出经过评估和参考良好架构设计原则改进过的架构设计方案。

(4)在交付实施阶段,根据经过评估改进的架构设计方案在云平台中搭建环境、部署业务,提供符合架构设计的云端环境。

(5)在架构的持续运营中,输入解决方案和当前业务运行状况,持续巡检、分析、评估,输出改进措施,进行重构改进,并周而复始地根据新需求提供方案。

5d07c140aaef8c51fa107b106d134f8b.png

基于云计算进行架构设计,所有的技术解决方案都应遵循一定的原则,这也是架构设计中要追求的目标。图1-7所示为架构设计的6大原则,包括合理部署、业务持续、弹性扩展、性能效率、安全合规、持续运营。

55e4531e0670eebaba887147d600cbb5.png

这6大原则代表了架构设计中需要考虑的不同角度,只有同时遵循这些原则才能设计出完善的架构方案,但在实际情况中,并不需要在所有架构设计中把所有设计模式都融入进去,构建繁杂的架构方案。后面会对这6大原则逐一展开介绍,从各个原则的子项中进行设计。

a8a17e737b78fc24ef9b1e992d599a2d.png

合理部署

业务系统在公有云上的部署包括使用虚拟机形式的云主机,还包括性能更强的物理云主机形式,托管服务包括托管应用、托管物理服务器。

基于IT历史资源状况、合规性要求等,很多企业还没有上云,针对这种情况,将云计算操作系统抽取出来打包为独立的软件和服务,在用户的私有化环境中进行部署。区别于公有云面向“任何”用户开放使用,私有化部署仅面向少数指定的用户使用。

混合架构能够对公有云和私有化部署的平台、传统的VMware、OpenStack虚拟化平台或物理服务器等资源进行统一管理和调度,混合架构既享受了不变更本地环境、满足合规要求的好处,又享受了云平台资源丰富、服务能力充足等优势。混合架构也是当前企业转型上云的一种中间状态,会长期存在。

在跨境电商、游戏出海等场景下会使用到全球范围内的多个地域,将业务和数据靠近用户来部署可以减少网络延迟、提升访问体验。因此,纳入了全球部署,来重点解决如何在全球范围内尽可能靠近用户部署的问题,也能实现数据同步存储和处理的方案。

不能相信任何一块硬盘、任何一台云主机、任何一个可用区、任何一个地域,也不能完全相信任何一个云服务商,进行业务部署时应选择多个公有云平台,提升业务持续性,弥补单个云服务商在资源和服务上的短板,屏蔽云服务商的一些技术锁定和商业绑定。

0e7c88078732931113412dad5640d1a5.png

业务持续

业务持续性主要是指高可用、高可靠、灾难恢复三方面,在设计模式中也是按照这个逻辑展开的。

  • 高可用(High Availability),是指当业务运行的资源出现故障时,通过冗余等设计来避免业务中断。

  • 高可靠(Continuous Operations),是指业务运行的资源无故障,业务可持续提供服务。

  • 灾难恢复(Disaster Recovery),是指当业务运行环境遭到破坏时,在不同环境中恢复应用和数据的能力。

在架构设计的每一层中都应实现冗余和业务持续性,没有冗余就意味着会出现单点,而单点一旦出现故障,就会造成局部服务终止。

  • 存储产品:块存储通过三个副本实现冗余,当一个副本出现错误时,通过其他副本来校验和恢复数据;对象存储中通过纠删码来实现数据冗余校验,提供可恢复能力;对象存储提供跨区域复制功能,避免单个地域成为对象存储的单点。

  • 备份方案:在云端通过跨可用区、跨地域的数据备份提升可靠性,避免只存储一份数据;在混合架构中将数据备份到云端,在本地环境数据损坏时,可通过云端备份文件进行恢复。

  • 容灾方案:对业务系统实现容灾,避免当前业务环境成为单点,提升整体业务的可用性和抗风险能力。

  • 高可用:通过跨可用区的负载均衡部署实现云主机和可用区的冗余;通过全局负载均衡实现跨地域、跨云平台的高可用。

9e567441deb58ba0ebed21aa80ca3a82.png

弹性扩展

紧耦合的系统不容易扩展,在出现软件Bug和系统故障时难以排查问题,调用每个系统组件的压力各不相同,小问题逐级放大,容易造成整个业务中断。要保持系统弹性扩展,首先要进行系统组件的解耦,包含动态数据和静态数据解耦,解耦后的组件可实现功能单元化,各司其职。

解耦之后再对组件和服务进行扩展,即计算资源的纵向扩展、横向扩展和自动伸缩,包括数据库层的扩展,还有通过混合架构延展本地环境的计算、存储备份、安全防护、产品服务能力。对应用和数据的迁移也算作整个系统的扩展,从一个环境迁移到另外一个环境,系统应保持弹性扩展,在需要迁移时能够快速实施迁移。最后还要进行均衡,组件解耦、资源和服务扩展之后需要统一的接入入口,以屏蔽底层解耦与扩展带来的接口不统一等问题,将这些都纳入均衡和全局负载均衡中来介绍。

在各个层面实现解耦,通过消息队列来解耦组件之间的通信,并解耦事件;通过Redis等共享存储实现状态数据与计算资源的解耦;采用云主机部署业务应该面向服务而非资源,将资源与业务解耦;存储实现弹性可挂载和可卸载的云硬盘,采用可绑定和解绑定的EIP;通过DDoS防护、WAF防护等解耦安全防护与计算资源;使用原生的计算能力、存储能力将业务与云平台的特性解耦,实现业务在多个云平台中的可扩展。

组件解耦是实现可扩展的前提,可通过以下方式进行解耦。

  • 保持无状态,将状态数据存储到Redis中。

  • 放到负载均衡中,扩容、缩容不影响整体业务。

  • 通过消息队列、API Gateway解耦,生产者、消费者可扩展且互不影响。

  • 实现业务的全局负载均衡,后端业务能够在混合架构、多云环境中进行扩展

e1875d781908c28db9ad3b1104b5308b.png

性能效率

非常多的解决方案和案例中都涉及高并发、流量激增带来的对性能的挑战,在性能效率中,主要目标是发现和提升应用的性能,提高资源和组件的效率。

首先是计算性能,通过采用高配置的云主机或物理云主机来提升单机性能,通过集群形式扩展整体服务性能。

其次是存储和缓存,通过Redis来缓存热点数据、存储临时状态数据,在内存中进行计算能够提升业务性能。在每一层使用缓存,通过CDN缓存静态文件,对没有命中的文件进行回源;通过Redis缓存数据库,加速数据库的访问;通过Redis缓存热点配置文件、热点数据,提前加载,减少访问时间。

再次是对网络性能的优化,在业务实现全球部署时选择最优数据中心,并且基于全球基础网络、CDN及全球应用加速来提升网络性能,获得请求加速效果。

最后介绍应用性能监测和压力测试,从应用的角度上来评测当前的性能状况、发现问题瓶颈,并针对性地解决问题。

be004a13c2f2f3a6acb18542d6cd9439.png

安全合规

安全合规一方面是为了满足业务安全防护的自身需求,另一方面是满足安全监管的合规要求,在具体实施时会将这两方面交叉在一起。

首先,从用户账号和权限管理切入,为合适的人员分配恰当的账号、角色,授予最低权限,对于通过API或CLI来访问的程序或人员分配恰当的公钥、私钥和权限,对于临时访问的对象存储文件Token等也进行严格管理。其次,还有在整个安全体系中的终端安全、数据安全、网络安全、应用安全,以及对日志、行为、数据库操作的审计。最后,还有等保2.0的要求、网站备案要求、满足GDPR等各地区对业务和数据隐私要求的制度等。

  • 在账号体系中设置主账号、子账号,并对公钥、密钥进行管理;设置合适的角色,为账号、角色分配所需要的最低权限。

  • 通过ACL控制网络访问;通过安全组限制云主机开放的端口等;通过子网和路由控制跨子网的通信。将数据库及只需要内部访问的云主机配置到内网VPC中,设置允许访问的VPC,设置为不连通外网。

  • 防止DDoS、cc、SQL注入、XSS等攻击。

  • 安全审计,保留访问日志、操作日志,逐步实现低频存储、归档存储等。

12e957cb0873fee0ea6709f95b8457d0.png

持续运营

云平台提供的资源与服务均有SLA,云主机的SLA通常为99.95%,用户构建的业务系统都是基于云资源和云服务的SLA,在此之上构建可用性、可靠性更高的业务系统。对于自身业务系统,也需要制定SLA来表明服务可用性或其他指标,制定了用户业务的SLA后,就可以按照SLA阈值来设置高可用限流值,综合评估整体业务的服务可用性和数据可靠性,并指定故障应急措施。

在持续运营中会对云资源、云服务、事件及用户的应用进行监控,并设置告警,在达到告警条件时,通过电话、短信、邮件、钉钉、微信等方式通知相关人员,将告警交给回调函数,可实现自动化故障处理或相应的应急预案,减少人工介入。

应该在架构设计的每一层进行监控与告警,包括对云资源、事件、应用运行状况的全方位监控。对于用户自定义的需要监测的资源与服务,需要配置合理有效的告警策略来及时发现异常情况。通过Advisor实现云平台巡检,持续监测资源的变化,持续定期评估业务架构,及时发现业务架构是否还匹配业务需求。

此外,还需要具备自动化响应及处理功能,自动伸缩能够通过监控CPU等指标自动扩容或缩容云主机数量;通过定时器固定周期扩容或缩容云主机数量。实现事件驱动响应,由事件消息触发执行脚本、回调函数等操作,实现智能运维,根据事件和告警自动触发运维操作,编排运维脚本,通过智能运维的方式来减少人工运维。

及时发现消费及业务成本的变化,并对成本进行优化。设置账户余额告警值,避免快速消费,实现成本控制。评估资源使用时长,将按时计费的资源转变为按月、按年计费,优化资源的使用。通过Advisor中建议的成本优化释放没有使用的EIP,根据CPU等指标来减少云主机数量或降低云主机配置,云主机处理对象存储时通过内网进行访问,减少外网访问的流量费用。通过多云部署实现成本优化,综合多个云平台的资源价格选择资源,选用较优的组合方案,通过其他云平台更低单价的竞价实例云主机来处理OLAP的业务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512283.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python写自动化工具_微软最强 Python 自动化工具开源了!不用写一行代码!

1. 前言最近,微软开源了一款非常强大的 Python 自动化依赖库:playwright-python它支持主流的浏览器,包含:Chrome、Firefox、Safari、Microsoft Edge 等,同时支持以无头模式、有头模式运行playwright-python 提供了同步…

复杂推理模型从服务器移植到Web浏览器的理论和实战

简介: 随着机器学习的应用面越来越广,能在浏览器中跑模型推理的Javascript框架引擎也越来越多了。在项目中,前端同学可能会找到一些跑在服务端的python算法模型,很想将其直接集成到自己的代码中,以Javascript语言在浏览…

国家网络安全宣传周:勒索病毒利如刀,上网备好技能包

简介: 近年来,勒索病毒携带着日趋成熟的手段革新和愈发隐蔽、复杂的“进化”能力,开启了“重装上阵”的疯狂模式,“出镜率”大有提高。由于大型政企机构的网络资产价值高,就成了勒索病毒的头号“猎物”。 政企机构信息…

漫画:什么是“低代码”开发平台?

作者 | 小灰来源 | 程序员小灰什么是低代码?其实,这并不是最近才出现的新概念。自从计算机诞生以来,人们就一直在想方设法提升计算机程序编写的效率。从最初的机器语言,发展到现在的C、Java、Python等高级语言;从完全独…

OpenKruise 如何实现应用的可用性防护?

简介: OpenKruise 在 2021.9.6 发布了最新的 v0.10.0 版本新增了弹性拓扑管理和应用安全防护等能力,本文将为大家揭晓 OpenKruise 是如何实现应用的可用性防护能力。 前言 OpenKruise 是阿里云开源的云原生应用自动化管理套件,也是当前托管…

Serverless 工程实践 | Serverless 应用优化与调试秘诀

简介: 本文将以阿里云函数计算为例,提供了在线调试、本地调试等多种应用优化与调试方案。 作者|刘宇 前言:本文将以阿里云函数计算为例,提供了在线调试、本地调试等多种应用优化与调试方案。 Serverless 应用调试秘…

新一代容器平台ACK Anywhere,来了

简介: 近日,阿里云容器服务全面升级为ACK Anywhere,让企业在任何需要云的地方,都能获得一致的容器基础设施能力。 5G、AR、AIoT 等场景在推动新一代云架构的演进,而容器重塑了云的使用方式。 近日,阿里云…

高密自智,体小量大,希捷Exos Corvault存储系统为数据洞察赋能

2022年2月24日——全球领先的海量数据存储基础设施解决方案提供商希捷科技(NASDAQ:STX)在线上举办了主题为“高密自智,体小量大”的新一代PB级自修复存储系统——Exos Corvault新品鉴赏会。 此次鉴赏会邀请到了E企研究院首席研究…

Apache Flink 在汽车之家的应用与实践

简介: 汽车之家如何基于 Flink 上线了 AutoStream 平台并持续打磨。 本文整理自汽车之家实时计算平台负责人邸星星在 Flink Forward Asia 2020 分享的议题《Apache Flink 在汽车之家的应用及实践》。主要内容包括: 背景及现状AutoStream 平台基于 Flink …

以色列安全厂商Check Point发布全新logo与重要安全新品,持续深耕中国市场

作者 | 宋慧 出品 | CSDN 云计算 2022年伊始,以色列老牌安全厂商Check Point在自家主办的安全行业大会CPX360上,正式宣布将启用全新企业logo以及企业口号。 Check Point公司中国区总经理陈石磊在对国内媒体分享时指出:“公司1993年成立时&am…

Facebook宕机背后,我们该如何及时发现DNS问题

简介: 国庆期间,Facebook 及其旗下 Instagram 和 WhatsApp 等应用全网宕机,停机时间将近 7 小时 5 分钟,Facebook 市值损失 643 亿美元。针对Facebook的宕机问题,我们该如何未雨绸缪,看看云拨测如何帮助客户…

KubeVela 1.1 发布,开启混合环境应用交付新里程碑

简介: KubeVela 作为一个开箱即用、面向现代微服务架构的应用交付与管理平台,今天正式发布了 1.1 版本,以更加用户友好和完善的功能集,开启了“让混合环境应用交付更加简单高效”的重要里程碑。 在云原生理念迅速普及的今天&…

云原生消息、事件、流超融合平台——RocketMQ 5.0 初探

简介: 今天分享的主题是云原生消息事件流超融合平台 RocketMQ 5.0 初探,内容主要分为三个部分: 首先,带大家回顾业务消息领域首选 RocketMQ 4 发展历史以及 4.x 版本的演进与发展。 其次,会为大家详细介绍 RocketMQ 5.…

mysql查找无根节点sql_SQL 双亲节点查找所有子节点的实现方法

怎么保存树状结构的数据呢?在 SQL 中常用的是双亲节点法。创建表如下CREATE TABLE category ( id LONG, parentId LONG, name String(20) )INSERT INTO category VALUES ( 1, NULL, Root )INSERT INTO category VALUES ( 2, 1, Branch1 )INSERT INTO category VALUE…

一文看懂微服务背后的技术演进与应用实践

简介: 2021年7月2日,阿里云用户组(AUG)第一次线下活动在济南召开。阿里云云原生资深专家李国强结合自身微服务领域经验,现场跟数十家山东企业分享了云原生的代表技术之一“微服务”的演进和应用实践。本文根据作者的现…

1 分钟记住 docker 镜像和容器常用基本命令

作者 | xiaochuhe来源 | CSDN博客镜像常用基本命令查看自己服务器中docker 镜像列表docker images搜索镜像docker search 镜像名 docker search --filterSTARS9000 mysql 搜索 STARS >9000的 mysql 镜像拉取镜像docker pull 镜像名 docker pull 镜像名:tag运行镜像docker ru…

业界首个机密计算容器运行时—Inclavare Containers正式进入CNCF!

简介: Inclavare Containers 通过云原生计算基金会(CNCF)TOC 投票正式成为 CNCF 官方沙箱项目。 作者|彦荣 2021 年 9月 15 日,Inclavare Containers 通过云原生计算基金会(CNCF)TOC 投票正式成…

python 矩阵库_NumPy 矩阵库(Matrix)

NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。由 m n 个数aij排成的 m 行 n 列的数表称为 m 行 n 列的矩阵,简称 m n 矩阵。记作这 mn 个数称为矩阵 A的元素,简称为元&#xff…

顺丰科技 Hudi on Flink 实时数仓实践

简介: 介绍了顺丰科技数仓的架构,趟过的一些问题、使用 Hudi 来优化整个 job 状态的实践细节,以及未来的一些规划。 本文作者为刘杰,介绍了顺丰科技数仓的架构,趟过的一些问题、使用 Hudi 来优化整个 job 状态的实践细…

Paillier半同态加密:原理、高效实现方法和应用

简介: 《数据安全法》已于9月1日起正式实施,两个月后《个人信息保护法》也将开始施行,意味着数据安全和隐私保护方面的监管将会在年内陆续到位。在合规收紧大背景下,“数据孤岛”现象日渐明显。如何实现安全的数据流通&#xff0c…