正如云厂商和虚拟计算提供商所宣传的转移到云端是一个无缝的流程,经验却告诉我们过于猛烈地脱离内部数据中心,部署到云端是一种复杂的方式。从部署流程到方式的所有事情,应用的监控、调试并性能调整都不同。区别出现的时候,问题也就出现了。
但是当我们在向云计算迈进的时候如果有一些经验的话就可以避免这些障碍,尤其是我们有机会学习一些前车之鉴的时候。下面我们就来为大家提供一些指导。
什么是云?何时采用?
每隔几年,IT产业就会为新的属于和技术淹没,有一些变得极为流行,还有一些最终失败并消失了。那么,云计算是什么呢?炒作背后的实质是什么呢?
不久之前,SOA是流行词。回顾以往,Spring创始人Rod Johnson认为面向服务架构“是一种架构实践级别的东西,但是却根据它来卖产品。SOA的确是一种伪造的市场创造的概念。”他将SOA和云计算做对比,并表示“在云计算的例子中,背后有更多实质的东西。然而,这种实质却被掩盖,云对不同人意味着不同事。”这里所做的比较是为了云更为长远的发展。
然而,有些人重申云不是IT万能药。Andrew Townsend指出,“云计算提供了现成的基础架构,有云服务提供商来维护,企业在前端不用花费任何资本。然而,云可能并不适合每个人。”他列举了一些情景,在这些情境中转移到云端没有意义,像有些企鹅也必须在一些互联网连接慢速或者不可靠的地区运营的,可能就和公有云绝缘了。他也指出一些不太明显的错误,像企业在地理区域运营,授权数据追踪或者企业的核心关键应用在全时内部IT中要比外部云服务提供商匹配更好的服务。
云端极限扩展
有趣的是Java编程语言本身由于其管理参照和收集的方式,在无限扩展的时候经常产生问题,这也是为什么很多的编程语言运行在Java平台上变得如此流行。可能在云端进行扩展计算的最流行的语言就是Scala了。但是用Scala编写绝对不是为云计算基础架构编写坚固可扩展的代码的唯一途径。
一些开发者正在寻求Spring框架上的EJB的成功。云端用Spring/EJB方法编码基于相当传统的分层架构,单独的层针对业务和表现层,可以分开部署,这样可以简化云技术的整合,改善可扩展性。
也有专家表示理解如何为可扩展性设计系统,而且不用具体的工具从而增加可扩展性。例如,Martin Abbott和Michael Fisher写了一本书,主要介绍50条可扩展性规则,这些规则可以导向更加良好的可扩展性设计,从而产生更多的可扩展性云应用。构建可扩展性系统的这些规则覆盖了硬件和软件。他们警告使用“Select *”,并解释了更好地指定你所查找的行。他们也带来了一些轻松观察硬件的建议,像对于所有的细节网络使用相同的厂商,像交换机和路由器,因为混合网络传动可能导致信号路由开销。
云计算作为Java开发平台
云对于企业计算角色多数覆盖,从项目经理到企业架构师到应用开发者再到部署专家。也有一些神奇的好处和性能,Java开发者也可以利用。下面就是云计算如何让我们的开发变得更好。
平台即服务(PaaS)云架构可能为企业开发团队带来很多好处。PaaS模型允许正致力于云端应用的开发团队超越维护和现有的业务应用以及遗留基础架构,开始用一些更新的更容易集成的云应用来取代这些。PaaS按月支付扩展性,允许业务人士终止为短期项目投资,在没有风险的情况下不用受困于长期的昂贵的现代化进程。但是要小心第一个项目,因为第一印象持续时间很长,PaaS试验项目很可能成为你的好朋友或者业务端强大的助手。
使用云平台开发企业应用的另一个好处是相对容易的应用故障检修。云端企业架构,开发团队可以问题时间对环境进行快照。让专家帮忙解答。相比于传统测试云端快照有很多好处。云快照记录标定了环境因子,这些因子正在影响实际运行时的运行较差的应用。这些问题因子如果不进行重新配置应用可能很难显现。
新的云技术可以在开发团队中造成混乱。Java开发者经常提供广泛的深度技能,但是处理云基础架构可能对于很多人来说是新的挑战。例如,大多数 Java开发者熟悉过多的技巧,可以节省CPU周期,但是云模型CPU能量是足够的,更重要的是要关注于节省带宽。就像大多数新技术那样,云计算对于开发者来说,一旦有机会学习一些强健的PaaS技能,就会让生活更轻松。