【原创】常用网站架构组成模块说明
1、云服务器ECS: 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新, 云计算最大的优势就在于弹性,
1)计算弹性:包括纵向弹性(升降配)和横向弹性(弹性伸缩);
2)存储弹性: 在云计算模式下,将为您提供海量的存储,当您需要时可以直接购买,为存储提供最大保障,参见:磁盘扩容
3)网络弹性: 云上的网络也具有非常大的灵活性,详情请参考专有网络。
2、RDS【关系型数据库】: 阿里云关系型数据库(Relational Database Service,简称 RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务。基于阿里云分布式文件系统和高性能存储,RDS 支持 MySQL、SQL Server、PostgreSQL 和 PPAS(Postgre Plus Advanced Server,一种高度兼容 Oracle 的数据库)引擎,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。
3、CDN【内容分发】 : 阿里云内容分发网络(Content Delivery Network,简称CDN)是建立并覆盖在承载网之上、由分布在不同区域的边缘节点服务器群组成的分布式网络,替代传统以WEB Server为中心的数据传输模式。使用场景如下:
1)网站站点/应用加速: 站点或者应用中大量静态资源的加速分发,建议将站点内容进行动静分离,动态文件可以结合云服务器ECS,静态资源如各类型图片、html、css、js文件等,建议结合 对象存储OSS 存储海量静态资源,可以有效加速内容加载速度,轻松搞定网站图片、短视频等内容分发;
2)视音频点播/大文件下载分发加速: 支持各类文件的下载、分发,支持在线点播加速业务,如mp4、flv视频文件或者平均单个文件大小在20M以上,主要的业务场景是视音频点播、大文件下载(如安装包下载)等,建议搭配对象存储OSS使用,可提升回源速度,节约近2/3回源带宽成本。
3)视频直播加速: 视频流媒体直播服务,支持媒资存储、切片转码、访问鉴权、内容分发加速一体化解决方案。结合弹性伸缩服务,及时调整服务器带宽,应对突发访问流量;结合媒体转码服务,享受高速稳定的并行转码,且任务规模无缝扩展。目前CDN直播加速已服务内部用户测试并优化,即将上线,敬请期待;
4)移动应用加速: 动APP更新文件(apk文件)分发,移动APP内图片、页面、短视频、UGC等内容的优化加速分发。提供httpDNS服务,避免DNS劫持并获得实时精确的DNS解析结果,有效缩短用户访问时间,提升用户体验。
4、对象存储OSS【内容存储】 : 海量、安全、低成本、高可靠的云存储服务,提供99.99999999%的数据可靠性。使用RESTful API 可以在互联网任何位置存储和访问,容量和处理能力弹性扩展,多种存储类型供选择全面优化存储成本。使用场景如下:
1)图片和音频等应用的海量存储: OSS可用于图片、音视频、日志等海量文件的存储。各种终端设备、Web网站程序、移动应用可以直接向OSS写入或读取数据。OSS支持流式写入和文件写入两种方式;
2)网页或者移动应用的静态和动态资源分离 : 利用BGP带宽,OSS可以实现超低延时的数据直接下载。也可以配合阿里云CDN加速服务,为图片、音视频、移动应用的更新分发提供最佳体验
3)云端数据处理: 上传文件到OSS后,可以配合媒体转码服务(MTS)和图片处理服务(IMG)进行云端的数据处理
5、负载均衡SLB: 对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。使用场景如下:
1)应用于高访问量的业务: 如果您的应用访问量很高,您可以通过配置监听规则将流量分发到不同的ECS实例上。此外,您可以使用会话保持功能将同一客户端的请求转发到同一台后端ECS,提高访问效率。
2)横向扩张系统: 可以根据业务发展的需要,通过随时添加和移除ECS实例来扩展应用系统的服务能力,适用于各种Web服务器和App服务器。
3)消除单点故障: 您可以在负载均衡实例下添加多台ECS实例。当其中一部分ECS实例发生故障后,负载均衡会自动屏蔽故障的ECS实例,将请求分发给正常运行的ECS实例,保证应用系统仍能正常工作。
4)同城容灾(多可用区容灾): 使用负载均衡时,您可以将负载均衡实例部署在支持多可用区的地域以实现同城容灾。此外,建议您结合自身的应用需要,综合考虑后端服务器的部署。如果您的每个可用区均至少添加了一台ECS实例,那么此种部署模式下的负载均衡服务的效率是最高的。
5)跨地域容灾: 您可以在不同地域下部署负载均衡实例,并分别挂载相应地域内不同可用区的ECS。上层利用云解析做智能DNS,将域名解析到不同地域的负载均衡实例服务地址下,可实现全局负载均衡。当某个地域出现不可用时,暂停对应解析即可实现所有用户访问不受影响。
6、消息队列MQ : 消息队列(Message Queue,简称 MQ) 具备低延迟、高并发、高可用、高可靠,可支撑万亿级数据洪峰的分布式消息中间件; 微消息队列 (Light Message Queue,简称 LMQ) 面向小微设备消息传输的轻量级消息队列,支持 MQTT 协议,连接端(如浏览器、直播、Android、iOS、汽车、机器人等)和云,实现消息的双向通信,可支撑亿级小微设备,支持百万级消息并发。使用场景如下:
1)一对多、多对多一部解耦: 基于发布订阅模型,分布式应用异步解耦,可以增加应用的水平扩展性,增加前端应用快速客户反应能力。
2)削峰场景: 大促等流量洪流突然来袭时,MQ可以缓冲突发流量,避免整个系统崩溃。
3)日志监控: 做为重要日志的监控通信管道,将应用日志监控对系统性能影响降到最低。
4)消息推送:为社交应用和物联网应用提供点对点推送,一对多广播式推送的能力。
5)金融报文:发送金融报文,实现金融准实时的报文传输,可靠安全。
6)电信信令:将电信信令封装成消息,传递到各个控制终端,实现准实时控制和信息传递。
7、Redis【NoSQL数据库】: 云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 支持字符串(String)、链表(List)、集合(Set)、有序集合(SortedSet)、哈希表(Hash)等多种数据类型,及事务(Transactions)、消息订阅与发布(Pub/Sub)等高级功能。 通过“内存+硬盘”的存储方式,云数据库 Redis 版在提供高速数据读写能力的同时满足数据持久化需求。 云数据库 Redis 版支持灵活的部署架构:单副本(适用于纯缓存场景,支持单节点集群弹性变配,满足高 QPS 场景,提供超高性价比 )、双副本(系统工作时主节点(Master)和备节点(Slave)数据实时同步,主节点故障时系统自动秒级切换,备节点接管业务,全程自动且对业务无影响,主备架构保障系统服务具有高可用性 )、集群版(集群(cluster)实例采用分布式架构,每个节点都采用一主一从的高可用架构,自动容灾切换,故障迁移,多种集群规格可适配不同的业务压力,无线扩展数据库性能),能够满足不同的业务场景。使用场景如下:
1)游戏行业应用:Redis作为存储数据库使用, 游戏部署架构相对简单,主程序部署在 ECS 上,所有业务数据存储在 Redis 中,作为持久化数据库。云数据库 Redis 版支持持久化功能,主备双机冗余数据存储;Redis作为缓存加速应用访问, Redis 作为缓存层,加速应用访问。数据存储在后端的数据库中(RDS)。
2)电商行业应用: 电商行业中对于 Redis 大量使用,多数在商品展示、购物推荐等模块,比如秒杀类购物系统( 云数据库 Redis 版支持持久化功能,可以直接选择 Redis 作为数据库系统使用),带有计数统计的库存系统( 底层用 RDS 存储具体数据信息,数据库字段中存储具体计数信息。云数据库 Redis 版来进行计数的读取,RDS 存储计数信息。云数据库 Redis 版部署在物理机上,底层基于 SSD 高性能存储,可以提供极高的数据读取能力。)
3)视频直播类应用: 视频直播类业务往往会重度依赖 Redis 业务去存储用户数据及好友互动关系。双机热备保障高可用,集群版解决性能瓶颈,轻松扩容应对业务高峰。
8、Memcache【NoSQL数据库】: 云数据库 Memcache 版( ApsaraDB for Memcache )是一种高性能、高可靠、可平滑扩容的分布式内存数据库服务。基于飞天分布式系统及高性能存储,并提供了双机热备、故障恢复、业务监控、数据迁移等方面的全套数据库解决方案。 云数据库 Memcache 版支持 Key-Value 的数据结构,兼容 Memcached 协议的客户端都可与阿里云云数据库 Memcache 版进行通信。云数据库 Memcache 版支持即开即用的方式快速部署。对于动态 Web、APP 应用,可通过缓存服务减轻对数据库的压力,从而提高网站整体的响应速度。与本地自建 Memcached 相同之处在于云数据库 Memcache 版同样兼容 Memcached 协议,与用户环境兼容,可直接使用。不同之处在于硬件和数据部署在云端,有完善的基础设施、网络安全保障、系统维护服务。使用场景如下【PS:相对来说还是Redis支持的数据类型更多一点,具体选择哪种类型的数据库,根据实际业务的需要了】:
1)访问频度极高业务: 如社交网络、电子商务、游戏、广告等。可以将访问频度非常高的数据存储在云数据库 Memcache 版中,底层数据存储在 RDS 中。
2)大型促销类业务: 大型促销秒杀系统,系统整体访问压力非常大。一般的数据库根本无法承载这样的读取压力,可选用云数据库 Memcache 版存储。
3)带有计数器的库存系统: 云数据库 RDS 与云数据库 Memcache 版搭配使用。RDS 存储具体数据信息,数据库字段中存储具体计数信息。云数据库 Memcache 版来进行计数的读取,RDS 存储计数信息。
4)数据分析业务: 云数据库 Memcache 版搭配大数据计算服务 MaxCompute。实现对大数据的分布式分析处理,适用于商业分析、挖掘等大数据处理场景。通过数据集成服务可自助实现数据在云数据库 Memcache 版与 MaxCompute 间的同步,简化数据操作流程。
9、MongoDB【NoSQL数据库】: 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版完全兼容MongoDB协议,提供稳定可靠、弹性伸缩的数据库服务。为您提供容灾、备份、恢复、监控、报警等方面的全套数据库解决方案。使用场景如下:
1)读写分离:MongoDB服务采用三节点副本集的高可用架构,三个数据节点位于不同的物理服务器上,自动同步数据。Primary和Secondary节点提供服务。两个节点分别提供独立域名,配合MongoDB Driver可自行实现读取压力分配。
2)业务灵活多变:由于MongoDB采用No-Schema的方式,对于初创型的业务非常适用,免去变更表结构的痛苦。用户可以将模式固定的结构化数据存储在RDS中,模式灵活的业务存储在 MongoDB,并将高热数据存储在云数据库Memcache或云数据库Redis中,实现对业务数据高效存取,并相应降低成本投入。
3)移动应用:云数据库MongoDB版支持二维空间索引,可以完美的支撑基于位置查询的移动类APP的业务需求。同时MongoDB动态模式存储方式非常适合存储多重系统的异构数据,满足移动APP应用的需求。
4)物联网应用:云数据库MongoDB版性能极高,具备异步数据写入功能,特定场景下可达到内存数据库的性能,非常适合物联网高并发写入的场景。同时MongoDB的map-reduce功能也可以将大量数据进行聚合分析。云数据库MongoDB版支持集群版本,可动态扩容和增加Mongos和Shard组件的配置和个数,性能及存储空间可实现无限扩展。非常适合物联网海量数据及高并发性能场景。
5)核心日志系统:云数据库MongoDB版在异步落盘场景下可提供极高的插入性能,具备内存数据库的处理能力。MongoDB提供二级索引功能满足动态查询的需求,并且可以利用map-reduce的聚合框架进行多维度的数据分析。
10、 HBase【NoSQL数据库】: 云数据库 HBase 版(ApsaraDB for HBase)是基于 Hadoop 且100%兼容HBase协议的高性能、可弹性伸缩、面向列的分布式数据库,轻松支持PB级大数据存储,满足千万级QPS高吞吐随机读写场景。使用场景如下:
1)海量数据存储与查询: 支持离线,在线的海量数据高速写入,扩展简单,并能提供低时延的服务给在线服务以及控制台查看。
11、分布式关系型数据库服务DRDS: DRDS( Distributed Relational Database Service)专注于解决单机关系型数据库扩展性问题,具备轻量(无状态)、灵活、稳定、高效等特性,是阿里巴巴集团自主研发的中间件产品,稳定运行10年,经历所有天猫双十一核心交易业务和各类行业业务的考验,是你值得信赖的选择。主要优势有:分布式、弹性、高性能、安全、简单易用、成熟度高等。使用场景如下:
1)高并发实时交易场景: 面向客户端的电商、金融、O2O、零售等行业普遍存在用户基数大、营销活动频繁、核心交易系统数据库响应日益变慢的问题,制约业务发展。 DRDS 提供线性水平扩展能力,能够实时提升数据库处理能力,提高访问效率,峰值 TPS 达150万+,轻松应对高并发的实时交易场景。
2)海量数据存储访问场景: 企业客户随着业务的快速发展,业务数据增长迅猛,会产生超过单机数据库存储能力极限的数据,造成数据库容量瓶颈,限制业务发展。DRDS 可以线性扩展存储空间,目前可以支持200+ MySQL 实例的单数据库集群,提供PB级存储能力。可广泛应用于工业制造、智能家居、车联网等超大规模数据存储访问场景。
3)高性价比数据库解决方案: 政务机构、大型企业、银行等行业为了支持大规模数据存储和高并发数据库访问,传统方案需要强依赖小型机和高端存储等高成本的商业解决方案,以达到服务能力扩展的目的。DRDS 能够利用普通服务器提供阿里巴巴双十一同等处理能力的高性价比国产化数据库解决方案。
3)降低数据库运维成本: 初创型企业初期发展阶段技术积累相对比较薄弱,资金投入有限,业务发展快,数据库的稳定性风险高。DRDS 继承了阿里巴巴多年的分布式数据库技术积累,能够提供简单易用的数据库运维系统,降低企业的技术运维成本,赋予企业强大的数据库支撑能力,为企业发展保驾护航。
4)数据备份: 企业可以利用 DRDS 将自建数据库数据备份到云上,实现云上的数据备份容灾。
12、全局事务服务GTS: 全局事务服务(Global Transaction Service ,简称 GTS )用于处理分布式环境下高性能事务一致性问题。可以与 DRDS、RDS、Oracle、MySQL、PostgreSQL、H2等数据源,EDAS、Dubbo及多种私有RPC框架,MQ消息队列等中间件产品配合使用,可以轻松实现分布式数据库事务、多库事务、消息事务、服务链路级事务及各种组合。策略丰富,易用性和性能兼顾。 GTS 可应用在涉及数据库操作的多个领域,包括但不限于金融支付、电信、电子商务、快递物流、广告营销、社交、即时通信、手游、视频、物联网、车联网等,典型的使用场景如下:
1) 解决使用 DRDS 进行分库分表后产生的跨分库事务问题:DRDS 通过分库分表实现数据水平拆分, 来解决单机关系型数据库扩展性问题. 但是原有单库单表进行分库分表后, 单表的数据被分散到多个库的表中, 原来对单表多行数据进行的变更, 可能会变为对多库多表的数据变更,即单机本地事务变成了分布式事务。DRDS 本身不支持分布式事务, 上述场景下再采用原来的单库事务进行操作会导致失败。在 DRDS 中加入 GTS 能够实现这种多个库交易操作的原子性,解决分布式数据库跨库事务的问题。
2) 解决跨服务的事务问题:大型电商应用中,为了系统解耦,常常将整个应用划分为多个系统,如商品系统、商家系统、用户系统、账务系统、物流系统等,各个系统会提供各自的服务。一个简单的商品加入购物车的操作,会调用商品系统的服务来减掉库存,调用购物车系统的服务增加记录,调用结算系统的服务变更待结算金额等等操作。使用 GTS 可以将调用这些服务的操作加入到一个全局事务中,让他们要么同时成功,要么同时失败,保证了各个系统的数据一致性。
3) GTS 配置 MQ 可以快速解决事务消息问题: 有些系统在使用数据库保证系统内数据一致的同时, 也会使用消息队列(MQ) 作为和其他系统间的消息传递, 完成不同系统间的数据一致。
13、分析型数据库ADB: 分析型数据库(AnalyticDB),是阿里巴巴自主研发的海量数据实时高并发在线分析(Realtime OLAP)云计算服务,使得您可以在毫秒级针对千亿级数据进行即时的多维分析透视和业务探索。分析型数据库对海量数据的自由计算和极速响应能力,能让用户在瞬息之间进行灵活的数据探索,快速发现数据价值,并可直接嵌入业务系统为终端客户提供分析服务。其拥有众多特点,无需预先进行数据建模、极速的响应时间(毫秒级千亿数据多维透视、多表关联计算)、可用性保障、安全性设计、MySQL兼容、易用性保障、高性能自动索引、海量数据极速导出(dump速度可达上百万条每秒)、内置多种特色函数、支持实时数据(写入速度可达数千至数万TPS)。使用场景如下:
1)海量数据下CRM、DMP业务
2)报表型大数据产品
3)Ad-Hoc类大数据产品
4)需要频繁交互和分析的内部BI系统
5)将海量数据直接对接应用于业务系统的应用
6)替换传统企业内部OLAP引擎
基本网站架构模式:云服务器ECS、RDS数据库、Redis数据库、内容分发CDN、对象存储OSS、负载均衡SLB
其他的功能模块可依据实际的需求来进行添加,当然,以上描述的仅仅是众多模块中的几个而已!更多的可以去阿里云上面进行查看!