云架构设计基础————周淑婷

来自CloudWiki
跳转至: 导航搜索

云架构设计基础


当前云计算的服务模式

一般根据应用程序部署、数据和基础架构托管等特征,将云计算模式分成4类:

公有云:业务部署在云端,数据和基础架构采用全托管模式

私有云:业务部署在本机机房,数据和基础架构自己管理

混合云:业务结合使用私有云和公有资源,数据和基础架构部分托管,部分自己管理

社区云:转为特定社区功能而设计,允许社区用户之间相互协作,发挥特定业务托管模式的优势。


公有云模式

在云计算的4种模式中,目前公有云模式发展最快,也是逐渐成为了云计算的代名词

公有云有以下特点:

1.完整的云解决方案,只使用一个或多个云供应商的云服务即可完成生产环境部署。

2.所有服务(比如业务系统和操作系统)的功能模块都完全位于云托管环境中

3.支付按需付费,不用关注物理硬件的故障问题,解散生产力


生态模型:通过PaaS平台使能,聚合各路合作伙伴,构建自己的能力,输出SaaS


聚焦PaaS打造生态

51541515125125125.png

单体架构

456513123.png 进程中

特征 逻辑上解决了应用程序中代码调用复杂,代码职责不清的问题,但实际上业务逻辑还是同一个优点;易于开发,开发方向方式相对简单,容易理解,易于测试部署

缺点:随着代码功能增加,代码逻辑越来越复杂,后继交付周期变长,难以维护,可扩展性差


SOA(面向服务)构架

7856456.png

特征: 通过引入ESB(enterpriseservice bus)企业服务总线的概念,将应用解耦,把应用进行模块化构建成独立单元提供服务

优点: 将复杂的企业业务按照不同的,可重用的的颗粒度进行划分,将IT资源整个成可操作,基于标准的服务供业务方调用,微服务正是在SOA基础之上衍生出来的子集。


企业服务总线(Enterprise Server Bus)

Adasd.png

上图案例描述:百货公司不同门店调用不同供货商请求货源,需要快递公司下 单,ESB总线通过XML格式文件进行交互

ESB的主要功能是:监控与路由各个服务之间消息通信:补充库存;设备(POS机,打印机)维修替换解决各个服务组件之间通讯故障:异常处理方式依赖事件队列,同步还是异步等因素控制服务版本与部署:ESB使服务版本控制更灵活,提高可用性完成任务如事件处理,数据转换与映射,消息与事件查询与排序,安全或异常处理协议转环,保证服务通讯的质量.

微服务架构

1655.png

1.微服务架构诞生于SOA,提倡将单一的应用程序按功能划分为更小的服务单元,服务之间采用通用轻量化机制进行通信,能够将服务单独部署到生产环境

诞生手互联网行业的高速发展,需求变化快,用户群体大,要求系统架构上能灵活构建,易于扩展,还要考虑可伸缩性,高可用性等等。上述需求催生出微服务架构

微服务不是银弹,同样前面说的单体应用和SOA架构也没有过时,需要结合自己的业务场景来选择合适的架构

优点: 可以使用不同的技术栈来构建服务,互联网和开源技术的发展,产生了众多的好工具 可以灵活使用不同的工具应对适合的场景

1接入层:基于AWS 的ELB接入用户流量,Netflix的laaS层整体部署在AWS平台上

2网关层:将外部请求反向路由到内部微服务,Netflix使用自研Zuul网关。网关只负责跨横切面功能(反向路由,安全,限流熔断和日志监控等),无业务逻辑。网关无状态部署,依赖前端ELB做负载均衡。

3案合服务层:负责对后台微服务进行聚合裁减加工后暴露给前端设备,在Netflix的体系中,该层也称边界服务层(Edge Service),或者设备适配层。考虑到设备的多样性和前端业务的多变性,Netflix前端团队大量使用Groovy脚本作为聚合层的主要开发语言,同时兼容Java又具有脚本易于变更特性

4后台基础服务层:该层也称为中间层服务(Middle Tier Service)。

5数据访问层:提供对Cassandra NoSq|数据存储(Netflix 的主要数据持久化方式) ,后台服务(Memcached, Zookeeper, S3,SQS等)和大数据等的访问和工具 支持

云原生应用

45612.png

1.Cloud Native云原生是一种举措,它充分利用现代云计算的交付优势去构建和运行应用。

2.DevOps、持续交付、容器、微服务这几种业务场景天然就适合云的场景,所以叫”云原生应用”


云原生对比传统企业应用

4554.png


云原生12准则:

I.基准代码

一份基准代码,多份部署

Ⅱ.依赖

显式声明依赖关系

Ⅲ.配置

在环境中存储配置

IV.后端服务

把后端服务当作附加资源

V.构建,发布,运行

严格分离构建和运行

VI.进程

以一个或多个无状态进程运行应用