在我看来云计算就是两个词,一个是大计算,另外一个大存储。从技术角度讲我们认为云计算这样的技术,把所有独立的服务器连在一起,变成一台超级大虚拟的计算机,能够承载大规模的计算和存储,这是我们的理解。当然了,我们在所有搞云计算同仁里每个人都有自己的理解,而且我们发现在不同的层次里对云计算定义也是不一样的,这样能够产生在云计算很多能力,在这个时代发现很多家公司都去开放他们的能力,通过云也好,通过API也好。通过API、云,让所有服务回归到了互联网的本质,我们都知道互联网本质本身就是互联互通,我们通过云和API把互联网里所有数据服务有机联系在一起,这样形成了云计算时代我们云无处不在的特点。
第一、商业模式服务化。包括PAAS、SAAS也好最终都是强调服务。我们看到SALESFORCE崛起的时候很多软件公司不那么强大了,包括普元这边,他们在PAAS跟SAAS做了很多贡献。在今天互联网时代跟云计算时代,大家触手可及的是服务,而不是原来的功能,所以一切趋于服务化是今天软件发展的趋势。
第二,使用方式移动化。目前随着智能设备的普及,企业对移动应用的需求越来越高。比如像员工通讯录、流程审批等,按照之前传统的方式需要用笔记本通过VPN接入公司内网来操作,如果忘记带电脑,那就是件很悲催的事情。现在连非常知名的ERP厂商SAP也开始更多强调SAAS化,使用体验上非常重视。在上海他们有一个很大的研发团队,在改造他们传统的ERP,改造出来的特点就是移动优先,实际上很多大的软件公司都是在把所有出口向移动端推进。
第三,设计思路互联网化。我们看一个例子,YAMMER在前几年很火,国内也有明道、TITA,ASANA。这里我讲ASANA,它给自己定位是后邮件时代的沟通工具。所有的设计不再像软件,更像一个互联网化的产品。基本上颠覆了传统使用软件的方式。这个也一样,它把整个概念引入到企业管理软件领域,同时整个平台开放出来,让更多第三方软件公司接入进去,所有模式我们看到出发点都是从互联网思想出发的。
第四,大数据驱动创新。在我们这个时代里面,数据量非常大,但多是不是大数据?其实大数据是指的我们平时最不值钱的数据,它不一定是企业里边财务数据、业务数据,大数据特点是不值钱,比如谷歌的数据,就是互联网碎片化数据,谷歌把不值钱的数据用大数据处理技术进行梳理分析供人们使用,这样就把价值挖掘出来,这样的数据在这里有什么样的作用?我们会发现其实大数据不是帮助企业做BI,改进业务流程,而是在这个时代里可以基于大数据做很多的创新,去颠覆你很多传统的想法。
比如阿里小贷,我们通过淘宝上的商家的数据可以知道这个商家的信誉,来判断可以带多少款给到商家,而且放款周期非常短,不需要实物抵押,也不需要见面,这对传统银行的信贷部门是不可想象的。
我刚才讲的是软件发展趋势。接下来我们会发现在云计算的特点里,整个开发它应该有个什么样的发展。
第一,我们从编程角度来说,面向云的开发其实是一个非常明智的选择。为什么面向云开发是一个明智的选择?其实我们发现在云计算时代很多家公司把自己能力开放出来,包括阿里云开放的API,高德开发出来的位置服务,还有很多公司把自己的业务跟数据也开放出来了。这些能力其实已经存在了。而往往很多时候我们一家软件公司基于自己的技术体系搭建能力的时候非常困难,所以我觉得我们要学会使用云计算已经存在的能力。
第二,云计算已经把我们架构简化了,所以每个架构师做架构的时候一定要考虑架构的简洁化。比如说我们如果处理大存储的问题,我们首先想到中心存储,如果自己研发中心存储系统首先要想到的纯粹引擎,你存储的是小文件还是大文件,这里就存在很多研发的问题。
第三,分布式信息提取,你要对你存储的每一个文本了解,对它进行监控,这样存在监控的问题,你要去开发。
第四,数据过来,你根据什么样的规则,去把数据落到指定的文本上去,你使用去中心化的做的,还是你有一个人员管理所有,这就虽然很具体架构问题。但是现在有了云计算,就不需要了,比如阿里云有开放式存储服务,可以直接使用。我刚才讲复杂问题都没有。所以在云计算时代架构越简洁越好,我们要学会使用云。
第五,我们一定会出现分工,我们所有工程师有的人慢慢向底层发展,去做分布式分布,流计算问题,他们会把API能力开放出来,让做业务工程师调用。另外一个分支有人钻研业务,实现业务逻辑。这是我讲的在基于云应该怎么判断开发的问题。
我这里讲几个基于云软件部署方式。我本身背景是互联网比较多,对企业软件了解并不透彻,但是我们前面做平台的时候积累了一些不能叫经验,我觉得叫想法,所以给大家分享一下。
基于云怎么部署软件。我们看到从上面开始看,刚才讲到SAAS,每个笑脸代表一个客户,每个客户有自己的空间,空间往下对应软件部署,这里软件部署是我们可以最简单的方式拿一台云服务器把所谓的应用服务器、数据负服务器、软件都可以装上去,这是最简单的。你如何实现SAAS,如何实现服务?我们以前想法就是你有一个生产控制系统,你可以把我刚才说的应用服务器,数据库服务器,包括所有业务打成一个镜像。当一个用户说我在买你软件服务的时候你开一台云服务器,把镜像在云服务器生产出来,这样客户就得到了他的互联网软件融合,用户感觉是SAAS感觉,这个对我们现在现有的BS结构软件,面向单体开发的软件实现SAAS基于云计算可以去做。而且我们现在阿里云云市场上面有很多中小企业提供的软件服务就是这种方式提供的,就是把传统的软件实现了SAAS化,这是第一种方式。这种方式对用户来说蛮好的,以快速开通,服务器独享,还是挺好的。这个不一定是最先进的,当你开得多的时候就面临很多服务器的运维,运维的时候会比较麻烦。
第二种方式你把负载均衡,云监控、云盾监控,把所有这些加在ECS前面,这样前端有了负载均衡,后面可以部署多台服务器,也可以使用阿里云云数据库服务,这样可以形成一个集群,所谓独享的小集群。你也可以用刚才的方式把镜像,或者通过脚本的方式,通过生产控制把软件服务生产部署到这个上面,这个比原来更加先进。它不再存在单点故障的风险,用户使用起来就更加稳定、流畅、可用。这种方式也是我们很多传统软件能够快速实现SAAS化的一种模式。
第三种有个变化,前面这块统一掉,我们在整个应用层一体化,我自己解决不是单独解决,是一个大解决。在大集群里面通过逻辑处理实现所有生产的特性。整个大的数据库里可以做到上面是多集群,下面数据不影响。因为我们发现很多SAAS化应用,企业在用的时候就特别担心我数据在哪里,是不是跟别人共用数据,如果采用这种架构是把数据放在独立开发,打消用户这样的顾虑。
第四种方式全部统一掉。比如整个应用层做大统一,在这里实现多住户。下面数据层也可以实现大统一。这是我们现在很多软件公司所采用的架构,这种方式架构起来比较简单,融入起来比较简单,但是刚才我说的用户使用会存在数据在哪里这样的疑问。
这几种结构我自己感觉没有谁好谁坏,每家公司可以根据自己的情况,根据客户的需求采用自己比较适合的部署方式。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。