媒体围绕云计算的炒作会不会有结束的一天?每天都有新的新闻稿吹捧一些以前陌生的PaaS提供商提供的卓越服务,或某篇文章或研究出来鼓吹,如果我们取消我们的数据中心并灌输自己成为IaaS教会或SaaS圣殿赞助人,我们都会享受令人难以置信的好处并节约成本。但是,把所有的炒作放在一边,也不说确实有利用基于云的技术来实现的实实在在的利益,但问题是:向云计算转变是如何影响典型的构建企业Java应用程序开发者的?
乍一看,人们可能会断言,基于云计算技术的出现,真的不应该对任何一个Java开发人员有影响。毕竟,开发人员编写的代码,尤其是服务器端,企业Java开发人员,对于这些代码将要在哪里部署应该是不知道的。一个使用Spring模型开发的Web应用程序无论是部署到JBoss服务器,一个Tomcat实例上,还是部署到WebSphere Liberty Profile服务器上,应用程序开发人员是真的不关心。作为一个开发人员编写的Java代码只要通过了所有所需的单元测试,一切万事大吉。然后,开发人员可以把代码扔在经营的隔间墙,让他们处理复杂的基于云计算的部署和运行时管理。
因此,如果云不一定影响应用程序的编码方式,云计算的出现在哪些方面影响应用程序开发人员呢?
“云计算影响应用程序开发最大的两个方面是,开发人员使用的工具和实现应用程序体系结构的方法,”Dominion Digital公司的管理顾问Ryan Shriver说。“源代码控制,持续集成和自动化测试工具在云计算出现之前很长一段时间一直流传。但现在,这些工具正变得比以往任何时候都更容易使用。找到其中一台服务器并在上面安装,而不是下载版本控制,搞清楚如何添加用户和所有这样的东西,我现在可以上线,免费注册,邀请我的朋友,上传我的代码然后离开。”
使用这些基于云的工具,最终的结果是什么呢?也许他们并不真正改变开发人员编写代码的方式,但他们确实帮助简化了加载过程,并且团队变得更有效率,因为不再需要专门的人做代码集成或在部署之前运行测试套件。最终,开发者有更多的授权,也更适应过程,其结果是更加有生产力。
当然,同时的基于云的运行方式的存在可能不会改变你编写一个Servlet或者写一个JPA实体,实际上你的运行环境可扩展弹性可能实际的解决一些更复杂的编程的问题。“如果你有权使用这些可以扩大或缩小弹性的资源,你将对于如何解决某些问题会有不同的想法。”Ryan说。这可能意味着使用Hadoop来处理结果,或大数据的数据管理方式,甚至仅仅是减少对你要放入HttpSession的数据图表有多大的担心,但对于一个给定的业务问题,无论基于云计算的技术是否合适,事实都是,企业开发人员需要知道基于云的解决方案提供的能力和在合适的时间如何使用和申请他们的知识。
事实上,对于许多开发人员,一个PaaS提供商的引进或转移到利用IaaS方式,不一定改变他们日常编码的职责,但是,这并不意味着他们隔离于云计算领域的各种新兴技术。从他们使用的工具来看,他们如何实现设计和开发复杂的企业解决方案,云计算确实改变了应用程序的开发。