写点什么

PaaS 乃是大势所趋

2013 年 5 月 27 日

如今云计算已经逐渐渗入到信息产业的各个角落,不仅如此,当我们看如何使用云的时候,我们会发现,从数据中心到应用的提供,不同的云提供商在功能和能力之间的差异已经逐渐模糊。值得一提的是,大部分的企业仍然主要关注向其客户交付某种形式的基础设施即服务(IaaS)。这也许是在选择现有公有云厂商和构建内部 IaaS 私有云之间的一个折中方案。但是,最终说来,所有的云都会用来托管应用或者数据,这也就是说 IaaS 只是通往最终目标——简化应用平台或者平台即服务方案(PaaS)的操作及管理——之路上的一块基石。

PaaS 之前,须有 IaaS

IaaS 受到广泛关注说明了云计算在 IT 界的整体成熟度。如何在一组不同的需求中高效地管理共享资源,IaaS 非常依赖于对这一理解。至少到目前为止,这种想法在业界内还没有得到很好地传播以及实践,这是由于我们缺乏工具和能力使用商业软件硬件来交付这种思想。但是,随着越来越多的商业解决方案可以简化计算、存储和网络能力的分配和共享,以及这么做具有实际的商业理由,,很大比例的 IT 企业已经进入云计算的竞技场。

第一步是迈向资源共享,这就是常见的虚拟化。现在这样的现象非常常见,那就是企业高层在谈论他们的环境有多少百分比已经处于“虚拟化”。但是,如果没有在此基础之上持续改进的话,那么拥有一个高度虚拟化环境的价值所在仍然值得怀疑。也就是说,如果所有的设备都是从物理化迁移至虚拟化,我们能看到也就无非只是物理服务器数量的减少,以及数据中心的能耗使用的减少,例如电力,散热以及空间。

打一个很好的比方,这就像整理一个乱七八糟的储藏间。我们将相似的物品都放置到可以堆起来的盒子里面,这样做的确能非常容易地优化空间的使用,但是查找所需的物品的时候却得大费周章。而且,如果不能很好地随便查看某个特定盒子的话,那么从盒子堆的底部拿出所需物品却是一件非常艰巨的任务。比如说,每年的圣诞节,你也许希望将存有节日装饰物品的盒子移到盒子堆的顶部,这样最方便打开并且拿取其中的物品。

同样地,如果虚拟集群是静态地部署在特定的服务器组中,那么面临资源需求不断变化的程序时,调整它们的计算优先级将会变得十分困难。例如,许多公司会在年底发现在一些特定应用中资源使用量出现峰值,这是因为用户希望能够生成尽可能多的分析报告来评估业绩和做下一年的财政预算。因此,下一步便是业界需要持续不断地在实践中推动和简化资源池的使用和管理,这将使得客户从虚拟化演进的第一步中也受益匪浅,而且能够有效地满足客户的需求。

从第一步到第二步的迁移可能需要改变现有 IT 流程,这个迁移的过程也许非常复杂,而且它可能经常会对业务提出挑战。第一步将会导致一些流程变化,不过这些变化一定是围绕着数据中心资源的供应展开。不过,大多数组织仍然可以将他们的现有资源供应流程应用到虚拟环境中去。但是第一步到第二步的迁移将需要一些在治理、能力以及配置管理方面的改变,同时也需要监控方面的新技术以保证资源池能够满足需求。这类专业人才在市场上的供不应求很明显地限制了第二步的进行。

从 IaaS 到 PaaS

在往云计算的迁移过程中,大量的 IT 组织所遇到的问题终究都会得到解决。随着业界对云计算环境管理和操作能力的成熟,这一系列的努力的真正关注点变得明显——提供一个有效地应用平台,保证数据的安全,有效和满足性能需求。

和从虚拟化迁移到 IaaS 一样,从 IaaS 迁移到 PaaS 也是相当富有挑战性。最困难的挑战之一便是选择方法和架构。在有些时候,平台可以简单到只是一系列的虚拟机的组合。一个常见的例子便是 Web 应用,为支撑应用所需的所有组件都表现为服务器操作系统。(见图 1)

(点击图放大)

1:基于虚拟机的 ****PaaS

这类 PaaS 非常接近于它所模拟的物理机器,所以对维护者来说,管理和操作都非常熟悉。但是,由于虚拟机管理器和云管理软件的引入,导致了资源管理的能力的削弱,这使得问题的排查将会更加困难。

另外一个流行的做法便是应用容器。这类容器支持多种编程语言,同时提供一系列的应用服务,例如数据库和消息服务。这样一来,维护伸缩性和高可用性便是提供这些架构的运营团队的职责了。对于应用程序来说,它们可以认为这些属性是由云容器来维护。这类容器有:Microsoft Azure、VMware Cloud Foundry、Cloudbees 和 EngineYard。

由于到伸缩和高可用性的复杂性,建议最好利用这些容器的能力。但是,在配置、部署和运维都可能简化的同时,这些容器却仍然有大量可改进的地方。我们可以看到,多数容器仍然处于早期阶段,安全和治理控制功能十分有限。因此,如果你的应用有如下特殊的需求,例如特定的程序运行的位置,或数据要从指定服务器组上访问 ,那么这些平台还相当不成熟。

不仅如此,在开发时,需要记住,若应用在某个云计算环境中运行的话,则需要它在此类容器中更容易管理。下面是云应用需要特殊考虑的几个方面:

  • 应用需要能够伸缩自如,也就是说,应用需要能够运行在多重资源池中,而不仅仅在单个资源池中。
  • 考虑到多租户,应用需要对安全问题引起足够重视。例如,应用应加密日志和配置信息,也要将日常管理和配置更改的权限分离开。
  • 应用不应该依赖于基础设施进行报告错误。因此,应用程序本身应实现必须的逻辑,以保证数据一致性,而不应依赖于底层服务或者硬件来管理所有的一致性。
  • 应用程序不应该假设自己已经被迁移到了最好的资源环境中。这也意味着应用程序不应该对当前的基础设施做任何假设或者定义一些静态的配置。
  • 由于云的天性使然,应用程序应该支持一个通用的身份管理平台。这将确保应用程序能够继续在高可用性的环境中继续稳健地运行。
  • 应用程序应该能够代理可用的平台服务,而不是直接利用具体的服务进行实现。虽然这样做可能会增加一些额外的开销,但是它却给应用程序带来了更多的伸缩性和保证服务质量。

确保正确地实现并维护合适的安全策略及安全级别是(云平台服务)消费者的职责,这是云计算各方面的最佳实践。这意味着 PaaS 中的应用架构需要考虑移动中和静态数据的安全性,以及确保需要合适的身份验证才能访问应用程序。以前业界并没有对它多加关注,因为应用是部署在他们自己的企业数据中心。考虑到自有数据中心的低风险,这样做无可厚非,但是一旦迁移到共享资源,业界需要花精力考虑自由数据和应用在整个云环境中的安全性。

结语

云计算不仅仅只是一个信息技术的流行字眼,它是代表着架构的最终前进方向,而且要求必须在流程和操作方面做出改变。很多组织的经验证明,以自顶向下的方式来是非常成功有效的,这种方式将使得它们有足够的能力构建和管理共享资源计算环境。这是一个非常关键的基础步骤,它使得 IT 组织能够培养配置及容量管理、治理和监控方面的实践能力,最终有能力创建和维护一个 PaaS 环境。

平台即服务将会很快成为 IT 组织关注的重点内容之一,尤其是那些已经成功迁移到云计算平台的成熟组织。平台的选择与团队在 PaaS 环境下的管理和运维能力息息相关。每一种平台架构都有自身的优势和不足,例如某些平台着重于安全性和高可用性,而有些则认为安全性和高可用性完全是用户的责任。不仅如此,PaaS 容器的大量出现,也会让您的技术部门重新考虑如何开发应用以及如何重构某些应用使之更加适用于云环境。

关于作者

JP Morgenthal 是 IT 战略和云计算方面的世界顶级专家。,它有超过 25 年为复杂业务问题提供技术方案的经验。JP 对业务有商业敏锐,同时辅以技术广度和深度。在是集成、软件开发、云计算领域受人尊敬的作者。他投稿的 “云计算:评估风险(Cloud Computing:Assessing the Risks)”一书也即将出版。同时他还是 InfoQ 的云计算社区的首席编辑。

查看英文原文: PaaS Is The Word

2013 年 5 月 27 日 10:147494
用户头像

发布了 184 篇内容, 共 64.9 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

成为技术领导者-读书笔记

edd

整合Micrometer与Prometheus & ElasticSearch

李欢颜

简直人生外挂,直接涨薪20K,跪谢这份性能调优实战指南

小Q

Java MySQL 架构 JVM 性能调优

食堂就餐卡系统UML设计 - 架构师训练营第1周作业

netspecial

极客大学架构师训练营

StringBuilder 比 String 快?空嘴白牙的,证据呢!

小傅哥

小傅哥 string 面试题 StringBuilder StringBuffer

食堂就餐卡系统设计

熊桂平

系统设计 极客大学架构师训练营 UML

大咖布道丨证券行业规模化敏捷和核心能力演进

华为云开发者社区

产品 证券 大咖

抓住这些BUG程序员进大厂也就这回事,工作后2到3年进大厂操作指南

Java架构师迁哥

非暴力拆解:小熊派NB-IoT通信扩展板

华为云开发者社区

IoT 通信 芯片

架构方法周总结第一周作业「架构师训练营第 1 期」

天天向善

学习

架构师训练营第一周学习总结

尹斌

极客大学架构师训练营

非传统的“易观”,和他的技术驱动之路

易观大数据

第一周学习架构方法总结

三板斧

谈谈力软快速开发平台B/S专业报表工具

Learun

小程序 敏捷开发 开发者工具 报表

UML图

饺子

第一周作业

Geek_4c1353

极客大学架构师训练营

java安全编码指南之:堆污染Heap pollution

程序那些事

Java java安全编码 java安全编码指南 堆污染

【API进阶之路】做OCR文字识别,谁说必须要有AI工程师?

华为云开发者社区

API 文字识别 OCR

听说你想进腾讯总部?这项黑科技你值得拥有!

腾讯云视频云

音视频

架构师技术栈

elfkingw

领域模型的定义

Braisdom

Java 领域驱动设计 ObjectiveSql

程序员写个人技术博客的价值与意义

Java架构师迁哥

架构师训练营1期 - 第一周 - 食堂就餐卡系统设计

三板斧

极客大学架构师训练营

zabbix 4.x一键部署脚本

edd

Vitalik Buterin: 协作的好坏两面

安比实验室SECBIT

区块链 博弈论 协作

Servlet 知识点

陈靓-哲露

第一周学习总结

饺子

[Go] 设置各种选项的最佳套路

eddix

go 设计模式

就餐卡系统第一周作业「架构师训练营第 1 期」

天天向善

学习

mysql union子句排序问题

LSJ

开发 SQL语法

实战中学习浏览器工作原理 — HTML 解析与 CSS 计算

三钻

CSS 前端 浏览器

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

PaaS乃是大势所趋-InfoQ