云计算的“云”源于绘制互联网的网络图表时的一个习惯——会将其画成一朵云。最受认同的关于云计算含义的解释是,在一个商业供应者的数据中心上通过互联网远程运行工作负载——也就是所谓的“公有云”模式。AWS、Azure、谷歌云等平台都是这一云计算概念的例证。
但是,云计算还有一个更精确的解释:数据中心资源的虚拟化和中心管理。其关键优势是敏捷性:根据工作负载的需求,使用抽象计算、存储和网络等资源,且具备大量的预构建服务。
从客户的角度来看,公有云能够提供一种方式,在不投入新的硬件和软件的情况下,获得新的功能。同时,客户只需按照自己所使用的资源为他们的云供应商支付费用。只要填写web表单,用户就可以设置账户、加速虚拟机或提供新的应用程序。根据客户在运行自己的工作负载时的需求增加更多计算资源,这种特性被称为伸缩性。
云计算中可用的服务种类是很多的,不过主要可以分为以下几类:
SaaS(software as a service,软件即服务)
这种类型的公有云在互联网上通过浏览器对应用程序进行交付。最受欢迎的商务级SaaS应用程序有谷歌的G Suite和微软的Office 365;而在企业级应用中,Salesforce独占鳌头。但是几乎所有的企业级应用,包括从Oracle到SAP的ERP套件,都采用SaaS模型。通常,SaaS应用可提供广泛的配置选项以及开发环境,使客户能够自己对代码进行修改和添加。
IaaS(infrastructure as a service,基础设施即服务)
在基础层面上,IaaS公有云供应商提供存储和计算服务。但所有主要公有云供应商提供的服务都是惊人的:高可伸缩数据库、虚拟专用网络、大数据分析、开发工具、机器学习、应用程序监控等等。AWS是第一个IaaS供应商,且目前仍是领袖,紧随其后的是微软Azure、谷歌云平台和IBM Cloud。
PaaS(platform as a service,平台即服务)
PaaS所提供的服务和工作流专门针对开发人员,他们可以使用共享工具、流程和API来加速开发、测试和部署应用程序。Saleforce的Salesforce的Heroku和Force.com是非常受欢迎的公共云PaaS产品;Pivotal的Cloud Foundry和红帽的OpenShift可以在本地部署或通过一些主要的公有云来访问。对于企业来说,PaaS可以确保开发人员对已就绪的资源的访问,遵循一定的流程和只使用一个特定的系列服务,运营商则维护底层基础设施。
值得一提的是,专为移动端开发人员使用的各种PaaS一般被称作MBaaS(移动后端即服务),或者只是BaaS(后端即服务)。
FaaS(functions as a service,功能即服务)
FaaS,无服务器计算的云实例化,为PaaS增加了另一个抽象层,以便开发人员在堆栈中完全隔绝一切优先级低于他们代码的东西。不是去搞虚拟服务器、容器和应用运行时间,而是上传功能代码块,让它们被某个事件触发(例如表单提交或上传文件)。所有主要云都会在IaaS之上提供FaaS:AWS Lambda、Azure Functions、谷歌云Functions以及IBM OpenWhisk。FaaS应用的一个特殊的好处是,在事件发生之前不会使用IaaS资源,可通过降低资源使用率来减少费用。
私有云
私有云可以说是小尺寸的IaaS公有云,使软件可以部署和运行在客户的数据中心。与公有云一样,内部客户可以提供自己的虚拟资源,以构建、测试和运行应用程序,通过计量资源消耗进行收费。对于管理员而言,私有云数据中心最好就是自动化,而最差的情况则是手动配置和管理。VMware的软件定义数据中心栈是最受欢迎的商业私有云软件,虽然OpenStack是开源方面的领袖。
混合云
混合云是私有云与公有云的集成。混合云涉及创建并行环境,是应用程序可以在私有云和公有云之间轻松移动。在其他情况下,数据库可能待在客户数据中心与公有云应用程序集成——在需求高峰期,虚拟化数据中心的工作负载可能会被复制到云。私有云和公有云之间的集成类型差别很大,但他们必须各自互相适应,以成为一个混合云的模式。
公有 API(API,应用程序设计接口)
正如SaaS在互联网上为用户交付应用程序,共有API为开发人员提供应用程序功能,可以以编程的方式访问。例如,在构建Web应用时,开发人员经常会利用谷歌地图API提供行车路线;为了集成到社交媒体,开发人员可能会呼吁API通过Twitter或Facebook被保持。Twilio已经建立了一个成功的业务,致力于通过公共API提供电话和消息传递服务。最终,任何企业都可以提供自己的公有API实现客户消费数据和应用程序功能的访问。
iPaaS(integration platform as a service,集成平台即服务)
数据集成是任何具备一定规模的公司的一个关键问题,尤其对于那些大规模采用SaaS的企业而言。iPaaS供应商通常提供预先构建的连接器,为流行的SaaS应用程序和本地企业应用程序之间提供共享数据,尽管供应商可能或多或少地关注B2B电子商务集成、云集成或传SOA风格的集成。
IDaaS(identity as a service,身份即服务)
在私有数据中心和公有云网站上,与云计算相关的最大的安全问题就是管理用户身份及其相关权利和权限。IDaaS供应商保持基于云计算的用户配置文件,验证用户身份,并使访问资源或应用程序基于安全策略、用户组和个人的特权。能够集成各种目录服务(Active directory LDAP,等等),而且这是至关重要的。
协作平台(Collaboration platforms)
协作解决方案如Slack、微软Teams和HipChat已经成为重要的信息沟通平台,是组织内部能够有效地沟通和合作。基本上,这些解决方案是相对简单的SaaS应用程序,支持聊天形式的消息传递以及文件共享和音视频交流。大多数提供API来促进与其他系统的集成,使第三方开发者创建和共享插件,增强功能。
垂直云(Vertical clouds)
在金融、医疗、零售、生命科学和制造行业提供PaaS云使客户建立垂直应用程序,接近行业特定的、API-accessible服务。垂直云可以减少垂直应用程序投放到市场的时间,加速特定领域的B2B集成。大多数垂直云的构建都带着一些培养生态合作伙伴系统的目的。
云计算的吸引力与反对意见
云计算的主要吸引力是减少市场投放时间以及应用程序的动态化的规模扩展。不过,越来越多的开发商正将大量先进的服务引进到云中,并且可以合并到应用程序中,从机器学习到物联网。
虽然有时候企业遗留应用程序会迁移到云来减少数据中心的资源需求,但真正的福利在于利用云服务和“云原生”属性增加新的应用程序。后者包括微服务架构、Linux容器,可增强应用程序的可移植性,容器管理解决方案如Kubernetes基于容器的服务编排。原生云方法和解决方案可以是公有云或私有云的一部分,有助于高效使用Devops风格的工作流。
对公有云的反对意见,一般源于安全问题,虽然主要的公有云供应商已经证明自己的数据中心比一般企业更不容易收到攻击影响。更大的问题是客户与公有云供应商之间安全策略以及身份管理之间的集成。同时,阅批的监管可能会禁止客户让敏感数据离开本地。其他一些问题包括服务中断的风险和长期运营成本。
但公有云和私有云都已成为大型应用程序的首选平台,尤其是对于那些需要经常动态地改变规模的客户。更重要的是,现在的公有云供应商在技术开发上一直处在前列。企业选择云之后,会源源不断地被邀请使用一些令人兴奋的新技术。