欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

在AWS上的架构部署与设计

程序员文章站 2022-03-10 17:00:14
转载请注明出处:https://mp.csdn.net/console/editor/html/108846321ABC是企业信息化发展的三驾马车。AB很容易理解:A是人工智能;B就是大数据;C就是Cloud云。CIO经常会问三个云计算问题,比如:云是什么?云能解决什么问题?为什么要使用云?云计算是大数据和人工智能的基础,它是统一、整体的一个技术平台。云有一个非常重要的特性,它更具弹性,能按需分配。也就是说,如果你用了云之后,就能杜绝重复投资、独立建设,能最大化节省成本。务需求驱动下的IT架构发展趋...

转载请注明出处:https://blog.csdn.net/guoyJoe/article/details/108846321

ABC是企业信息化发展的三驾马车。AB很容易理解:A是人工智能;B就是大数据;C就是Cloud云。CIO经常会问三个云计算问题,比如:云是什么?云能解决什么问题?为什么要使用云?云计算是大数据和人工智能的基础,它是统一、整体的一个技术平台。云有一个非常重要的特性,它更具弹性,能按需分配。也就是说,如果你用了云之后,就能杜绝重复投资、独立建设,能最大化节省成本。

务需求驱动下的IT架构发展趋势

首先,我们来看一下业务需求驱动下的IT架构发展趋势。如果你现有的技术架构已经无法满足业务快速的增长,无法快速响应新增业务系统和现有一系统平滑过度,基础设施无法顺利扩容,我们就要考虑基础架构的完善。最早,传统架构是以服务器为中心,比如业务系统要上线,我可能就要买一套服务器来部署,满足业务需求。

在AWS上的架构部署与设计

▲IT架构发展趋势

在2000年左右的时候,基本上用传统架构。但是,有个很大的问题,当我的业务量大了之后,要扩容的话,只能通过增加机器来实现水平、垂直扩容,比如说要加CPU、加内存。如果再大的话,我机器水平垂直扩展的话,可能就会有问题,扩不上去了。如果应用量比较小,我上线一个系统,就买一台服务器,价格比较昂贵,造成了资源浪费。

在云的1.0版本里,主要用虚拟化,这种服务模式是在2005年、2006年左右兴起的,比较有代表的厂商当属VMware。虚拟化的服务形式是,资源可以复用,什么意思呢?就是我买一台服务器,如果业务量不大,可以同时部署两个、三个业务,让资源实现复用,这样能降低成本,同时也能提升运维能力,因为用户可以统一在VMware上面去操作。

再往后,大概是2012、2013年的时候,兴起了OpenStack这种私有云以及公有云。Cloud2.0的时候,是以管理为中心,基于IaaS云平台,好处是多租户、自服务、审批工单、统一管理、自动化等等,大大提高了我们的管理和运维效率。

现在,已经发展到Cloud3.0时代,这个时代主要以业务为中心,在云的IaaS层要发展Pass。所以,现在云做得比较好的平台,他的Pass平台能力也比较好,能够融合Pass层。Pass又分iPaaS和APaaS,和大数据平台、数据库平台、DevOps比较靠近的就是iPaaS;和业务中台、数据中台比较靠近的叫做ApaaS。创新业务、快速开发、全自动化,这是大家为什么都在做Pass的根本原因。从实际业务场景来看,比如制造业,对于云平台的能力有很多特定要求。

在AWS上的架构部署与设计

▲制造业对于云的能力要求

制造业分三个阶段,研发、制造、营销。我们以用户为中心,围绕着需求把三个阶段推到用户的价值最大化。上层的业务打通,要实现底层数据的互联互通,底层需要一个强大的平台支撑,云天生就有这么好的能力。制造业的研发、制造、营销,这三个环节,每个环节都不一样,对整个IT架构的需求也不一样。

以研发为例,制造业发展最快的一块就是研发,如果把研发搬到云的环境上面去,云平台要很好的支撑业务的话,需要用到高性能计算HPC,要按需提供不同的规模、不同类型的计算资源、计算量,而云能快速交付出来,所以把业务搬到云上是一件可能的事情。在整个研发领域,不同的项目按不同用户需求、资源这种逻辑隔离,甚至是物理隔离,实际上就用到了多租户概念。

还有制造,最核心的内容是什么?要做好数据采集,要把人、设备、机器、产品、流程串起来,做好数据采集,做好数据分析,做好数据决策,最后通过一个平台执行下去,还能不断的去修正它。比如说制造行业要做数据采集、数据分析、要做边缘计算、雾计算,就是IOT的数据,采集端处理,计算的需求不同,时间的要求不同,可以按地域分成边缘计算,向区域的雾计算,再往后是云计算的数据中心平台。

制造业还有什么要求呢?我们知道制造业的工厂遍布全球各地,云平台要实现分布式的部署,集中式的管理,要分发下去,就需要云平台。要具备这种跨地区的、跨地域的部署能力,跨资源调度能力,这是云平台的一个共性需求。

另外,还有一个混合云需求,比如一家全球工厂,它的混合云不但做好管控,还要通过混合云打通私有云和公有云,把网络打通。借助容器的技术,K8S的调度技术,容器对环境的无感知,通用了这种Pass类的服务能力,工业类这种 Pass的快速交付能力,这是制造。

营销,很多toB、toC的业务,像互联网时代的电商类,用户请求放在公有云,然后把电商所获取的数据加工处理后,放到私有云,做好这种管控资源的打通。因为公有云有比较好的带宽,更卓越的SDN设备,有很好的加速促销环节。我有互联网的电商应用,移动端的业务要部署到我的云端上去,所以云平台天生就有这么好的能力。营销环节也有边缘计算、雾计算,比如说我买一个智能设备,智能设备到底在运行一个什么状态?智能设备的生命周期是什么?用户的体验是什么?最终要返回到我们的研发环节,最终我们能制造出更好的产品设备。大数据分析服务,通过终端或者大量的数据做算法、做分析,然后再去做售后服务,不断提高用户体验。

那么,如何打通工业云全链路?我们很难有一个平台把工业云所有层面全部打通。所以,工业云和传统云还是不太一样。如果一个技术,满足我80%的需求,另外20%要通过合作伙伴生态很好的维护起来,对用户来说才是有帮助的。那么,什么技术是最好的技术呢?很简单,能帮我解决问题的技术。实际上,智能制造的核心内涵是:感知和收集,决策和控制,执行和修正,形成智能化的产品、装备、车间、工厂,类似于IT服务管理领域的接、管、控。

云以及AWS发展历程

在了解什么是云之前,我们先想下什么是操作系统?操作系统能做什么?操作系统是不是驱动底层的CPU、内存、磁盘等硬件?给你上面部署的应用提供硬件资源?AWS云服务有点像操作系统,你要做什么?就去驱动它,底层各种应用资源为你所用。所以,亚马逊说自己的云服务就是一套 Internet云操作系统。

那么,Amazon架构需求的是怎样的?2000年的时候,Amazon的新购物网站的服务力求变得高可用、安全、稳定、可靠并能无限扩展架构。Amazon云为什么叫AWS?其实A、W、S这三个字母代表不同的字义:A是Amazon;W是Web;S是service。AWS代表所有服务都通过API调用,通过网络,用户就能获得所有资源。Amazon以前是电商,现在也是电商,只是我们今天讨论的是它的云服务。

Amazon之所以推出云,是因为自己遇到了一些问题。电商网站的业务发展非常快,所以电子商务工具也是混乱不堪。比如:应用程序和架构构建没有正确的规划,服务不得不彼此分离等。

其实,AWS一开始也没有技术特别强的人,只是把所有的需求和服务都搭起来。现在,因为踩了很多的坑,终于找到了比较行之有效的方法,才有了云计算。之前也是不断买服务器,不断搭建系统,然后各种系统之前没办法相互调用。尤其规模大了以后,问题越来越多,怎么解决呢?那就是把所有的服务变成一套技术相连的API,然后服务之间可以相互调用。AWS上面现在有很多服务,每个服务只干一件事情,比如EC2是做计算的,Lambda也是做计算的,然后RDS是数据库, 这些服务之间还可以轻松地调用。做软件的人都知道,一定要遵循一个核心设计理念,叫做松耦合,AWS的各种服务之间也是松耦合状态。

另外,很多人对SOA应该也非常了解,叫做面向服务的架构,其实和云的理念也相同。所以,云并不是什么新事物,十几年前就提出来了。比如:IBM构建一个系统一定要有中间件,遵循SOA的设计架构。只不过,亚马逊把SOA理念贯穿得非常彻底,推出了云。

有句话说:IT领域每15年就有一次变革,回过头来看,确实如此。从小型机到虚拟化,再到云计算,企业信息化的底层架构在不断演化。AWS从2006年开始就在卖云服务, 第一个服务是S3 (Simple Storage Service),简单的存储服务。S3是对象存储,区别于块存储。我们每个人都有笔记本电脑,上面会有一块硬盘,叫“块存储”。与块存储不同的是,对象存储就是网盘,比如说百度云盘,你放在网盘上的每一个文件就是对象,并且可以通过全球唯一的URL能反应到,就是用HTTP就能反应到它。

S3是如何诞生的呢?是因为电商要扩展,比如从欧洲要扩展到非洲,但非洲基础设施环境非常不好,总是停电、丢数据,急需要一个数据不丢的应用来存储,S3顺势而生。S3持久性很高,放进去的数据有11个9的持久性。

云的设计准则

那么,什么是云?不同厂商有不同定义!

在AWS上的架构部署与设计

▲云计算的主要特征

大体来看,云有三个特性:

第一个,可编程的资源。它是一种可编程的云资源的管理机制,由网络资源、计算资源、存储资源和可编程的管理单元构成。通过采用这种可编程的云资源的管理模型,和和可编程的这种资源管理规则,实现云资源的这种高效管理。

第二,这种动态能力。这些资源是动态获取的,我需要云资源的时候就拿,不需要的时候就扔掉。所以,计算无处不在,很方便,只要有网络的地方,就随时可以获取到资源。就像家里的水跟电一样,水龙头一开水就来了。

第三,按使用量付费。是一种先使用后付费的这种计算方式,通过按量付费,你可以按需开通和释放资源,无需提前购买大量资源,成本比传统服务模式便宜很多。

在AWS上的架构部署与设计

另外,云计算有六大优势:

第一,将资本支出变成可变支出。什么是资本支出?其实很简单,就是你借一个数据中心叫资本支出;可变支出,其实有点难理解,我们叫运营支出。比如: 公司每个月要交水电费,就是运营支出,交给AWS的费用同样是运营支出,不要一下子把钱全部砸到数据中心。尤其是初创公司,拿了风投的钱,风投肯定不愿意投重资产。如果用AWS就不会有这样的问题,哪天不干了,可以快速收回成本。当然,如果你业务爆发很快,你可以考虑自己建数据中心。

第二,是规模效应。

第三,是停止猜测容量。换言之,你可以认为AWS的资源取之不尽。

第四,提高速度和敏捷性。这一概念如何理解?如果我们在数据中心启动一个虚拟虚拟机,在AWS上也启动一个虚拟虚拟机,到底谁更快?可能还是数据中心本地快。比如:你在AWS上启动EC2, 可能至少要5分钟, 才能反应到实例。但是,你在本地,如果你的基础设施比较好,一分钟或者半分钟,虚拟机就起来了。怎么能体现出你的速度和敏捷性呢?不同的是AWS环境中的实例,有防火墙,有公网IP。如果你要做数据库,直接启动RDS;如果你要有一个数据库缓存的话,那就启动Redis;如果你需要大数据的话,那就启动EMR。你要的所有资源。在几分钟之内全部到位。在传统数据中心要实现这一点,不是不可能,但是有难度,你要投入很多人力、物力、财力才能达到这种效果。

第五,专注于重要工作。AWS上有很多托管服务,比如RDS关系型数据库,很多常规的功能都具备,DBA不用自己搭建底层架构,部署上层应用,还要维护系统,只专注业务本身。

第六,数分钟内实现全球化部署,主要体现在AWS的全球化资源部署能力。

架构完善的框架

在AWS上的架构部署与设计

问题是,我们在架构上要遵循一些什么原则?或者比如说我是甲方,乙方帮我做方案,我要看一下是不是满足,做的是不是达到安全性、可靠性、成本优化、性能效率、卓越运维这几个要求。

在安全性上,身份机制怎么做,如何实现可追溯性,如何在所有层确保安全性,风险评估与缓解策略怎样操作?所有能力AWS都具备。

什么是可靠性?我们经常听到公有云厂商断线的消息,包括AWS在北京的服务曾经也挂过。按道理说,AWS的数据中心有两个可用区,它的风火水电都是独立供应,有独立的网络,一个挖掘机下去只会挖断一个可用区,为什么两个可用区都宕机了?这是因为在架构设计的时候,埋线的时候,把两根线绕了一圈,然后又埋到另外一个沟里去了。所以,一出现问题,两个可用区都不能工作了。

成本优化很好理解,就是消除一些不必要的支出。比如:有些服务我们用EC2跑,但是一天的访问很少,就几个人,这时我们就可以换成Lambda。我也可以考虑使用托管,虽然托管的费用很高,但是我可以把运维人员的成本省下去,要看你站在什么角度考虑问题。

卓越的运维,是指通过一些专业工具来帮你做一些自动化运维。 现在大家都在讲DevOps, DevOps是常见的开发、部署、运维模式,所以需要专业的工具支撑。AWS就有全部的应用工具,可以支撑用户的DevOps。

性能效率,EC2有很多资源类型, 比如:大家一开始用T系列,但如果我今天要做测试,承载量不大,我就用 t系列;如果很吃CPU,我就用c系列。类似这样,普及先进技术。当然,从应用表现来看,S3也不算什么新技术,实现起来非常简单。但你自己搭的应用要达到像            S3一样高可靠、高可用不容易。包括RDS关系型数据库,你自己要搭起来也能用,但是你要保证它的可靠性、信誉,会有一些麻烦。所以,我们要利用AWS上的一些服务来实现。

AWS全球基础设施

前文说道,AWS在全球有很多资源可以用,包括有些外企要出海,比如像吉利这样的公司,全球有很多工厂、销售点等等,AWS在全球有各种各样相对应的资源。

AWS在全球有很多数据中心,比如在北京,每个数据中心都有几千或上万台服务器,而且资源都是在线的,没有所谓的冷备,因为冷备关了之后,这个服务就不能用了。数据中心里面有很多种网络设备是AWS自己定制的,来自多家ODM原厂设计;AWS的服务器是由戴尔以及其他厂商代工;交换机是自己设计的;自定义网络协议堆栈;还有芯片,AWS全部托管给第三方制造。

平常,我们建数据中心可能看不到可用区,但肯定会看到可用性。可用区是最小单元,你在建EC2的时候就能看到:A可用区、B可用区、C可用区。那么,什么是可用区?它包括一个或多个数据中心,两个不同的可用区之间,就是一个容灾的距离。两个可用区之间,一般最佳是40公里,不能超过100公里。

AWS在全球由18个区域,中国和美国比较大,中国有两个区域,在北京和宁夏都由两个或者更多可用区组成,这些区域各自独立,但在北京有两个区域是为故障隔离而设计,它们相差几十公里。中国区域和海外区域是隔离状态,比如你注册一个海外的账户,按理说你全球都可以用,但实际上他把中国这两个区域排除在外。就是说,AWS在中国你得单独注册,只能看到北京和宁夏可以用。你即使想使用海外的资源,又想使用中国的资源,你需要两个账户,而且中国账户要用企业账户才能注册,个人账户不行,个人账户可以注册海外的。

你要实现跨区域的数据复制,比如我要从东京把数据复制到新加坡,可不可以?当然可以!区域之间是用AWS这种骨干网络相互通信。

为什么强调区域?因为AWS客户多,需求多,最终产生的资源多,所以新服务一定在需求多的地方出现。

除了18个区域,还有很多边缘站点,是用来跑IOT物联网。比如:*要访问北京的资源,会把一些静态的资源推送到*用户最近的地方。所以,这些服务在边缘站点上面,跑跟终端用户最近距离的服务,包括CDN、IOT、DNS以及防火墙等等。

大型架构设计

如果是大型用户场景,那就要从S3开始部署,然后涉及到Route 53,还有和网络相关的内容分发CDN(CloudFront),主要放静态内容。接下来是互联网网关,负载均衡(APPlication Load Balancer),自动扩展(Auto Scaling),NAT网关,EC2、缓存(Memcached)、数据库RDS等等。

在AWS上的架构部署与设计

很多人可能会说,你讲的内容是不是都是公有云服务。实际上,AWS的应用环境,很多是都是混合云的统一管理,混合云管理已是一种常态。比如:我既有AWS的云,又有阿里云,然后还有私有云,这么多种云都有不同的计费,不同的资源和很多账户,操作起来比较麻烦。怎么办呢?我会在很多云之上部署混合云,来管理下面这些云,统一去申请资源,统计计费,统一进行自动化运维。

最后,到底哪些客户在使用云?

有这么几种:

一种是创业公司,为了省钱,就在云上买一个服务器资源,部署一个虚机。比如:公司比较简单,你一开始就部署一个静态环境的话,只要用对象存储,用S3就可以了。费用很便宜,一个月存储一个G的数据,只要0.1到0.17元。

第二种是电商类企业,经常要搞活动,需要弹性扩展能力,等活动过后可以对资源进行收缩。

第三种是政企客户,需要通过现代化手段实现惠民服务。

第四类是传统行业,要打通烟囱式的孤岛,通过云方式连接数据,实现底层的互联互通。

总之,上云已是主流趋势,各行各业都在把传统的数据中心和云连接。

 

本文地址:https://blog.csdn.net/guoyJoe/article/details/108846321