云计算时代的技术架构与开发模式

2023-06-03 0 257

DOS黄金时代、Windows黄金时代、Web黄金时代、终端App黄金时代,他们的合作开发词汇、控制技术构架、增容方法、布署商业模式、网络管理商业模式,都发生着非常大的变化。那么他们来重新想像,云计算黄金时代的控制技术构架和合作地产商业模式应该是甚么样子?

一、从一个一般流程讲起

他们常规性写流程一般来说都是这种的形成:

1、谷歌当今世界:ASP.NET、VB.NET/C#、SQLSERVER

2、JAVA当今世界:JSP/Servlet、Struts/Spring/Mybatis、Oracle/MySQL

3、PHP当今世界:类ThinkPHP这种的架构、MySQL

常常他们在Web后端还要加一点小东西,如AngularJS、BootStrap,让后端标识符变得更有结构,更多终端设备网络连接。

要运转那些流程,他们一般来说在后端须要点Apache/Nginx,尾端还须要点Tomcat/JBOSS/WebSphere/WebLogic等等的小东西,下层还须要.NET运转自然环境/JAVA运转自然环境/PHP运转自然环境

OK,能布署了。

过去不少云计算供应商搞AE(Application Engine)自然环境,期许合作地产商把应用领域应用软件一布署就OK。但发现应用领域合作开发人员在运转自然环境的女团方面挺多、版明确要求也挺多,这话平白,于是只提供更多单纯的虚机自然环境了,对各种模块女团和版女团,由服务器端的AE自然环境包研制韦尔恩提供更多了,我们能在应用软件服务市场中买回到,而且很方便快捷全屏加装布署,对没甚么特定操控性明确要求和零散布署明确要求的孵化器企业,一般来说就足够多了。

二、说说云计算IaaS产品组合能提供更多的支撑力

作为云计算,他们先专指一下IaaS,大体是那些产品组合:

1、云PS3:应用软件包、Docker罐子。

应用软件包我们都认知,关上了和两台零售版从感官上没差异。但Docker须要应用领域Image快照放在Docker罐子中就可以运转,这是很多人没基本概念的。但Docker罐子更小巧,所以开启快速、挂起快速、占据天然资源少。不像应用软件包,还得加装作业系统和配置作业系统。

当然,除了应用软件包和Docker罐子,云计算供应商还提供更多物理服务器,供更高操控性明确要求使用。

2、云网络:CDN、SLB。

CDN能让静态文件缓冲,能分发到全国,离用户访问的节点最近,这种访问速度最快。

SLB是网络负载均衡,能让你的应用领域从入口一进来就分流到各个PS3上,分担了计算压力。

云网络还有:VPN(虚拟专用网络)便于企业组内部广域网,高速传输通道能用来传输大批量数据,专用网络用于高操控性高安全的大客户使用

3、云存储:文件存储、对象存储、块存储。

个存储阵列里的那个磁盘上即可,你如果不须要建立文件目录结构,能用对象存储;如果你对存储稳定性明确要求高,你能用块存储,这就是咱们一般来说说的RAID存储,块存储会在下层保证数据的自动冗余复制多份,不须要应用者Care,所以某块物理磁盘出了问题,数据也不会丢失。你能根据自己的需求来选择不同的云存储产品

4、云数据库:关系型数据库、分布式关系型数据库、NoSQL。

关系型数据库,常见的有:SQLSERVER、ORACLE、MySQL、PostgreSQL。

现在还有一些关系数据库的尾端件,能做Sharding的自动分库分表,不须要应用领域合作开发人员Care,如MyCAT。但这不是真正的分布式关系数据库。真正的分布式关系数据库,从下层构架设计时就是原生的分布式。

分布式关系数据库,如Greenplum、TiDB(国人作品/京东老员工创业),阿里也出了一个Oceanbase。

NoSQL,有KV型内存式的Redis、memcache,也有文档式的mongoDB。

云数据库服务商会在后端提供更多可编排、自动化、自主化的数据库备份服务、迁移服务,让数据存取更稳定保障。

能这么说,IaaS给你提供更多了服务器、存储、网络、数据库,你能把自己的流程放上去。

三、说说可扩展的控制技术构架

其实这个当今世界有很通用的可扩展控制技术构架方法,但中国中庸万金油的狗屎合作开发人太多,把所有子系统的标识符都写在一起分不开,前后台标识符都混在一起,标识符和数据库混在一起分不开,导致想零散存取压力和计算压力都不能,只能不断加内存、升级CPU、升级网络带宽、升级存储设备操控性。

一般来说的可扩展控制技术构架方法是这种的:

1、各个子系统模块标识符分离,而且能独立布署。

2、须要合作开发一个企业门户,作为各个独立布署的子系统进行集成接入,也便于负载均衡分流路由

3、各个子系统之间通过明确的统一规范的服务API接口进行连接,而且由SOA尾端件在尾端协调,而非交叉直连

4、各个子系统要共同访问的数据,定义成主数据。有专门的数据库放置主数据,有专门的管理系统UI操作能管理主数据,有专门的后台服务引擎来进行主数据的更新、日志、复制、分发推送,有专门的API服务用于其他流程通过接口来存取主数据

5、统计报表和业务子系统分离,业务子系统的数据通过引擎复制导入到数据仓库,统计报表在数据仓库中做。这种统计报表能满足更复杂需求、定制更灵活,而且运转时不影响业务子系统的正常处理。

有这五条基本架构原则,好多企业应用领域就已经安顿住了。其他加加索引、优化一下SQL、归档一下历史数据,都是雕虫小技了。

当然,你如果有更高的操控性明确要求,云网络能帮助到你:SLB能进行分流,你能把一套子系统布署多套,布署到不同的服务器上,子系统标识符运转,消耗最多的是CPU,而不怎么消耗内存、带宽、存储。当然,那你如果一个子系统布署多套的话,就出现了另外一个需求,你须要自动化的DevOps工具,来进行自动化的一次发布、多机多套布署,这种能保证多台服务器上的标识符逻辑是一致的。

你还须要做动静分离。静态的,Apache/Ngnix、浏览器都会帮你做很多缓存,能不用次次重新到服务器上取信息。而且云网络的CDN也能帮到你,帮你把静态文件分发到全国各个节点,让用户就近访问。这种你就能获得更高的操控性了。

如果你还须要更高的操控性,云数据库能帮助到你。不过你还得须要改你的标识符构架。你须要应用领域Redis,把数据先打到内存中,流程会自动优先访问内存中的数据,而不用到磁盘中取数据。根据业务场景须要定时来更新内存中的数据。

如果你还须要更高的操控性,你还可使用分布式数据库。

如果你还须要更更高的操控性,你须要针对你的数据类型和特点选择不同的数据存储形式、不同的数据引擎了。所以各种各样的NOSQL就产生了,有的很善于处理时序型数据,有的很善于处理图状网状型数据,这种不管你是订单顺序,还是社交网络,都有合适的数据存储引擎,这种存取数据会更快。

四、说说集成

刚才提到可扩展的控制技术构架时没提集成,因为咱们要专门提提。

集成有这么几个层次:

1、UI层:企业统一门户,单点登录

2、UI层:URL调用。通过传入正确的Session和URL参数,以HTTP GET或POST方式进行访问,直接调用出其他子系统所属的UI窗口。当然这种调用是糟糕设计,而且各子系统独立布署还会产生XSS跨域访问问题。这种就把各子系统之间的调用都倒逼到逻辑服务层了。

3、逻辑层:通过WebService、REST等方式暴露接口,进行接口调用

4、逻辑层:很多烂流程,在逻辑层直接写很多SELECT、INSERT、UPDATE、DELETE的SQL语句,而且是跨各个子系统的。这是糟糕设计。所以一开始在标识符合作开发的时候,就应该各个子系统是不同的标识符库、不同的数据库,这种从一开始就不会产生跨子系统SQL调用

5、数据层:有不少烂流程,N个子系统的数据表都放在一个数据库中,而且还写了不少VIEW、存储过程,甚至Trigger,这都是流程啊,流程都散在了各个层,而且都是跨子系统的,简直电线缠绕啊。所以我个人很倾向把各种标识符都集中在逻辑层,把数据库就做成数据存取即可,不要给它赋予太多职责

6、任务层:还有不少烂流程,有些后台须要根据条件触发或者定时调度执行的后台任务,这里面也写了大量标识符。建议啊,逻辑标识符也是放在逻辑层,而这个任务层标识符只是进行调度女团即可,不要把详细的逻辑代码都写在这里。

7、数据层:主数据集成。主数据如何被多个子系统更新、如何公开成服务被子系统调用、如何进行数据同步复制与分发

8、数据层:统计分析集成。这须要做成独立的数据仓库来干

可见集成,跨层纵向调用,水平横向之间调用,产生了多少交交叉叉,因而引发了多少牵一发动全身的事情。本来简单的事,就被万金油们搞成浆糊了。为了清晰的集成,他们有必要把调用都集中在逻辑层,而不是散在各处。

为了清晰的集成,他们还有必要引入尾端件。

1、过去搞的是SOA尾端件,解决接口之间的调用,不要让接口互相直接调用产生蜘蛛网,而是形成交通岗中枢进行尾端指挥,在尾端进行服务注册、发现、路由、安全验证、多协议传输。

但互联网是网状的、分布式的、无中心的、不能单点失效的,所以SOA尾端件的玩法就在云黄金时代的互联网构架基础上玩不转了。要去中心化。

近年火热的微服务构架和微服务尾端件,和SOA有些不同。微服务构架讲究的是服务粒度更碎,服务能力更单一,形成Open API的形式,未来合作开发流程,都是基于在云上开放的Open API来直接女团,就形成了一个场景式的功能,AWS的lambda就是这个思路的尝试。在终端黄金时代,不讲究上千个功能点的大集成的ERP套件,而更讲究一个APP满足一个核心场景,一个APP也就十来个功能。当然,你做的功能多了,终端屏幕就那么大,还是多点触摸式不好输入,终端APP就没法用了。

至于Google的Protocol Buff和Facebook Thrift,只是为了让多词汇之间进行顺畅的Service-client服务调用与数据传输,在小范围来看也属于服务尾端件。

2、有了单点登录、主数据Open API服务,那各个流程间的调用、数据、消息还是须要的啊。在云计算互联网黄金时代应该怎么办呢?

Kafka、Zookeeper上场。分布式的Kafka,通过消息队列管道,把数据、触发消息通知传送到Service-client两端。ZooKeeper来作为外协服务协调各个服务之间的调度。

有了微服务构架、微服务尾端件、Kafka、Zookeeper,过去集中式中枢式的SOA尾端件就被瓦解了,被现在的分布式无中心式构架所代替,真正又回到了互联网的网状结构。

五、总结一下云计算黄金时代的控制技术构架商业模式和标识符合作地产商业模式

1、H5后端控制技术,适合各个设备

2、微服务控制技术构架,一个功能点可能就是一个服务,对外公布Open API,供其他应用领域调用。微服务控制技术构架让标识符不再混合,标识符规模小,容易认知容易修改,新人容易上手

3、微服务布署在Docker罐子中,Docker隔离了各种基础支撑力模块的布署相互影响的复杂性,这个微服务用到哪些支撑力模块哪些版就布署哪些,和其他微服务用的模块以及版不打架,这让服务网络管理稳定性提高了许多

4、云计算提供更多了专门的对象存储、块存储、CDN、SLB负载均衡、虚拟专用网络;云计算提供更多了各类云数据库,如MySQL、Redis、MongoDB、PostgreSQL等等;云计算提供更多了各类分布式尾端件,如kafka消息队列、nutch爬虫、elasticsearch搜索;云计算供应商还提供更多了那些基础应用软件的网络管理,如备份、迁移、扩展、补丁升级等等。微服务只须要写好应用领域逻辑标识符,其他须要的文件存取、数据存取、数据传输,都直接调用云计算提供更多的API就能得到满足

5、各种微服务都对外提供更多标准规范的Open API,这种的微服务越来越多,他们写一个应用领域,很多时候就是把各种Open API连在一起就能构建成一个应用领域了

6、他们的标识符是托管在专有的云Github上,有专门的版控制管理工具,有专门的研制工程效率工具,如自动化编译工具、自动化测试工具、多节点自动化统一布署工具、灰度发布工具、项目计划和任务管理工具、文档管理/需求管理/BUG管理工具,那些也都布署在基础的云IaaS中。

六、最后谈谈云计算IaaS的选型

对创业小公司,一般来说这种选型云计算:

1、域名便利:方便快捷域名注册、域名绑定、域名备案

2、支付便利:如支付宝、微信支付,扫码付款即可

3、价格低廉:如一个月100多元,一年才1000多元

4、有AE包:能网上选择、网上付款,甚至0元促销,直接全屏加装。很容易就把自己的流程布署上去

5、提供更多基础应用领域:如免费的企业邮箱。如果有免费的wordpress和企业模板,不用加装,直接开通,直接域名绑定,企业的官网就有了。一个企业的架子就很快搭起来了,从外面看来很像一家正规公司了

对中公司选型云IaaS:

1、各种引擎很重要。中公司,自己的应用领域做的很好,但大部分研制力量主要都投入到应用领域研制上了,他们没能力来研制以及网络管理大规模的基础引擎,所以如果云计算供应商能提供更多好多下层的引擎,他们就会直接使用。如搜索推荐引擎、人工智能引擎、大规模日志引擎、大数据控制技术平台。又不用自己研制,又有现成的高科技给自己主力,多好

2、价格。又想吃好肉又想价格低,所以只能随业务增长量来收费,这种容易接受。但因为所有业务应用领域都受基础引擎支撑力,所以想迁走就基本不可能了,只能细水长流

3、有比较保障的云安全:至少不能动不动就被DDoS攻击、被加装了肉鸡木马、被感染了病毒。中公司的研制人都主要偏向于应用领域研制,一般来说没专门的安全控制技术力量。

对大公司选型云IaaS:

1、稳定很重要。如网络稳定、存储稳定、内存CPU主板稳定、电力稳定。这是须要云计算供应商投大钱的,钱没投上,只选择低端货,那自然不稳定,操控性也不高

2、解决方案很重要。大公司一般来说应用领域复杂,明确要求异地多备份、多地多活、流量分流、快速切换,这须要云计算有很强大的控制技术解决方案能力。甚至有些大公司为海外提供更多服务,所以也非常看重云计算供应商在当今世界各地如香港、日本、东南亚、欧洲、美国的云计算天然资源能力

3、控制技术支持很重要。出了问题,能快速响应,快速查找到问题根源,快速修复或快速升级。这对云计算供应商的控制技术团队的规模、控制技术能力、自动化工具、跨部门之间的良好协作,明确要求很高。

4、控制技术服务团队的服务态度也很重要。本来客户出了问题已经很着急,如果控制技术服务团队的态度散漫、态度不和蔼,甚至欺骗客户、拖延时间、内部协调不了,那客户就爆了。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务